text:
GANESH VIDYARTHI SPECIAL LECTURE SERIES
International School of Media and Entertainment Studies (ISOMES) paid a tribute to Shri Ganesh Shankar Vidyarthi by organizing a series of webinar for its students from January 5 to January 8, 2021. His contribution in the field of journalism is immense and cannot be ignored in these challenging times. He was an ideal activist journalist who used journalism to aspire political engagement and develop critical thinking among the masses as he went onto sacrifice his life for communal harmony.
The first Satyagraha of Mahatma Gandhi in Champaran (Satyagraha of 1917) began after Vidyarthi started to serially report on the plight of Indigo farmers of the region. Similarly, his reporting of Bijolia peasant movement in princely state of Mewer, brought it on the national platform.
He also played a pivotal role in organizing and propagating the famous Awadh peasant-tenant movement and the Eka Movement. He was also one of the leaders of the Kisan Sabha in Kanpur. Besides from organizing peasants and raising their issues, he was also involved with the working class movement, especially in the city of Kanpur which during his times was an industrial city. Vidyarthi established the Kanpur Mazdoor Sangh in 1928 and fought for their rights.
The Partap regularly carried the plight of Kanpur millworkers who had to work overtime, were paid less than the minimum wage and had to live under pitiable condition. That was the power of his journalism.
Paying tribute to his icon, veteran journalist Shri Q.W Naqvi known for changing the dynamics of TV news spoke extensively about how things have changed since the advent of digital or new media and how challenging was the task to change the interface of TV reporting and News presentation in modern times. He also imparted a few journalistic intricacies for reporting responsibly.
Shri Manak Gupta, Executive Editor, News 24, imparted an in-depth knowledge on the skills of screen presentation and how important the pronunciation is for the anchor or a news presenter. Being a fitness freak, he also gave tips on how to keep oneself healthy and presentable in front of the camera. Senior journalist presenter of evening programme – Mahaul Kya Hai fame Shri Rajiv Ranjan extensively discussed the opportunities, importance and challenges faced during the field reporting. He told students to verify the facts beforehand and then report on the issue because a lot is at the stake for a journalist. Agreeing with him, another stalwart of TV world, Shri Saud M Khalid, Anchor, News 24, spoke about the changing dynamics of anchoring as they are the faces of the channel and masses believe in every word they say on the TV. He further added that a reporter or an anchor has no room for errors. Hence, reporting or presenting news is a greater responsibility of a journalist.
As they say language and diction are the bread and butter of the anchors, Shri Om Prakash Das, Senior Anchor, DD News- taught students the importance of pronunciation. He gave several examples for pronouncing the words correctly with different variations.
A special lecture was delivered by Ms. Asha Jha, Anchor, News 24 on the role of women anchors and how they have contributed in streamlining the news anchoring. She discussed how the perspective towards TV presenters has changed over the years and how people look at them now in comparison to earlier times.
She cited the examples of DD News anchors of 1980's, who became a role model for many women to pursue their career in TV anchoring and reporting.
Meanwhile, on the last day of the webinar, Professor Sarvesh Tripathi, GGSIPU, spoke about the significance of development communication in the field of Mass Communication. He taught students on how policy makers engage in the dialogue with the stake holders to establish conducive environment for building a healthy society.
Last but not the least, there is no news without the entertainment world. Shri Ashwini Kumar, Entertainment Editor, News 24 explained the 3Cs of entertainment programming, i.e., Choice, Convenience and Control, which is vital for both content and consumers. He also imparted a few tips on how to cover entertainment field.
For aspiring journalists, meeting and hearing from their icons is not less than a dream come true. The students were elated and enthralled to attend this special series with the who's who of Journalism. The series concluded with a Q& A session.
This entry was posted in GANESH VIDYARTHI SPECIAL LECTURE SERIES. Bookmark the permalink.

redpajama_set_name: RedPajamaCommonCrawl


text:
A Z-test is any statistical test for which the distribution of the test statistic under the null hypothesis can be approximated by a normal distribution. Z-tests test the mean of a distribution. For each significance level in the confidence interval, the Z-test has a single critical value (for example, 1.96 for 5% two tailed) which makes it more convenient than the Student's t-test whose critical values are defined by the sample size (through the corresponding degrees of freedom). Both the Z test and Student's t-test have similarities in that they both help determine the significance of a set of data. However, the z-test is rarely used in practice because the population deviation is difficult to determine.
Because of the central limit theorem, many test statistics are approximately normally distributed for large samples. Therefore, many statistical tests can be conveniently performed as approximate Z-tests if the sample size is large or the population variance is known. If the population variance is unknown (and therefore has to be estimated from the sample itself) and the sample size is not large (n < 30), the Student's t-test may be more appropriate.
How to perform a Z test when T is a statistic that is approximately normally distributed under the null hypothesis is as follows:
First, estimate the expected value μ of T under the null hypothesis, and obtain an estimate s of the standard deviation of T.
Second, determine the properties of T : one tailed or two tailed.
For Null hypothesis H0: μ≥μ0 vs alternative hypothesis H1: μ<μ0 , it is lower/left-tailed (one tailed).
For Null hypothesis H0: μ≤μ0 vs alternative hypothesis H1: μ>μ0 , it is upper/right-tailed (one tailed).
For Null hypothesis H0: μ=μ0 vs alternative hypothesis H1: μ≠μ0 , it is two-tailed.
Third, calculate the standard score:
Z = ( X ¯ − μ 0 ) σ , {\displaystyle Z={\frac {({\bar {X))-\mu _{0})}{\sigma )),}
which one-tailed and two-tailed p-values can be calculated as Φ(Z)(for lower/left-tailed tests), Φ(−Z) (for upper/right-tailed tests) and 2Φ(−|Z|) (for two-tailed tests) where Φ is the standard normal cumulative distribution function.
Use in location testing
The term "Z-test" is often used to refer specifically to the one-sample location test comparing the mean of a set of measurements to a given constant when the sample variance is known. For example, if the observed data X1, ..., Xn are (i) independent, (ii) have a common mean μ, and (iii) have a common variance σ2, then the sample average X has mean μ and variance σ 2 n {\displaystyle {\frac {\sigma ^{2)){n))} .
The null hypothesis is that the mean value of X is a given number μ0. We can use X as a test-statistic, rejecting the null hypothesis if X − μ0 is large.
To calculate the standardized statistic Z = ( X ¯ − μ 0 ) s {\displaystyle Z={\frac {({\bar {X))-\mu _{0})}{s))} , we need to either know or have an approximate value for σ2, from which we can calculate s 2 = σ 2 n {\displaystyle s^{2}={\frac {\sigma ^{2)){n))} . In some applications, σ2 is known, but this is uncommon.
If the sample size is moderate or large, we can substitute the sample variance for σ2, giving a plug-in test. The resulting test will not be an exact Z-test since the uncertainty in the sample variance is not accounted for—however, it will be a good approximation unless the sample size is small.
A t-test can be used to account for the uncertainty in the sample variance when the data are exactly normal.
Difference between Z-test and t-test: Z-test is used when sample size is large (n>50), or the population variance is known. t-test is used when sample size is small (n<50) and population variance is unknown.
There is no universal constant at which the sample size is generally considered large enough to justify use of the plug-in test. Typical rules of thumb: the sample size should be 50 observations or more.
For large sample sizes, the t-test procedure gives almost identical p-values as the Z-test procedure.
Other location tests that can be performed as Z-tests are the two-sample location test and the paired difference test.
For the Z-test to be applicable, certain conditions must be met.
Nuisance parameters should be known, or estimated with high accuracy (an example of a nuisance parameter would be the standard deviation in a one-sample location test). Z-tests focus on a single parameter, and treat all other unknown parameters as being fixed at their true values. In practice, due to Slutsky's theorem, "plugging in" consistent estimates of nuisance parameters can be justified. However if the sample size is not large enough for these estimates to be reasonably accurate, the Z-test may not perform well.
The test statistic should follow a normal distribution. Generally, one appeals to the central limit theorem to justify assuming that a test statistic varies normally. There is a great deal of statistical research on the question of when a test statistic varies approximately normally. If the variation of the test statistic is strongly non-normal, a Z-test should not be used.
If estimates of nuisance parameters are plugged in as discussed above, it is important to use estimates appropriate for the way the data were sampled. In the special case of Z-tests for the one or two sample location problem, the usual sample standard deviation is only appropriate if the data were collected as an independent sample.
In some situations, it is possible to devise a test that properly accounts for the variation in plug-in estimates of nuisance parameters. In the case of one and two sample location problems, a t-test does this.
Suppose that in a particular geographic region, the mean and standard deviation of scores on a reading test are 100 points, and 12 points, respectively. Our interest is in the scores of 55 students in a particular school who received a mean score of 96. We can ask whether this mean score is significantly lower than the regional mean—that is, are the students in this school comparable to a simple random sample of 55 students from the region as a whole, or are their scores surprisingly low?
First calculate the standard error of the mean:
S E = σ n = 12 55 = 12 7.42 = 1.62 {\displaystyle \mathrm {SE} ={\frac {\sigma }{\sqrt {n))}={\frac {12}{\sqrt {55))}={\frac {12}{7.42))=1.62}
where σ {\displaystyle {\sigma )) is the population standard deviation.
Next calculate the z-score, which is the distance from the sample mean to the population mean in units of the standard error:
z = M − μ S E = 96 − 100 1.62 = − 2.47 {\displaystyle z={\frac {M-\mu }{\mathrm {SE} ))={\frac {96-100}{1.62))=-2.47}
In this example, we treat the population mean and variance as known, which would be appropriate if all students in the region were tested. When population parameters are unknown, a Student's t-test should be conducted instead.
The classroom mean score is 96, which is −2.47 standard error units from the population mean of 100. Looking up the z-score in a table of the standard normal distribution cumulative probability, we find that the probability of observing a standard normal value below −2.47 is approximately 0.5 − 0.4932 = 0.0068. This is the one-sided p-value for the null hypothesis that the 55 students are comparable to a simple random sample from the population of all test-takers. The two-sided p-value is approximately 0.014 (twice the one-sided p-value).
Another way of stating things is that with probability 1 − 0.014 = 0.986, a simple random sample of 55 students would have a mean test score within 4 units of the population mean. We could also say that with 98.6% confidence we reject the null hypothesis that the 55 test takers are comparable to a simple random sample from the population of test-takers.
The Z-test tells us that the 55 students of interest have an unusually low mean test score compared to most simple random samples of similar size from the population of test-takers. A deficiency of this analysis is that it does not consider whether the effect size of 4 points is meaningful. If instead of a classroom, we considered a subregion containing 900 students whose mean score was 99, nearly the same z-score and p-value would be observed. This shows that if the sample size is large enough, very small differences from the null value can be highly statistically significant. See statistical hypothesis testing for further discussion of this issue.
Z-tests other than location tests
Location tests are the most familiar Z-tests. Another class of Z-tests arises in maximum likelihood estimation of the parameters in a parametric statistical model. Maximum likelihood estimates are approximately normal under certain conditions, and their asymptotic variance can be calculated in terms of the Fisher information. The maximum likelihood estimate divided by its standard error can be used as a test statistic for the null hypothesis that the population value of the parameter equals zero. More generally, if θ ^ {\displaystyle {\hat {\theta ))} is the maximum likelihood estimate of a parameter θ, and θ0 is the value of θ under the null hypothesis,
θ ^ − θ 0 S E ( θ ^ ) {\displaystyle {\frac ((\hat {\theta ))-\theta _{0))((\rm {SE))({\hat {\theta )))))}
can be used as a Z-test statistic.
When using a Z-test for maximum likelihood estimates, it is important to be aware that the normal approximation may be poor if the sample size is not sufficiently large. Although there is no simple, universal rule stating how large the sample size must be to use a Z-test, simulation can give a good idea as to whether a Z-test is appropriate in a given situation.
Z-tests are employed whenever it can be argued that a test statistic follows a normal distribution under the null hypothesis of interest. Many non-parametric test statistics, such as U statistics, are approximately normal for large enough sample sizes, and hence are often performed as Z-tests.
Standard normal table
Standard score
Student's t-test
This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please help to improve this article by introducing more precise citations. (May 2020) (Learn how and when to remove this template message)
Sprinthall, R. C. (2011). Basic Statistical Analysis (9th ed.). Pearson Education. ISBN 978-0-205-05217-2.
Casella, G., Berger, R. L. (2002). Statistical Inference. Duxbury Press. ISBN 0-534-24312-6.
Douglas C.Montgomery, George C.Runger.(2014). Applied Statistics And Probability For Engineers.(6th ed.). John Wiley & Sons, inc. ISBN 9781118539712, 9781118645062.
Generalized/power
Lehmer
Average absolute deviation
Coefficient of variation
Kurtosis
L-moments
Skewness
Count data
Index of dispersion
Contingency table
Grouped data
Pearson product-moment correlation
Rank correlation
Kendall's τ
Spearman's ρ
Control chart
Correlogram
Fan chart
Q–Q plot
Radar chart
Run chart
Stem-and-leaf display
Violin plot
Effect size
Optimal design
Sample size determination
Statistical power
Stratified
Controlled experiments
Factorial experiment
Random assignment
Randomized experiment
Scientific control
Adaptive designs
Adaptive clinical trial
Stochastic approximation
Up-and-down designs
Cohort study
Natural experiment
Quasi-experiment
Statistical theory
Sampling distribution
Order statistic
Empirical distribution
Density estimation
Lp space
Parametric family
Likelihood (monotone)
Location–scale family
Exponential family
Statistical functional
Optimal decision
loss function
Statistical distance
Asymptotics
Frequentist inference
Point estimation
Estimating equations
Maximum likelihood
Method of moments
M-estimator
Minimum distance
Unbiased estimators
Mean-unbiased minimum-variance
Rao–Blackwellization
Lehmann–Scheffé theorem
Median unbiased
Interval estimation
Likelihood interval
Prediction interval
Tolerance interval
Jackknife
Testing hypotheses
1- & 2-tails
Uniformly most powerful test
Permutation test
Randomization test
Multiple comparisons
Parametric tests
Likelihood-ratio
Score/Lagrange multiplier
Specific tests
Z-test (normal)
F-test
G-test
Kolmogorov–Smirnov
Anderson–Darling
Jarque–Bera
Normality (Shapiro–Wilk)
Likelihood-ratio test
Cross validation
Rank statistics
Sample median
Signed rank (Wilcoxon)
Hodges–Lehmann estimator
Rank sum (Mann–Whitney)
Nonparametric anova
1-way (Kruskal–Wallis)
2-way (Friedman)
Ordered alternative (Jonckheere–Terpstra)
Van der Waerden test
Bayesian inference
Bayesian probability
Credible interval
Bayes factor
Bayesian estimator
Maximum posterior estimator
Pearson product-moment
Confounding variable
Coefficient of determination
Errors and residuals
Regression validation
Mixed effects models
Simultaneous equations models
Multivariate adaptive regression splines (MARS)
Ordinary least squares
General linear model
Bayesian regression
Non-standard predictors
Semiparametric
Heteroscedasticity
Homoscedasticity
Generalized linear model
Exponential families
Logistic (Bernoulli) / Binomial / Poisson regressions
Partition of variance
Analysis of variance (ANOVA, anova)
Analysis of covariance
Multivariate ANOVA
Categorical / Multivariate / Time-series / Survival analysis
Cohen's kappa
Graphical model
Log-linear model
McNemar's test
Cochran–Mantel–Haenszel statistics
Principal components
Canonical correlation
Structural equation model
Multivariate distributions
Elliptical distributions
Time-series
Stationarity
Dickey–Fuller
Q-statistic (Ljung–Box)
Durbin–Watson
Breusch–Godfrey
Autocorrelation (ACF)
partial (PACF)
Cross-correlation (XCF)
ARMA model
ARIMA model (Box–Jenkins)
Autoregressive conditional heteroskedasticity (ARCH)
Vector autoregression (VAR)
Frequency domain
Spectral density estimation
Least-squares spectral analysis
Whittle likelihood
Survival function
Kaplan–Meier estimator (product limit)
Proportional hazards models
Accelerated failure time (AFT) model
First hitting time
Hazard function
Nelson–Aalen estimator
Log-rank test
Clinical trials / studies
Medical statistics
Engineering statistics
Methods engineering
Probabilistic design
Process / quality control
System identification
Social statistics
Jurimetrics
Spatial statistics
Environmental statistics
Mathematics portal
WikiProject
Auxology
Biological hazard
Euthenics
Globalization and disease
Public health law
National public health institute
Health politics
Medical sociology
Mental health (Ministers)
Pharmaceutical policy
Public health intervention
Preventive healthcare
Preventive nutrition
Fecal–oral transmission
School hygiene
Health impact assessment
Open-source healthcare software
Multimorbidity
Public health informatics
Race and health
Biological and
epidemiological statistics
Case–control study
Relative risk
Statistical hypothesis testing
Analysis of variance (ANOVA)
ROC curve
Z-test
Statistical software
Infectious and epidemic
Asymptomatic carrier
Notifiable diseases
Tropical disease
Vaccine trial
Food hygiene and
Safety scandals
Good agricultural practice
Health behavioral
Health belief model
Positive deviance
PRECEDE-PROCEED model
Social cognitive theory
Social norms approach
Theory of planned behavior
Transtheoretical model
Organizations,
and history
Caribbean Public Health Agency
Centre for Disease Prevention and Control
Ministry of Health and Family Welfare
Public Health Agency
City and county health departments
World Toilet Organization
(Full list)
Bachelor of Science in Public Health
Professional degrees of public health
Schools of public health
Sara Josephine Baker
Samuel Jay Crumbine
Carl Rogers Darnall
Margaret Sanger
Germ theory of disease
Social hygiene movement
Statistical tests


Baltic Amber Earrings fitted in a Sterling Silver setting. Silver earrings, amber stone. Stud earrings. Green amber earrings.
We are happy to present green amber earrings fitted in sterling silver setting. Amber in green shades in delicate and unusual setting. This design perfectly complements so classic and modern sets. Perfect for every day use.
Size of the design: 10.4 mm length, 6.6 mm width.
Perfectly polished green Baltic amber set in 925 sterling silver setting.


Alasdair Hooper and Will Moulton bring you episode 6 of SportSpiel, a podcast full of sporting discussion and feature interviews.
Would you refuse an invite to Donald Trump's White House like the Golden State Warriors?
Our feature interview segment in this episode is with Paralympic wheelchair racing star Sammi Kinghorn. After a severe injury that left her paralysed from the waist down the Scot is taking her sport by storm with three European gold medals and a World Championship bronze. In this interview she talks about the impact the accident had on her, the success she has enjoyed so far and her aims for the future.


Richard Herring, King of the Edinburgh Fringe, Metro columnist and the UK's Podfather (RHLSTP, AIOTM) picks his favourite routines from his 12 one-man shows and crams them into 90 minutes for your delectation. From his deconstruction of the genealogy of Christ to him proving that racists are less racist than liberals, via some of the best knob jokes in the business. Will your favourite routine make the cut? A great introduction to this influential cult comedian for the newcomer and a welcome greatest hits for long term fans.


text:
package it.lisik.springutils;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;

@ComponentScan("it.**")
@EnableAutoConfiguration
public class TestApplication {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(TestApplication.class, args);
    }
}

redpajama_set_name: RedPajamaGithub


text:
Culture Guide - London
If there is one thing that London does well, it is its culture and entertainment.
London is a great place to find almost any movie! All American blockbusters show in London, as do many independent films and foreign-language films with English subtitles. European films from countries like Germany, France, and Italy are very popular and play regularly in London. Note that American blockbusters often debut later in London than in the US. Here are some recommended cinemas to visit in London:
Cineworld: http://www.cineworld.co.uk
Cineworld has theatres around London and shows mainstream movies. Buy tickets online or at the door.
Vue: http://www.myvue.com
Vue is another big chain with cinemas around London. You will find Harry Potter and other big films at Vue.
Curzon Cinemas: http://www.curzoncinemas.com
Curzon Soho, located near Leicester Square tube in the West End, is the perfect place for a night out. You can catch a film then visit either the bar or cafe for a late-night snack. Movies also play during the day and the cafe is open for a tasty cappuccino and panini. Curzon focuses on independent and foreign-language films but also shows some bigger pictures. You won't find big Mel Gibson films here but you will find European blockbusters. Curzon also has venues in Chelsea and Mayfair but the Soho branch is most popular. Movie tickets are £13.75 but Monday all-day and Tuesday to Friday before 5pm you can get a ticket for £8.
Renoir Cinema, part of the Curzon group, in the heart of Bloomsbury specialises in showing French films along with its counter-part Le cinema Lumiere http://www.institut-francais.org.uk/cine-lumiere.
Bollywood cinemas are becoming trendy for more information check out the Boleyn Cinema website http://www.boleyncinema.co.uk/
IMAX has a presence with 5 venues http://www.imax.com/ in central London. IMAX is short for Image Maximum, in practice it is a giant screen where films are projected in 3D.
Riverside Studios: http://www.riversidestudios.co.uk
This famous venue in the Hammersmith area is a classy movie house showing a variety of art-house and mainstream films. The restaurant is a great gathering place, and is the perfect place to see and be seen. The venue also holds TV production studios and a gallery. Tickets can be purchased online on the site.
London has also a myriad of film festivals, http://www.world-guides.com/europe/england/greater-london/london/events.html. Some major events are the Promenade Concerts or Prom at the Royal Albert concert hall from mid July to mid-September the Notting Hill Carnaval with its colourful floats in August.
Most DVD rental shops have finally closed in London. The good news is that you can buy new DVDs for almost the same price as you could have rented them for 3 years ago.
HMV: http://hmv.com/
The biggest DVD collection is at HMV. Prices are affordable and there are often sales offering 3 DVDs for £20. TV Series and World Cinema are a couple of the many departments at HMV.
Amazon: http://www.amazon.co.uk
Buy your DVDs used from the Amazon Marketplace and resell them after you've finished viewing. This is the most economical way to see the latest DVDs from the UK and around the world. One-click purchasing makes it exceptionally easy and tempting to shop for your DVDs on Amazon. Sometimes you can purchase a DVD for less than £1!
Opera/Theatre/Ballet/Comedy
The West End offers the highest level of stage production in Europe, if not the Western world. Musicals like Billy Elliot gain worldwide exposure and going to the West End to see a show is a huge activity in London. The Lyceum Theatre is known to play the stunning Lion King spectacle and is a great destination for expats, locals and tourists.
Tickets for the West End
TKTS: http://www.officiallondontheatre.co.uk/tkts
TKTS is the best place to pick up half-price tickets, and the office is conveniently located in Leicester Square. Same-day tickets are available every day. Many ticket outlets offer decent ticket prices but TKTS is probably the cheapest.
Ticketmaster: http://www.ticketmaster.co.uk
Ticketmaster is a great place to get tickets for West End shows if you prefer to book ahead. Prices won't be as cheap as TKTS but you'll be able to plan your week or month.
http://londontheatredirect.com
Discounted tickets for West End shows like Stomp can be purchased here. While you're on the site, check out the Meal Deals or pick up a gift voucher for a friend.
Sadler's Wells: http://www.sadlerswells.com
Dance enthusiasts – Sadler's Wells is the premier dance venue in London. From classics like Swan Lake to modern dance shows, this venue has the most exciting dance shows and features groups from around the world. Check the site frequently to see what's on. The venue is in Islington, North London.
Royal Opera House: http://www.roh.org.uk
If you love opera, the Royal Opera House is one of the world's greatest venues. Ticketmaster (http://www.ticketmaster.co.uk) also holds tickets for shows at the ROH. Tickets can be expensive.
There are plenty of venues where top comedians perform. To go and see a stand-up show is the trendy thing to do, see listing: http://www.thecomedystore.co.uk/
There are hundreds of cultural events happening on any given day in London so the best thing to do is to check out Time Out magazine:
Time Out: http://www.timeout.com/london
Time Out publishes each Wednesday and is available at news agents around the city (and online!). The magazine details everything going on in the capital for a given week. Movie and theatre reviews and week-specific events are some of the occurrences Time Out covers.
VisitLondon: http://www.visitlondon.com/ is the official, comprehensive and up to date London guide for all things related to entertainment.
Living in London, you will possibly have an endless stream of visitors, friends and family. It would be wise to point them out in the direction of a London Pass: http://hwww.londonpass.com This pass allows you to visit all sites at a reduced price. There are several tiers from one day to a whole 6 days. It can be used by residents, too.
01 Pick up Time Out magazine weekly and take advantage of London's fantastic entertainment choices and cultural activities.
02 Unless you intend to drive in London, find an apartment close to local transport, ideally less than a 15 minute walk to a bus, train, or tube station.
03 You need a license to own a television in the UK, otherwise you will be fined. Obtain a license when you arrive from any UK post office.
04 London is vast and each area within it is unique. Make sure you visit several areas before you make a decision about where you want to live.
05 A large number of residential areas in London require a parking permit. Even if you live there you may have to pay large annual fees to park your car.
http://www.gumtree.com
Your overall website for finding everything from a home, to a pet-sitter, to making new friends.
http://www.transportforlondon.com
Details of London's congestion fee zones and how to pay.
http://www.dailycandy.com/london/
Modern living guide that sends a free daily e-mail about the latest in fashion, food & fun.
http://www.standard.co.uk/
Website of The Evening Standard, a free daily newspaper that covers everything that's going on in London.
London has been a major settlement since it was founded by the Romans 2000 years ago. Its population of 7.5 million makes it the most populous city in the European Union.
Brief Introduction to London
Restaurants Guide – London
Culture Guide – London
Sports Events – London
Health & Beauty – London
Pets Guide – London
Worship Places Guide – London
Emergency Services – London


In the book, Changing Your Team From The Inside, I touched several times the notion of Team Agreements.
Team Agreements are critical to the success of a team. By writing your team agreements, you define your standard. You set the baseline that you will improve in the future.
In the team agreements, you answer the question: How do we behave?
What aspects do you want to cover in your team agreements?
How do the team handle information?
What kind of information do we need to achieve your work?
How do we share the information inside and outside of the team?
How do we know what everybody is doing?
How do the team communicate.
What are the tools the team uses to communicate?
Phone or video conference: why do we prefer phone calls or video conference for some conversations?
Email: do we use emails inside the team or do we communicate using the tool we use to track our work?
When do we want not to be interrupted? How do we signal that to others? How do we handle external interruptions? Do we nominate an interruption handler?
When do we use pair programming or mob programming?
Why do we have meetings? What are their purposes?
How do we behave in meetings? How do we handle devices? How strict are we on time? On attendance?
How do we provide or receive feedback.
Do we have a specific time, setup, tools… to provide or receive feedback?
How do we handle conflict?
How do we manage performance?
How do we hire new team members?
The list of questions could be infinite. The practice is beneficial when you start small and when you review your agreements regularly. This is a place for the team to experiment with various approaches and to improve.
For example, with a team in which half the people are collocated and the other half distributed all over the world, we change our way of handling meetings. The agreement is now that we behave as if everybody was remote and join the video-conference from our offices. Why are we doing that? Because we noticed that when the conversation become passionate in the meeting room, we were ignoring the "remotees" that were enabled to have a say in the discussion.
It is also very useful to define team agreements for meetings that will gather people from different teams or organizations. To do that, try the Social Contract, shared on the Open Practice Library.


Horticulture Therapy – MorningStar Landscaping, Inc.
Horticulture Therapy uses plants, various types of gardens and landscapes, and other aspects of nature to improve ourselves on many levels. There are a multitude of documented studies down that show the healing effects of nature, and Horticulture Therapy is a time and science proven practice. Dementia patients, brain injuries, visual impairments, mental health, physical health, autism, trauma survivors, weaning off toxic drugs or medications, the list goes on. Horticulture Therapists are trained professionals to coach, design, or create garden specific activities to achieve certain treatment goals with amazing outcomes. HT is effective for everyone from children to elderly, to those suffering from trauma or sickness whether physical or mental or both, or just wanting to learn more.
Processing Grief and other traumatic experiences.
Decreasing high blood pressure and increasing positive thinking.
Instilling good learning tools for children.
Overcoming physical, mental, emotional, and spiritual obstacles.
Horticultural therapy can play in developing self-confidence and individual empowerment as well as key physical, cognitive and social skills. Horticulture Therapy activities are widely used in physical and mental rehabilitation programs.
Throughout my professional landscape career I have used plants not just an aesthetic way, but also to bring and joy and healing to others. Plants and nature have such a profound effect on the health, minds, and spirits of people of all ages. People assume that Healing Gardens are only used in larger commercial type settings, but personally I love to bring this into residential projects on a more connective long term relationship with my clients, and get them pro-active with nature and apply that into their lives.
Healing gardens are a very important part of human and animal life, and have dated back for centuries. They are generally defined with specific features like water, plants, textures, butterflies, but you do not necessarily need all these to have right in your backyard. It is my belief that any garden is healing, but it's up to you to make that happen as well. This is a very symbiotic relationship I try and instill in others to have with plants, and understand the power that is all around us. By embracing nature and participate with your plants, then you ultimately are embracing yourself and can feel it's restorative effects.
Physical- Gardening is a great way to increase motor skills and stay active, especially at times when you might otherwise be sitting.
Cognitive- regain and strengthen ability to make decisions, start and complete tasks, increase concentration, and find and apply new skills to your life.
Social- Provides community and common goals that are shared with others. Trust and communication become established and commonalities between individuals are expressed.
Psychological- Nature and gardening give people a sense of anticipation and accomplishment. Nature is a very nurturing being to all in times of sorrow or happiness, weakness or strength. Plants can give an individual a sense of worth and reaffirm that nobody is ever really alone.


text:
Opinion In depth Video LIVE news Interviews Company Profiles Events diary Jobs
All news Theme parks IP and Brands Technology
Visitor attractions STEM Cruise Tourism
Museums and galleries Culture Animal Attractions Suppliers
Events Waterparks Heritage Disney
Twelve of the biggest rollercoaster openings of 2023 | Planet Attractions
Twelve of the biggest rollercoaster openings of 2023
It's a new year with old records just waiting to be broken by some incredible new projects. Here are twelve blockbuster rollercoaster openings for the coming year
Tom Anstey | Planet Attractions | 10 Jan 2023
A host of spectacular rollercoaster rides are set to open in 2023
As we enter a new year, we enter a year of records about to be broken, innovations about to be unveiled and visitors set to enjoy a host of hair-raising thrills. For theme park enthusiasts this often centres almost entirely around the world's most exciting, adrenaline-fuelled rollercoasters.
From RMCs to Intamin innovations, headline-grabbing coasters can often mean the difference between a good season and a bad season for a theme park. As parks across the world announce their plans for the 2023, Planet Attractions has rounded up its 12 favourite rollercoaster projects set to open this year. So sit back, let the overhead restraint lock you in position and get ready for launch as we take you on this journey.
The first major launch of 2023, Ferrari World Abu Dhabi will debut its 5D "immersive mega coaster" to the general public on January 12.
Called Mission Ferrari, the ride - which is manufactured by Dynamic Attractions and the Qiguang Group - features a world-first sideways coaster drop, an inverted loop and state of the art special effects.
An SFX coaster, the indoor/outdoor ride covers 1,778ft (542m) and reaches speeds of up to 44.7mph (72kmph). Mission Ferrari also features five LSM launches.
The ride is already open to annual pass holders, who were given access starting January 5.
A ride under construction for more than five years thanks to the pandemic, Tron Lightcycle / Run is nearing completion with the attraction set to open in the spring.
Disney's first big opening of 2023, guests can climb on board their own Lightcycle at Magic Kingdom as they race against the Grid's programmes, crossing though light gates at speeds of up to 60mph (97kmph) - the fastest of any Disney coaster.
The new Tron attraction will be located in a brand new section of Tomorrowland, north of Space Mountain.
The Vekoma ride was originally scheduled to open in the autumn of 2021. Thanks to delays caused by the global pandemic, the ride will now open in 2023.
Tron Lightcycle / Run is of course inspired by the 80's videogame world of Tron, which sees Jeff Bridges as Kevin Flynn transported inside a digital virtual reality, where he interacts with different programmes in his quest to escape.
If you just can't wait to try out the new attraction, the good news is you already can, with Tron Lightcyle Power Run at Shanghai Disneyland, which is very similar to the new attraction.
Promising to go "BIG" in 2023, Big Bear Mountain does just that for Dollywood. Set to open in the spring, the orange track and SUV-styled coaster cars take riders on an adventure into the wilderness to find "Big Bear".
The single-largest investment in the history of Dollywood, the US$25m (€23.5m, £20.7m) Vekoma-designed steel coaster will feature three separate launches, multiple airtime hills, high-speed carousel turns and tunnels, including a pass behind a real waterfall.
Travelling along the edges of the park's Wildwood Grove, the ride will reach speeds of up to 48mph (77.2kmph), reaching a maximum height of 66ft (20.1m).
The gigantic coaster is also a longer experience, with the ride lasting nearly two minutes over 3,990ft (1,216m) of track. Big Bear Mountain also features onboard audio, including music and announcements from Ned Oakley - Benjamin Bear's caretaker.
Another new ride for 2023, DarKoaster, is under construction at Busch Gardens Williamsburg in Virginia, US, and is set to bring a supernatural twist to the park's German-themed area.
The indoor ride, a 2,454-feet-long (750-metre) straddle-style launch coaster, will be situated in the building that formerly housed the Curse of DarKastle ride. Featuring four launches, the 26mph (42kmph) dark ride experience is themed around an abandoned fortress.
Mounting their snowmobiles, riders will encounter strange weather systems and weird phenomena, where "a supernatural force is imminent as explorers discover that they are evading more than just a raging storm."
The family coaster is made by Intamin and follows the successful 2022 launch of Pantheon - the world's fastest multi-launch coaster with 15 airtime moments and speeds of 73mph.
After an announcement last year that the GCI-manufactured Wildcat's final ride at Pennsylvania's Hersheypark, would be closing in its current format at the end of July after 25 years in operation. Sadness turned to joy, however, when it was revealed that Rocky Mountain Construction was behind a reimagining of the ride to open in 2023.
Dubbed Wildcat's Revenge, the converted hybrid wood and steel coaster will reach speeds of up to 62mph (100kmph), with four inversions and an 82 degree drop from 140ft (42.7m) in the air. The ride will feature the world's largest underflip inversion, which Hersheypark says will ascend upwards before the train twists counterclockwise into a 270degree roll before descending. The ride will run over 3,510ft (1,070m) of track, with one ride taking two minutes and 36 seconds.
The ride's trains were unveiled at the 2022 IAAPA Expo in Orlando, Florida. The trains featured a wildcat bursting out of the front of the ride, with black, charcoal and silver colouring.
SeaWorld's commitment to ride investments in recent years has been significant, with Arctic Rescue one of several new attractions set to open to the public in late spring 2023 at SeaWorld San Diego.
Taking riders through a chilly climate on a snowmobile-style vehicle, the Intamin-manufactured steel coaster will be the longest straddle coaster on the West Coast of the US with the new attraction replacing the former helicopter ride in the park's Wild Arctic area.
Launching at speeds of 40mph (64kmph), construction is progressing well on the family-friendly ride, which reaches a maximum height of 30ft (9.1m) and covers 2,800ft (853m) of track. Two trains will hold 16 riders in eight, two-person rows.
Arctic Rescue brings the coaster count at SeaWorld San Diego to six. Like its other new attractions, each is inspired by the animal rescue work the park takes part in. For this ride, SeaWorld wants visitors to know and understand the continued effects of climate change and the impact it is having on animals in the arctic. As people exit the ride area, they will go directly into the Wild Arctic exhibit, which is home to belugas, walruses, and a ring seal.
ArieForce One is a major investment for the Atlanta-based Fun Spot America with the new attraction promising to be one of the park's most exhilarating additions for 2023.
Manufactured by Rocky Mountain Construction (RMC), the US$13m (€12.2m, £10.75m) steel coaster hybrid was originally set to open last year, but delays pushed the opening to March 3, 2023.
The new coaster stands 154 ft (47m) tall and once open will send riders down a 3,400 ft (1,000m) track, featuring a 146ft (45m) drop and four inversions, reaching speeds of up to 64mph (103kmph).
The ride will also feature a themed queue line and is inspired by FunSpot founder John Arie Sr's childhood passion for aviation, with the ride experience featuring a number of airtime moments.
Another SeaWorld addition, this time in Orlando, Pipeline was one of the most anticipated showcases at November's IAAPA Expo, with the ride car officially unveiled at the event.
Described as a "new genre of rollercoaster", an innovation from manufacturer B&M creates a distinctly different ride action for this coaster with its flexible standing position. The coaster is designed to look and feel like the rider is using a surfboard, with the ride's restraints rising and falling to mimic the sensation of surfing on a wave. The ride's inversions have also been designed to mimic the movements made by surfers on a wave, with five airtime movements and a 'wave curl' inversion.
Reaching speeds of up to 60mph (97kmph) and a maximum height of 110ft (33.5m), the 2,950ft (899.2m) track features a 'wave curl' inversion and five airtime movements. The 110ft tall (33.5m) surf coaster will be capable of reaching speeds of up to 60mph (97kmph) when it opens in the spring.
Pipeline will be SeaWorld Orlando's seventh coaster.
Possibly one of the coolest looking new ride cars you're going to see in 2023, the Nolan-era Batmobile-style trains for Parque Warner Madrid's Gotham City Escape are enough to get the motors of any DC fan running.
Designed by Intamin, the steel launched coaster is Batman themed with four inversions through 3,313ft (1,010m) of track.
Reaching speeds of up to 64.6mph (104kmph) the ride will reach heights of 147.6ft (45m) with features including a top hat, two corkscrews, a vertical roll back, Zero-G Stall and reverse sidewinder. The 1 minute 51 second ride experience also features two LSM launches.
Beyond its general theme, not much has been revealed about the ride experience, only that it will come out of the Wayne's Mansion, implying a launch from the Bat Cave as the ride station.
One note that will get rollercoaster enthusiasts drooling is the ride's comparison to Universal Studios Orlando's incredibly popular Velocicoaster, which shares the same manufacturer. If there's anyone that can match up to dinosaurs, it's surely Batman.
The ride has no official launch date at present, only that it will be during 2023.
Sweden's Liseberg is planning to celebrate its 100th year in style with the launch of several new attractions, the most exciting of which is Luna, a family coaster, described as the "jewel in the crown", that serves as a focal point for a brand new area of the park.
Set to open on April 22, the Vekoma-manufactured Luna is a custom Boomerang model set to reach heights of 109.9ft (33.5m) and speeds of up to 42.3mph (68kmph), with the ride being constructed atop Liseberg Hill - the park's highest point.
Offering "flights to the moon", the ride car, which resembles a rocket ship, will carry guests forwards then backwards over the 738ft (225m) track, with Luna being the tallest and fastest of its kind anywhere in the world.
Luna will open alongside two already launched family attractions - the Technical Park-manufactured Turbo motorcycle ride and the Zamperla-manufactured Tempmus spinning tower ride.
An Intamin manufactured rollercoaster, the steel LSM launch coaster Toutatis is set to become a signature attraction for France's Parx Asterix when it opens to the public later this year.
Set for launch on April 8, the new attraction is themed around the Celtic god Toutatis - a deity who was worshipped in ancient Gaul and Britain and is regularly referenced in the Asterix series as a way of expressing strong emotion.
Covering 3,526.9ft (1,075m), the ride features 23 airtime points - a world record for a steel coaster - and reaches speeds of up to 66.5mph (110kmph). Its peak stands at 167.3ft (51m) with a vertical drop of 101 degrees.
The ride's triple half-pipe launch will send visitors forwards, backwards and forwards again, with the train eventually reaching enough speed to make it over the ride's peak. Intamin says that the ride will hold a European record for the most launches on a rollercoaster.
Originally scheduled for 2021, the build was delayed for a number of reasons, including the pandemic and the layout impeding a number of protected trees in the adjacent National Forest.
Toutatis will be part of a larger new themed area of the park dubbed Toutatis Festival. The new space will also offer a Zamperla-manufactured spinning tower, a playground, a restaurant and a shop.
Spanish theme park resort PortAventura has teamed up with Sony Pictures for the development of a world-first dark ride rollercoaster dedicated to the Uncharted franchise.
One of the world's most successful gaming franchises, the new dark ride attraction will be based on the movie version of Uncharted starring Tom Holland and Mark Wahlberg, with the ride expected to open in the middle of 2023.
The coaster, which is being developed at a cost of €25m (US$25.8m, £21.6m), will be 700m (2,300ft) in length, reaching heights of up to 12m (39ft) and will be entirely located inside a 4,800sq m (51,700sq ft), 16m (52ft) high immersive space.
Located in the Far West area of the park, the location is fitting for the story, which will see riders go on a hunt for one of the greatest treasures ever discovered.
The ride has significant pedigree behind it, with both Intamin and Sally Dark Rides both working on the new attraction.
Universal reports record earnings for 2022, driven by theme park attendance
Disney bringing major immersive experience to London, Berlin and Paris in 2023
'The Office' visitor interactive experience coming to Toronto in March
Some handy tips to get waterpark operators through the busiest time of year
Children in hospital can now explore South Carolina Aquarium remotely using a robot
Fourteen of 2023's most anticipated museum openings
© Kazoo 5 Limited 2023
About Subscribe Get in touch
Opinion In depth Interviews
All news Tourism
Visitor attractions STEM
Museums and galleries Culture
Events Waterparks
IP and Brands Heritage
Cruise Technology
Animal Attractions Suppliers
Theme parks Disney
LIVE news Profiles Diary Video


text:
Q: rake db:migrate gives an error I just tried to migrate, but my console returns this

StandardError: An error has occurred, this and all later migrations
  canceled:
SQLite3::SQLException: duplicate column name: encrypted_password:
  ALTER TABLE "users" ADD "encrypted_password" varchar DEFAULT '' NOT
  NULL

I understand that I accidentally created a table twice and have to do changes in my migration file? If so, where can I find it?
Dropping the whole database would be a good solution, too in my case.
I just need to know how. All the solutions I found so far didn't work for me.
UPDATE:
When I do

rake db:migrate:down VERSION=20160914093125

The console says

== 20160914093125 DeviseCreateUsers: reverting ================================
  -- remove_index(:users, {:column=>:reset_password_token})    -> 0.0013s
  -- remove_index(:users, {:column=>:email})    -> 0.0006s
  -- drop_table(:users)    -> 0.0003s
  == 20160914093125 DeviseCreateUsers: reverted (0.0025s) =======================

Are these the points i should change?
3123(...)devise_create_user.rb
class DeviseCreateUsers < ActiveRecord::Migration[5.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      t.integer  :sign_in_count, default: 0, null: false
      t.datetime :current_sign_in_at
      t.datetime :last_sign_in_at
      t.string   :current_sign_in_ip
      t.string   :last_sign_in_ip

      ## Confirmable
      # t.string   :confirmation_token
      # t.datetime :confirmed_at
      # t.datetime :confirmation_sent_at
      # t.string   :unconfirmed_email # Only if using reconfirmable

      ## Lockable
      # t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
      # t.string   :unlock_token # Only if unlock strategy is :email or :both
      # t.datetime :locked_at

      t.timestamps null: false
    end

    add_index :users, :email,                unique: true
    add_index :users, :reset_password_token, unique: true
    # add_index :users, :confirmation_token,   unique: true
    # add_index :users, :unlock_token,         unique: true
  end
end

Console after trying to migrate:

== 20160915185631 AddDeviseToUsers: migrating =================================
  -- change_table(:users)
  rake aborted!
  StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: no such table: users: ALTER TABLE "users" ADD "email" varchar DEFAULT '' NOT NULL
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in initialize'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:innew'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in prepare'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:134:inexecute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in block in execute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:566:inblock in log'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/notifications/instrumenter.rb:21:in instrument'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:560:inlog'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in execute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:inadd_column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:in add_column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:475:incolumn'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:in block in string'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:ineach'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:in string'
/Users/matthiascordes/code/recipe_box/db/migrate/20160915185631_add_devise_to_users.rb:5:inblock in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:in change_table'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:845:inblock in method_missing'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:814:in block in say_with_time'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:814:insay_with_time'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:834:in method_missing'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:596:inmethod_missing'
/Users/matthiascordes/code/recipe_box/db/migrate/20160915185631_add_devise_to_users.rb:3:in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:751:inup'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:791:in exec_migration'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:772:inblock (2 levels) in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:771:in block in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:inwith_connection'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:770:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:950:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1211:in block in execute_migration_in_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1279:inblock in ddl_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in block in transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:inwithin_new_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/transactions.rb:211:intransaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1279:in ddl_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1210:inexecute_migration_in_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1183:in block in migrate_without_lock'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1182:ineach'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1182:in migrate_without_lock'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1133:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1005:in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:983:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:161:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:58:inblock (2 levels) in '
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/exe/rake:27:in <top (required)>'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:ineval'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in <main>'
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such table: users: ALTER TABLE "users" ADD "email" varchar DEFAULT '' NOT NULL
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:ininitialize'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in new'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:inprepare'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:134:in execute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:inblock in execute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:566:in block in log'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/notifications/instrumenter.rb:21:ininstrument'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:560:in log'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:inexecute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:in add_column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:inadd_column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:475:in column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:inblock in string'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:in each'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:instring'
/Users/matthiascordes/code/recipe_box/db/migrate/20160915185631_add_devise_to_users.rb:5:in block in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:inchange_table'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:845:in block in method_missing'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:814:inblock in say_with_time'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:814:in say_with_time'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:834:inmethod_missing'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:596:in method_missing'
/Users/matthiascordes/code/recipe_box/db/migrate/20160915185631_add_devise_to_users.rb:3:inup'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:751:in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:791:inexec_migration'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:772:in block (2 levels) in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:771:inblock in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in with_connection'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:770:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:950:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1211:inblock in execute_migration_in_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1279:in block in ddl_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:inblock in transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:in within_new_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:intransaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/transactions.rb:211:in transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1279:inddl_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1210:in execute_migration_in_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1183:inblock in migrate_without_lock'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1182:in each'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1182:inmigrate_without_lock'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1133:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1005:inup'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:983:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:161:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:58:in block (2 levels) in <top (required)>'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/exe/rake:27:in'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in eval'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in'
SQLite3::SQLException: no such table: users
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in initialize'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:innew'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:91:in prepare'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/sqlite3-1.3.11/lib/sqlite3/database.rb:134:inexecute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in block in execute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:566:inblock in log'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activesupport-5.0.0.1/lib/active_support/notifications/instrumenter.rb:21:in instrument'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract_adapter.rb:560:inlog'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:232:in execute'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:547:inadd_column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:373:in add_column'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:475:incolumn'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:in block in string'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:ineach'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_definitions.rb:181:in string'
/Users/matthiascordes/code/recipe_box/db/migrate/20160915185631_add_devise_to_users.rb:5:inblock in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/schema_statements.rb:443:in change_table'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:845:inblock in method_missing'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:814:in block in say_with_time'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:814:insay_with_time'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:834:in method_missing'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:596:inmethod_missing'
/Users/matthiascordes/code/recipe_box/db/migrate/20160915185631_add_devise_to_users.rb:3:in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:751:inup'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:791:in exec_migration'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:772:inblock (2 levels) in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:771:in block in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:inwith_connection'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:770:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:950:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1211:in block in execute_migration_in_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1279:inblock in ddl_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in block in transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/transaction.rb:189:inwithin_new_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/transactions.rb:211:intransaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1279:in ddl_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1210:inexecute_migration_in_transaction'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1183:in block in migrate_without_lock'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1182:ineach'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1182:in migrate_without_lock'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1133:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:1005:in up'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/migration.rb:983:inmigrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/tasks/database_tasks.rb:161:in migrate'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/activerecord-5.0.0.1/lib/active_record/railties/databases.rake:58:inblock (2 levels) in '
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/gems/rake-11.2.2/exe/rake:27:in <top (required)>'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:ineval'
/Users/matthiascordes/.rvm/gems/ruby-2.3.1/bin/ruby_executable_hooks:15:in `'

A: If you know the migration file, which you want to revert back, then use this,
For eg, if this is the migration file,
20123219103503_add_name_field_to_user.rb

then copy the numbers in the file and then run the following in your terminal prompt,
rake db:migrate:down VERSION=20123219103503

make editions in the migration files, then run
rake db:migrate

from terminal

A: You may have modified the database schema manually or changed a migration file being run.
If you dont need the data in the database, a rake db:reset would re-run all migrations from scratch.
You could also try to migrate your database to version 0 with command: rake db:migrate VERSION=0 and then run rake db:migrate

If you want to drop the whole database as you stated, you can do either of the following:

rake db:drop simply drops the whole database.
rake db:reset db:migrate will reset your database and reload the
  current schema.
rake db:drop db:create db:migrate will destroy your database and
  then create it and then migrate your current schema.

All data will be lost in the above 3 scenarios.

You could also comment out the method in the migration file, then run rake db:migrate as below:
Normal Migration File:
class AddEncryptedPaddwordToUsers < ActiveRecord::Migration
  def change
    add_column :users, :encrypted_password, :string
  end
end

Just comment out the method but leave the class, so it would be:
class AddEncryptedPaddwordToUsers < ActiveRecord::Migration
  # def change
  #   add_column :users, :encrypted_password, :string
  # end
end

Then run rake db:migrate. Essentially this is a work around that tells rails to skip the migration

redpajama_set_name: RedPajamaStackExchange


Crumbs and Cookies: fresh strawberry tart with balsamic drizzle.
fresh strawberry tart with balsamic drizzle.
I usually don't go for fruity desserts because they seem too healthy. Desserts should be an indulgence- rich, creamy and downright sinful. Somehow though, I just couldn't avert my eyes away from the screen when I saw a picture of a fresh strawberry pie on a blog not too long ago. I had some strawberries in the freezer- and this tart was born.
The strawberry filling was scrumptious, to say the least. It was sweet and refreshing, and I couldn't stop spooning it in. I even managed to convince myself that because it was primarily fruit, it had tons of vitamins and I had every reason to stuff myself with it!
Oh yes the almond tart crust? The kitchen smelled wonderful while it was baking. Please bear in mind though that it is a bit more crumbly than your usual crusts and more prone to moisture.
I scaled the quantities of each component down to make one 4 inch tart and one 3 inch tart but I shall give the full original quantities here.
This makes enough for a 9 inch pie crust so there should be more than enough for a 9 inch tart crust. I adapted this recipe slightly from Hungry Rabbit, omitting the lemon zest and adding ground cinnamon instead. The great thing about this dough is that it's gluten-free, so more people can join in the sharing and there's close to zero chance that you will overwork the dough. The not so good thing is that because there's very little butter in the dough, it won't release very easily from the pan after baking like normal crusts do. Hence, it is essential that you butter your pan before using.
Add all the ingredients except the butter and egg in a food processor and pulse until just combined. Add the butter and pulse until a sandy crumbly mixture is formed. Add the egg and pulse until just fully incorporated and until a dough is formed. Pat the dough into a lightly buttered or oiled tart pan, use a fork to poke some holes in the crust and chill for at least an hour.
Preheat oven to 350F. Bake for 20 to 30 minutes, or until the crust is browned and fragrant. Make sure to check on the crust halfway through the baking time to see if it's browning too quickly. If it is, cover loosely with aluminum foil. If the crust is puffing up, tamp it down with the back of a spoon. For smaller tarts, 10 to 15 minutes should do the trick. Allow the crust to cool in the pan for 10 minutes before unmolding it onto a wire rack. Let the crust cool completely before filling.
Chop half of the strawberries finely in a food processor or by hand. Place the chopped berries in a saucepan and cook over medium heat until their juices are released and bubbling. Mix the sugar and cornstarch together in a small bowl and add into the saucepan. Add the lemon juice as well and cook on low heat until the mixture thickens. Remove from heat.
Slice the remaining strawberries into halves if they are large. Leave smaller ones whole if you wish. Mix them into the cooked strawberry mixture. Pour the entire mixture into a bowl to cool before filling the tart.
Heat the balsamic vinegar and brown sugar in a small saucepan until it comes to a boil. Let it reduce until syrupy (when about 2 tbsp left)- the balsamic should cling to the back of your spoon. Be careful not to reduce it too much though! It will continue to thicken off the heat.
Fill the tart with the strawberry mixture and chill until completely cold, about 2 hours. Drizzle with the balsamic reduction.
Try brushing a tiny bit of melted chocolate on the crust before adding the filling. That way, the filling doesn't make the crust soggy.
The balsamic drizzle is a darling. Balance the sweet and fruity flavors. You are a genius!
tea cupcakes with condensed milk icing.
checkerboard vanilla cake with ganache frosting.
crunchy-top chocolate chip muffins take 2.
a pastel swirl birthday cake.


text:
Ain't nothin' (grammatically) wrong with no double negatives
When Mick Jagger sings that he 'can't get no satisfaction', there's no confusion over what he means – we know he's not saying he can get some satisfaction. In a different context, 'can't get any satisfaction' might be better, but we give singers poetic licence when it comes to grammar. We should, anyway. But we don't always make the same allowances for people who use double negatives in their everyday speech. Note that multiple negation is a better name, since there are sometimes three or more negatives, but double negative is the more established term.
The Merriam-Webster Dictionary of English Usage reports Otto Jespersen's observation that because negation in English has often been marked subtly – 'by no more than an unstressed particle like old ne or modern -n't' – speakers have long tended to reinforce it with additional negation. So the double negative is a feature of many dialects, and indeed was once common even in the literary English of Chaucer, Shakespeare, and Defoe. But that was before it gained a bad reputation, the result more of social than of grammatical pressures. Multiple negation remains common in other languages.
In a recent post on the different interpretations of the word grammar, I said that grammar rules are 'not imposed top-down from logic, Latin, or some higher ideal'. This is where the trouble with double negatives arose. Multiple negation, normal since Old English, drew prejudicial attention from 18th-century prescriptivist grammarians like Robert Lowth and Lindley Murray. They did not accept the emphatic use of double negatives in English, declaring instead that they cancelled each other out or amounted to an affirmative – as they do in Latin, a language idealised at the time.
Condemnation from these influential grammarians, followed by the same from generations of schoolteachers, pushed the usage firmly down the rank of acceptability. This is why it's considered unacceptable in standard English today and stigmatised in those parts of society concerned with being 'proper'. Children are taught to drop it from their speech, so it becomes a shibboleth for identifying uneducated speakers, or for marking rustic or regional speech or affecting a demotic demeanour. But the rule about multiple negation in English applies only in formal registers – if it's part of your dialect, there's no reason to avoid it except in contexts where standard English would be more appropriate.
There are other kinds of double negative, such as 'can't hardly' and 'not unlikely' (the second of these is an example of litotes), but I'll look at those in a separate post. Otherwise I ain't never gonna finish this one.
grammar prescriptivism realgrammar
Language tip of the week: tolerance
Language and words in the news – 10th April, 2015
Stories behind Words: Christmas, Noel and Yule
Alina Cincan says:
Interesting! So English 'banned' double negatives because of Latin, yet many Latin-based languages (including Romanian, my mother tongue) have retained them.
Michael Rundell says:
As you say, Alina, this is normal in many Romance languages – including Spanish. There's a lovely pile-up of multiple negatives in Ian Dury's song "Clever Trevor", which you can see here.
Thanks for the entertaining song, Michael. Wow, a prescriptivist would have a heart attack probably. 🙂
Stan Carey says:
Very true, Alina. My own west-of-Ireland dialect doesn't make use of 'classic' double negatives, but I wish they were more available in English for emphasis and effect. The language has not been enriched by their rejection.
I like that song, Michael! I hadn't heard it before. It would be fun to play it for a staunch prescriptivist, as Alina mischievously suggests.
:)) Glad you liked the idea, Stan.
I think that double negatives work well for emphasis. What about double positives? Speaking of which, I couldn't help but remember the joke below:
An MIT linguistics professor was lecturing his class the other day. "In English," he said, "a double negative forms a positive. However, in some languages, such as Russian, a double negative remains a negative. But there isn't a single language, not one, in which a double positive can express a negative."
A voice from the back of the room piped up, "Yeah, right."
It's a good joke! I've also seen it in cartoon form.
Thanks, Stan! Love the cartoon!
I've been seeing multiple negation everywhere this week. It cropped up in a book I just finished, a police procedural by Ed McBain, and there are some striking examples in the one I'm reading today, David Sedaris's When You Are Engulfed in Flames. For example, in the story The Understudy:
"First rule is that nobody touches nothing," Mrs. Peacock said. "Not nobody and not for no reason."
Multiple negation and the meaning of 'grammar' | Sentence first says:
[…] Ain't nothin' (grammatically) wrong with no double negatives addresses this perennial point of controversy, looking over the usage's long history in different varieties of English and how it came to be ostracised from reputable use: […]
Tropi says:
There are excellent reasons for accepting and welcoming agreed rules in almost any walk of life. They help us to understand one another better and to get along with each other better.
It makes complete sense for present day English speakers and writers to accept that double negatives do make a positive. It makes sense because it accords with already very well established mathematical and logical rules The alternative is that no one understand what anyone else really means and they will argue about it forever, Given those two choices, why would anyone deliberately choose to perpetuate misunderstanding and strife? Maybe if they actually don't want to understand other people or get along with them.
I dispute that "multiple negation is a better name, since there are sometimes three or more negatives, but double negative is the more established term."
Sorry, but it is not connected with being "more established". It is about what the terms actually mean and they are not synonymous.
Firstly, I would suggest that "Multiple" never means as few as the very specific, low number, two.
Secondly, again in accordance with established mathematical and logic rules, the number of negatives is critical to the result. Even numbers, 2, 4, 6 etc result in a positive. Odd numbers, 1,3,5 etc result in a negative. It's a very simple rule that most people can understand. Using it removes confusion and any need for argument. This might disappoint some people.
Indeed there are good reasons for 'accepting and welcoming agreed rules' in different walks of life. But you ignore the fact that this means accepting different rules in different situations. When it comes to the English language, some of the rules vary with context – because the language itself does. English is not a uniform entity. It has many varieties, each of which has its own set of rules that are appropriate to it.
Most of these rules overlap, since English grammar is standardised to a large degree. But with some of the the rules, such as multiple negation, there is legitimate variation. Using multiple negation in conversation with someone whose dialect includes it as a normal, natural structure produces no ambiguity or confusion.
Despite what you believe, non-standard usage does no harm whatsoever. Part of the great appeal and strength of English is its richness and diversity. To seek to impose unnatural restrictions upon it through the misguided belief that it should be more like maths or formal logic is to do it a great disservice. A rigid approach to usage cannot be reconciled with what language is and how people use it.
They don't shoot dead people, do they?
Real Grammar Quiz, Question 5: Is it OK to use impact as a verb?
This ever-changing language in which we live in


text:
Sponsored Deals
Android News / Tech Deals / Deal: Amazon Drops Popular PlayStation 4 Games to $29.99 – 11/22/17
Deal: Amazon Drops Popular PlayStation 4 Games to $29.99 – 11/22/17
Amazon has just discounted a handful of rather popular PlayStation 4 games to just $29.99. Making these games all 50% off of their regular price. These are also all digital codes, so there's no shipping involved here, and you can download the games to your PlayStation 4 instantly. This is a good deal to take advantage of if you are grabbing that $199 PlayStation 4 Slim. To start building up your library.
Starting things off, Overwatch is available for $29.99. This is the "Game of the Year" version, and because it isn't the standard version, you also get a few other freebies. Including 10 Bonus Loot Boxes which have some cosmetic foodies for your heroes in Overwatch. There are also five Origin skins, a baby Winston Pet for adventures in World of WarCraft and a Tracer Hero for battling it out in Heroes of the storm. If Overwatch isn't your cup of tea, we also have the Crash Bandicoot N-Sane Trilogy for just $29.99, Final Fantasy XV, The Evil Within II, and Tom Clancy's Rainbow Six Siege. All of these are available for $29.99, and it's likely that Amazon will discount a number of other games for the PlayStation 4.
At the time of writing this, these prices are only available for the PlayStation 4 versions of these games, and not for Xbox One. Although that is likely going to change in the next few days (or even hours). This is a great way to build up your game library if you are or did pick up the PlayStation 4. Also a good idea to grab the 1TB model, that way you have plenty of space for all of these games. And if you're new to PlayStation 4, you'll want to take advantage of PlayStation Plus being on sale for a year subscription for $39.99. It is typically $59.99. So definitely worth grabbing, since Sony offers all sorts of discounts to PlayStation Plus members plus online gameplay.
Overwatch - Game of the Year Bundle - PS4
Crash Bandicoot N-Sane Trilogy - PS4
Final Fantasy XV - PS4
The Evil Within II - PS4
Tom Clancy's Rainbow Six Siege - PlayStation 4
PlayStation 4 Slim 1TB Console
1 Year PlayStation Plus Membership
Pick Up The AUKEY USB-C PD Wall Charger For Just $10
Blanket Your Home In WiFi With the NETGEAR Orbi Mesh WiFi System For $279
Save Big On eufy Robot Vacuums In This One-Day Sale


text:
Q: How to call two APIs inside redux action where one API call depends upon what was returned from the other? I need to call a second API inside my redux action, and that api needs to use a variable that is returned from my first API.
I've tried using .then() but wasn't able to get the data that was returned from the first one.
export const getLoginCredential = () => dispatch => {
  fetch("http://localhost:3500/login", {
    method: "POST",
    headers: {
      "content-type": "application/json"
    },
    body: JSON.stringify({ "EID": "123", "appName":"myapp" })
  })
  .then(res => res.json())
  .then(data => {
    dispatch({
      type: LOGIN_USER,
      payload: data
    })

    let roleId;
    data.userRoleLinkDTO.map(role => {
      if (role.isDefault === "Y") {
        roleId = role.roleID;
      }
    })
    return roleId;
  })
  .then(id => {
    console.log(id);
    fetch("http://localhost:3500/", {
      method: "POST",
      headers: {
        "content-type": "application/json"
      },
      body: JSON.stringify({"data" : [{ "name": "getThings", "urlparameter": { "appId": "1", "userId": "1234", "roleID": id }, "parameter": "" }]})
    })
  })
  .then(res => res.json())
  .then(data => dispatch({
    type: FETCH_ROLE_MENU,
    payload: data
  }))
  .catch(err => console.log(err))
}

In my second API call, I want to use the roleId which I want to return from
.then(data => {
    dispatch({
      type: LOGIN_USER,
      payload: data
    })
   })

A: As you have discovered, a dispatched action does not reliably return what you're expecting. While this may not necessarily be the case, I never use a return value from an action. What you can do instead is create a new action that accepts the roleId from your first call. You can technically do it in one function, but I think this makes logically sense.
Something along the lines of this should do what you need.
const fetchUserRole = ({roleId}) => dispatch => {
  fetch("http://localhost:3500/", {
    method: "POST",
    headers: {
      "content-type": "application/json"
    },
    body: JSON.stringify({ "data": [{ "name": "getList", "urlparameter": { "appId": "1", "someId": "555", "roleID": roleId }, "parameter": "" }] })

  })
    .then(res => res.json())
    .then(data => dispatch({
      type: FETCH_ROLE_MENU,
      payload: data
    }))
}

export const getLoginCredential = () => dispatch => {
  fetch("http://localhost:3500/login", {
    method: "POST",
    headers: {
      "content-type": "application/json"
    },
    body: JSON.stringify({ "EID": "444", "appName": "my-project.com" })

  })
    .then(res => res.json())
    .then(data => {
      dispatch({
        type: LOGIN_USER,
        payload: data
      })
      const roleId = getLastMatchingRoleId(data) // line added from your clarification
      dispatch(fetchUserRole({ roleId }))
    })
}

Just an fyi, you didn't include where roleId is coming from. I'm assuming you're handling it somewhere you didn't show in your sample.
UPDATE:
Your implementation looks like you're just trying to find the last instance of an entry in the array that matches role.isDefault === "Y" in order to get the roleId. This is only an algorithm challenge and is not related to redux.
Array#map is used to create a new instance of the array. Array#forEach is the enumerable that is designed exactly for your use case.
My recommendation is to create a helper function that finds the approriate roleId for you. This isn't anything new. I just took your existing logic, changed it to use beforeEach (the appropriate enumerable) and turned into a function.
function getLastMatchingRoleId(data) {
  let roleId;
  data.userRoleLinkDTO.beforeEach(role => {
    if (role.isDefault === "Y") {
      roleId = role.roleID;
    }
  })
  return roleId;
}

All you need to do is incorporate this into my existing answer (which I have updated above)


Have you ever thought of making their own invitations designs, unique and like no other? Want inspiration for create your birthday invitation? Through 70th birthday invitation, we will give some ideas which would inspire you to make your invitation. 70th birthday invitation from i combined with your ideas make this birthday invitation look impressive 3 will inspire you with 2 awesome ideas for your birthday invitation with a various styles and trends.
This 70th birthday invitation is being packed with 2 cool design gallery. So, we hope this picture will give you an extra ideas to make your own birthday invitation! Get more creative inspirations below and get inspired!


The program is designed to help young girls, aged 7-14, to take the first leap into programming. In the framework of ACC #5, young girls will have a chance to acquire coding skills within 20 weeks.
ACC #5 program is designed for women and girls who are ready to dive into the tech world and become part of the life-changing community. It is for 2 age groups: 7-14 (ACC #5 for Kids) and 14+ (ACC #5 for Women and Girls) with respective structures and curriculum. No preliminary knowledge is required, as the program is designed for beginners. So women and girls who are living in the regions of Armenia, as well as refugees, are strongly encouraged to apply. The program is fully free of charge.
The program kicks off on the second half of April 2019 and will last 20 weeks. The trainings and workshops will take place weekly 2-3 times at Innovative Solutions and Technologies Center Foundation, Vanadzor Technology Center and Gyumri Technology Center, based on the location of the applicants. All interested candidates are invited to submit the applications form by April 15, 2019.
Accelerator #5 for Kids will be operated by CoderDojo Armenia – the local representation of the global, community-based programming clubs for young people. After registering for Accelerator #5 for Kids, participants will be categorized into groups based on their age, location, and skills. The program is realized with the support of the ISTC Foundation and EIF.
The Scratch track is unique for beginners and will allow kids to learn the basics of programming with the help of visual programming tools. Kids will become keen on building interactive stories, animations, games, music, and art. The program will teach participants not only the fundamentals of the coding logic but also help them to develop problem-solving and presentation skills.
The Web Development Track is designed for kids who are ready to go deeper into coding and write their own code for the web. Participants will learn the basics of web programming via HTML & CSS languages and will be able to create their own digital content.
After the completion of the learning track, young girls will get the chance to participate in a Hackathon where they will compete with other kids using their projects and skills.
Based on CoderDojo principles, the coding sessions for kids will be mentored by volunteer representatives from the technology field – including programmers and project managers. Each club will be organized and run by CoderDojo ambassador precisely selected by the project team, ideally from local communities. The ambassador will ensure all the organizational duties and quality assurance of the local coding club. And the mentors will accompany and guide kids through the wonderful world of codes.
The program is going to take place in the 3 northern regions of Armenia – Shirak, Lori, and Tavush, with 2 clubs in each of them. Each club will run for 3 months with a group of 15 kids each. There will be both age groups in each region – 7-10 and 11-14-year-old girls.
The participant girls will be recruited from various channels within the regions and will have a chance to be brought to the Saturday sessions of CoderDojo Clubs. Each session will last for 2 hours and will be the next step towards the result of the project-based learning process. By the end of the 3rd month of the clubs, young girls will not only have coded their projects but also will have trained their presentation and pitching skills for the Hackathon competition.
The application will proceed via Google Form, so click below and register yourself.