Dash (formerly known as Darkcoin and XCoin) is an open source peer-to-peer cryptocurrency that offers instant
transactions (InstantSend), private transactions (PrivateSend) and token fungibility.
It was rebranded from "Darkcoin" to "Dash" on March 25, 2015, a portmanteau of "Digital Cash".
As of 2016, Dash is among the top-7 most popular cryptocurrencies.
PrivateSend
In its current implementation it adds privacy to transactions by combining identical inputs
from multiple users into a single transaction with several outputs.
Due to the identical inputs, transactions usually cannot be directly traced, obfuscating the flow of funds.
PrivateSend makes Dash "Fungible"[9] by mixing the coins in the same denomination with other wallets,
ensuring that all coins are of the same value.
Masternodes
PrivateSend's mixing is performed by Masternodes, servers operating on a decentralized network which have the responsibility of signing the transactions. For each round of PrivateSend, the user selects two to eight (or even more) rounds of mixing which vary the degree of anonymity achieved. Random Masternodes are then elected to perform the coin mixing. Masternodes are trust-less cryptographic technology, in the sense that they cannot steal user coins, and the combination of multiple Masternodes ensures that no single node has full knowledge of both inputs and outputs in the transaction process.
InstantSend
InstantSend is a service that allows for near-instant transactions. Through this system, inputs can be locked to only specific transactions and verified by consensus of the Masternode network. Conflicting transactions and blocks are rejected. If a consensus cannot be reached, validation of the transaction occurs through standard block confirmation
Fungibility
If certain coins have a history linked to people, organizations, or activity, then the value isn’t the same. Some entities may not accept coins based on past history. The term fungibility ensures that all coins are the same value. The way Dash makes this happen is by mixing the coins in the same denomination with other wallets. This effectively erases all history and ensures they are worth the same value.
Dash is the first decentralized autonomous organization powered by a Sybil proof decentralized
governance and funding system.[16] DGBB or Decentralized Governance By Blockchain as it's called
is a decentralized process by which the network determines where money is spent.
Hashing
Dash uses a chained hashing algorithm called X11 for the proof-of-work.
Instead of using the SHA-256 (from well-known Secure Hash Algorithm family) or scrypt it uses
11 rounds of different hashing functions. With chained hashing, high end CPUs give an average
return similar to that of GPUs. Another side effect of the algorithm is that GPUs run at about 30%
less electrical power than scrypt and 30% to 50% cooler, putting less stress on the computing
setup and ensuring lower energy bills for miners.
| Coin Market | Home Page | Block Explorer |
| [ Dash Page ] | [ Monero ] | [ Explorer 1 ] |


This data set contains information about 10,000 movies collected from The Movie Database (TMDb), including user ratings and revenue. Having looked at the data, we have information about a movie's cast, crew, release date, ratings, budget and revenue. From my study and investigation of this dataset, I want to figure out:
Success in general terms is when you achieve what you wanted to achieve. For a movie star, success would be a popular movie or a highly voted movie. For a production house, success would be a larger revenue. Assuming that this dataset has missing values, I am not expecting a perfect success recipe. A key thing to note is that inflation plays a major role in budget as well as revenue. Lucky for us, the final two columns ending with “_adj” show the budget and revenue of the associated movie in terms of 2010 dollars, accounting for inflation over time.
For this study, we will evaluate success in two ways:
We will look into both aspects of being successful and evaluate the factors that can make a movie successful.
Potential factors that can affect the success:
For this study, we will measure success based on budget, votes, release year and runtime. While measuring success in terms of budget, we will consider votes, release year and runtime. And when measuring success in terms of votes, we will consider profit, release year and runtime.
# First things first, import all the packages that I will be using
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from collections import Counter
% matplotlib inline
# Load your data
df = pd.read_csv('./data/tmdb-movies.csv')
df.head(3)
So there are 21 columns in this dataset. From these three rows, I can see that cast
is a bit tricky with string having all names separated by |
. Although the directors
are shown as single in these rows, I need to check further is same scheme of joining names is done for directors as well. genres
and production_companies
seem to concatenate multiple strings the same way. Release date looks consistent in the format of mm/dd/yy
. However we don't have a profit column that I wanted to look into. I need to fix that as well. Before that let's just look at some basic info from the above data frame.
# see the column info and null values in the dataset
df.info()
Looking at the above info, I can see a few anomalies already. The id column has 10866 entries, so I am assuming there are around 10866 movies in the database. But tagline
, keywords
and production_companies
columns seems to be missing quite a few rows. Somewhere in the range of 1000-3000 rows are missing. That would be around 10-30%
missing data. However, homepage seems to have a lot less entries. This is understandble as a lot of movies might not have a website. Also, this doesn't seem a very important factor in the investigation. Since I am not sure if the movies don't have a homepage or just this dataset is missing them, I can't possibly check the effect of having a website on movie popularity or revenues. For this study, I will just drop the homepage column.
# Printing out some descriptive statistics for the data
df.describe()
As we can see in the summary above, we have lots of 0 values in budget, revenue and some in runtime. Neither of these should have a 0 value. Let's just print a few of these to see if there is a pattern associated with 0 values.
# get movies with 0 revenue
movies_with_zero_revenue = df.query('revenue == 0')
# print out a few of these
movies_with_zero_revenue.head(5)
Movie with id 308369 seems to be rated well, so having a 0 value in budget and revenue doesn't make sense. Even other movies are released so they will have some budget and some revenue. This looks like a case of missing data to me. Let's look at the budget as well.
# get movies with 0 budget
movies_with_zero_budget = df.query('budget == 0')
# print out a few of these
movies_with_zero_budget.head(5)
Again I can see that all of these have production companies with them, so it can't be the case of actual 0 budget. This also looks like missing data to me. However, if we are using 0 as budget for missing values, and there are lot's of missing values, this will give us some false statistics. Since we want to predict success of movie based on revenue and budget, it will be a hard call to drop the rows with missing data. In case we have to drop the rows, let's see how many of them will be gone.
# Movie count without revenue, using id to count as some imdb_id seems to be missing.
movies_with_zero_revenue.groupby('revenue').count()['id']
# Movie count without budget, using id to count as some imdb_id seems to be missing.
movies_with_zero_budget.groupby('budget').count()['id']
# Movies with both revenue and budget missing
movies_with_zero_revenue_and_budget = df.query('budget == 0 and revenue == 0')
movies_with_zero_revenue_and_budget.groupby('budget').count()['id']
So we have total 6016 movies without revenue data, 5696 movies without budget data and 4701 movies without either of these. Since I have two operational definiotions for success of movies, one based on ratings and other on revenue, I will keep this data for now, but change all the 0 values to null. Since I am also considering the effecto of runtime, let's check for missing data in that as well.
# get movies with 0 budget
movies_with_zero_runtime = df.query('runtime == 0')
# print out a few of these
movies_with_zero_runtime.head(5)
# count of movies with 0 runtime
movies_with_zero_runtime.groupby('runtime').count()['id']
A quick search on the internet shows that these movies had a runtime, and definetly it wasn't 0. Since there are just 31 such entries, we can remove them all without affecting our data much.
I have also not defined the ratings aspect as of now, so let's address that. This dataset provides three columns related to ratings:
As per TMDB, here are the factors considered in popularity:
This seems like a good measure or popularity for a particular movie. This dataset also contains user vote_count and vote_average. With a good number of vote_count, the vote_average will also be a good measure of public opinion about eh popularity of movie. In this dataset however, we have votes raning from 10 to around 9500 votes. One consideration can be that a movie which is less popular will have lower number of votes. However, we can't definetly say that. I am also going to keep the vote_average as one of my variables and see how this affects the revenue.
# Drop unnecessary columns
columns = ['imdb_id', 'homepage', 'tagline', 'overview', 'cast', 'director', 'keywords', 'production_companies']
df.drop(columns, axis=1, inplace=True)
# Our revised dataframe
df.head(1)
# Inplace remove the rows with 0 runtime
df.query('runtime != 0', inplace=True)
# drop null genres
df.dropna(subset = ['genres'], how='any', inplace=True)
# replace 0 in budget, revenue, budget_adj and revenue_adj
df['budget'] = df['budget'].replace(0, np.NaN)
df['budget_adj'] = df['budget_adj'].replace(0, np.NaN)
df['revenue'] = df['revenue'].replace(0, np.NaN)
df['revenue_adj'] = df['revenue_adj'].replace(0, np.NaN)
# remove duplicates
df.drop_duplicates(inplace=True)
df.info()
From our info printed above, we can see that removing 0 budgets and revenues made our dataset significantly smaller. This is a tradeoff we will make for our analysis. Our data in both dataframes are now clean, with null values removed, useless columns removed and 0's converted to null. Let's again look at some descriptive statistics on the dataframe.
# cleaned up data with null values for missign budget and revenue
df.describe()
# count movies released per year
release_per_year = df.groupby('release_year').count()['id']
release_per_year.head()
We are working on the cleaned up dataset and we have our information for movies released per year. Let's plot this data to see the trend, which seems to be upward.
# plot movies released by year
plt.figure(figsize=(10, 6))
plt.plot(release_per_year)
# title and labels
plt.title('Movies released by Years')
plt.xlabel('Year')
plt.ylabel('Number of Movies');
Clearly the number of movies released is going up every year, except a couple of times where it took a small dip. The curve also seems much steep after year 2000.
# count movie runtime per year
min_runtime_per_year = df.groupby('release_year').min()['runtime']
max_runtime_per_year = df.groupby('release_year').max()['runtime']
mean_runtime_per_year = df.groupby('release_year').mean()['runtime']
Let's plot the data for minimum, maximum and mean runtime in different years to see if anything noticable happened.
# build the index location for x-axis
min_index = min_runtime_per_year.index
max_index = max_runtime_per_year.index
mean_index = mean_runtime_per_year.index
# set axes for the plot
x1, y1 = min_index, min_runtime_per_year
x2, y2 = max_index, max_runtime_per_year
x3, y3 = mean_index, mean_runtime_per_year
# create the plot
plt.figure(figsize=(10, 6))
plt.plot(x1, y1, label = 'Minimum')
plt.plot(x2, y2, label = 'Maximum')
plt.plot(x3, y3, label = 'Mean')
# title and labels
plt.title('Runtime by Years')
plt.xlabel('Year')
plt.ylabel('Duration (minutes)');
plt.legend(loc='upper left')
We can see that the average duration of movies more or less remains the same. However, there seems to be a contant trend of small films after year 2000. The maximum length of movies also seem to increase overall, and we can see a few very very lengthy movies in later years.
As we have two operational definitions for success, we will explore both aspects one by one.
In my first analysis, I will consider popularity as a measure of success. Higher popularity would mean more success. We will try to answer the following questions:
Let's see how popularity of movies look like when we take the budget into consideration. I will plot the mean popularity against the budget first.
# plot budget vs average Popularity
plt.figure(figsize=(10, 6))
mean_popularity_grouped_by_budget = df.groupby('budget').mean()['popularity']
plt.plot(mean_popularity_grouped_by_budget.index, mean_popularity_grouped_by_budget)
# title and labels
plt.title('Budget vs mean Popularity')
plt.xlabel('Adjusted Budjet for inflation')
plt.ylabel('Popularity rating');
We can see that popularity seems to increase with budget in general. Although there is a huge dip at the end for movie with very high budget, but the general trend suggests that higher the budget, higher is popularity. Let's look at the scatter of budget with popularity to gain more insight about this.
# plot budget vs popularity
plt.figure(figsize=(12, 6))
plt.scatter( df['budget_adj'], df['popularity'])
# title and labels
plt.title('Budget vs Popularity')
plt.xlabel('Adjusted Budjet for inflation')
plt.ylabel('Popularity rating');
From the above scatter plot, we can see that as the budget increases, the movies seem to be slightly more popular, but this is not a definitive trend. Some of the most popular movies lie in the middle of our budget scale. We can see that we have popular movies at all types of budget. But most of the lower budget movies seem to be less popular. The dip in the mean popularity is explained by the low popularity and low movie count in high budget.
So budget of a movie might not be a direct factor in success, but movies having a higher budget seems to be popular
It doesn't however mean that higher budget makes a movie popular.
Let's see how popularity of movies look like when we take the movie runtime into consideration. We will fist look into the mean popularity and then look at the scatter plot to analyze further.
# plot runtime vs average Popularity
plt.figure(figsize=(10, 6))
mean_popularity_grouped_by_runtime = df.groupby('runtime').mean()['popularity']
plt.plot(mean_popularity_grouped_by_runtime.index, mean_popularity_grouped_by_runtime)
# title and labels
plt.title('Runtime vs mean Popularity')
plt.xlabel('Runtime (minutes)')
plt.ylabel('Popularity rating');
We can see that there is an increase in popularity as the runtime increases initially and then it starts falling down. There is a peak around 155-175 minutes of runtime. Let's ananlyze the distribution of runtime and popularity with a scatter plot now.
# plot runtime vs popularity
plt.figure(figsize=(12, 6))
plt.scatter( df['runtime'], df['popularity'])
# title and labels
plt.title('Runtime vs Popularity')
plt.xlabel('Runtime (minutes)')
plt.ylabel('Popularity rating');
We can see that movies with runtime around 120 to 140 are more popular. So short films are not doing that well. Very long ones are also not performing well. So runtime does seem to affect the popularity of movies. People like their movies around 2 hours long.
Movies which are around 120 to 140 minutes long seem to be more popular with audience. Most popular movies have time around 120 minutes. However movies around 150-170 minutes have more popularity in terms of average.
Let's look at the change in popularity over the years. To get the trend for popularity, we can look at the mean popularity per year first. Later we will analyze the distribution of popularity from a scatter plot over years.
# plot mean popularity vs year
mean_popularity_grouped_by_year = df.groupby('release_year').mean()['popularity']
mean_index = mean_popularity_grouped_by_year.index
# set axes for the plot
x1, y1 = mean_index, mean_popularity_grouped_by_year
plt.figure(figsize=(10, 6))
plt.plot(x1, y1, label = 'Mean Popularity')
# title and labels
plt.title('Popularity by Years')
plt.xlabel('Year')
plt.ylabel('Popularity');
plt.legend(loc='upper left')
Popularity seems to be moving upwards as the years progress. This seems correct as the newer movies are more easily dicovered and hence they will be more popular. Since mean values measure more of a central tendency, let's look at the absolute values in a scatter plot.
# plot release year vs popularity
plt.figure(figsize=(12, 6))
plt.scatter( df['release_year'], df['popularity'])
# title and labels
plt.title('Release year vs Popularity')
plt.xlabel('Release year')
plt.ylabel('Popularity rating');
We can see that most movies over the years are not very popular, btu there is a definite rise in popular movies over the years.
Movies which are releases in recent past seem to be more popular. So there is a good chance of success for newly released movies
Given the fact that a lot of new movies are still densly located at low popularity rankings, release year does not ensure success as it might seem from the mean plot above.
Let's see how popularity is affected by user ratings. However both of these seem to be the same thing, let's see if there is a relation between both. We will have two trends plotted, one where we take number of user ratings in account, and other where we take the average user rating. Again we will consider mean popularity and then look at the distribution in scatter plots.
# plot average vote vs average Popularity
plt.figure(figsize=(10, 6))
mean_popularity_grouped_by_vote_average = df.groupby('vote_average').mean()['popularity']
plt.plot(mean_popularity_grouped_by_vote_average.index, mean_popularity_grouped_by_vote_average)
# title and labels
plt.title('Avergae vote vs mean Popularity')
plt.xlabel('Average vote')
plt.ylabel('Popularity rating');
We can see that on an average, movies with higher vote average are more popular. Again we see a dip in the popularity at the extreme of average vote where a highly voted movie is not very popular. But the general trend suggests that better the vote average, more the popularity and hence movie is a success. Now let's look at the distribution of vote average with popularity in a scatter plot.
# plot vote average vs popularity
plt.figure(figsize=(12, 6))
plt.scatter( df['vote_average'], df['popularity'])
# title and labels
plt.title('Avergae vote vs Popularity')
plt.xlabel('Average vote')
plt.ylabel('Popularity rating');
While we can see that movies with higher average vote have a better chance of being popular, we have some highly voted movies that are not very popular.
While movies with high average votes seem to be more popular, there is still a chance that high vote average movie might not be popular. But low votes definetly show that movie won't be popular
Now lets look how number of votes casted fare with popularity of movie. We will look at the mean popularity first and then have a look at the scatter plot to further analyze.
# plot vote count vs average Popularity
plt.figure(figsize=(10, 6))
mean_popularity_grouped_by_vote_count = df.groupby('vote_count').mean()['popularity']
plt.plot(mean_popularity_grouped_by_vote_count.index, mean_popularity_grouped_by_vote_count)
# title and labels
plt.title('Vote count vs mean Popularity')
plt.xlabel('Vote count')
plt.ylabel('Popularity rating');
We can infer from this graph that on average, movies with more votes casted seem to be more popular. Let's look at the distribution of votes count and popularity to see if that also confirms our observation.
# plot vote count vs popularity
plt.figure(figsize=(12, 6))
plt.scatter( df['vote_count'], df['popularity'])
# title and labels
plt.title('Vote count vs Popularity')
plt.xlabel('vote count')
plt.ylabel('Popularity rating');
We can see in the graph that popularity increases as the number of votes increase. This makes sense as more the number of people watching it, more people will vote and more popular the movie will be.
More the numbers of vote casted, more popular the movie is. This loop kind of feeds itself as more votes means more popular and then more people watch it and more will vote.
In the second part of my analysis, I will consider percentage profit or return on investment as a measure of success. Higher ROI would mean more success. We will try to answer the following questions:
First things first, let's calculate ROI percent in our data.
# calculate the ROI per 100
df['roi'] = ((df['revenue_adj'] - df['budget_adj']) / df['budget_adj'])*100
In this part of our analysis, success is determined by ROI. First let's have a look at the ROI over years.
# plot year of release vs ROI
plt.figure(figsize=(12, 6))
plt.scatter( df['release_year'], df['roi'])
# title and labels
plt.title('ROI by Year of release')
plt.xlabel('Year of release')
plt.ylabel('ROI (in %)');
It looks like ROI remains low for most part. But for some reason, around 1985-1987, there was massive profits on average. Lets look at a few rows with such high profits to see if there is some error with data.
movies_with_high_roi = df.query('roi > 100000')
movies_with_high_roi.head()
This just doesn't looks right. A movie of runtime 115 minutes can't have a budget of $114. Other movies are also having incorrect data for budget. Hence the unusual ROI. I will filter out the ROI's greater than 20 times and then plot the same graph again. Before that, I will plot a mean ROI by years to see the trend after cleaning up the data.
# remove data where ROI is unrealistic. For my study, I have decided that an ROI of more than 1000% is not realistic.
movies_with_normal_roi = df.query('roi < 1000', inplace=True)
normal_roi_mean = df.groupby('release_year').mean()['roi']
mean_index = normal_roi_mean.index
# set axes for the plot
x1, y1 = mean_index, normal_roi_mean
plt.figure(figsize=(10, 6))
plt.plot(x1, y1, label = 'Mean ROI')
# title and labels
plt.title('Mean ROI by Years')
plt.xlabel('Year of release')
plt.ylabel('ROI (in %)');
plt.legend(loc='upper left')
Now this filtered out data looks more precise. We can see that ROI is going down by the years. Around 1970's, there seems to be some outliers with great profit and very heavy loss, but rest of the trend suggests a dip in ROI. The curve if going upwards from around 2000, but the slope is low. Let's also take a look at the ROI distribution using a scatter plot.
# plot release year vs ROI
plt.figure(figsize=(12, 6))
plt.scatter( df['release_year'], df['roi'])
# title and labels
plt.title('ROI by Years')
plt.xlabel('Year of release')
plt.ylabel('ROI (in %)');
We can see that as the years are passing, movies with low ROI are increasing. Which brings the average down and hence the plot before that.
ROI is going down on an average as the years pass by. This can be due to higher budgets or more movies coming in and not performing well. However we can see that the number of movies with higher ROI is also increasing. This can be seen in the density of the above scatter plot. So movies coming in later years have a lower chance of being successful if we just look at the release time in isolation. The possible reasons could be increase in budget and flooding of movies causign decrease in revenue.
To look at the affect of popularity index on the ROI, let's plot ROI against popularity. Again we will first take a look at the mean ROI grouped by popoularity and then look at the scatter plot to further analyze on the trend.
# plot popularity vs average ROI
plt.figure(figsize=(10, 6))
mean_roi_grouped_by_popularity = df.groupby('popularity').mean()['roi']
plt.plot(mean_roi_grouped_by_popularity.index, mean_roi_grouped_by_popularity)
# title and labels
plt.title('Popularity vs mean ROI')
plt.xlabel('Popularity rating')
plt.ylabel('ROI (in %)');
We don't have a very conclusive trend here, but as the popularity increases, the average seems to go up higher for ROI. LEt's look at the scatter plot to see what is the reason of this strange distribution.
# plot popularity vs ROI
plt.figure(figsize=(10, 6))
plt.scatter(df['popularity'], df['roi'])
# title and labels
plt.title('Popularity vs ROI')
plt.xlabel('Popularity rating')
plt.ylabel('ROI (in %)');
If we just look at the above graph, it suggests that as popularity increases, there is certainly and increase in ROI. However, movies which are not very popular also have a great ROI. One possible cause is that we have incorrect revenue and budget data, hence ROI calculated is not correct. But if we look at the highly popular movies, they seem to have a better ROI.
There isn't very strong connection unless the popularity goes beyond a certain index of 3-4. After that we can see a positive relationship in the sense that more popular a movie, better is the ROI.
We have seen earlier that runtime between 120-140 minutes seem to common factor among popular movies. So my initial guess would be that these runtime should have a higher ROI as well. Let's plot the runtime vs ROI plot and see what the trend suggests.
# plot runtime vs average ROI
plt.figure(figsize=(10, 6))
mean_roi = df.groupby('runtime').mean()['roi']
plt.plot(mean_roi.index, mean_roi)
# title and labels
plt.title('Runtime vs mean ROI')
plt.xlabel('Runtime (minutes)')
plt.ylabel('ROI (in %)');
We can see that the mean ROI goes up towards 140-180 minutes mark. So on average movies with this lengths are having a higher ROI. Let's also look at the ROI distribution with runtime.
# plot runtime vs ROI
plt.figure(figsize=(10, 6))
plt.scatter(df['runtime'], df['roi'])
# title and labels
plt.title('Runtime vs ROI')
plt.xlabel('Runtime (minutes)')
plt.ylabel('ROI (in %)');
We can see in this distrubution that in general, movies with time around 140-180 minutes do have a higher ROI. Although, there is a good density of movies around 80-120 minutes mark with good ROI. Since this runtime has a lot of movies, the mean ROI goes down.
I can see that there is a good density of high ROI movies in 80-120 min interval. Also, 140-180 minutes interval have a high mean ROI. These two intervals would be a good runtime to look for high ROI movies.
While budget is directly involved in calculating the ROI, I wanted to see if high budget movies are getting better ROI, because a higher budget can enalbe better cast and crew. Let's access both mean ROI as well as ROI distribution with budget.
# plot budget vs ROI
plt.figure(figsize=(12, 6))
plt.scatter( df['budget_adj'], df['roi'])
# title and labels
plt.title('Budget vs ROI')
plt.xlabel('Budget (adjusted for inflation in $)')
plt.ylabel('ROI (in %)');
We can see that there is a lot of density towards low budget and low ROI. As the budget is increased, there seems to be a slight increase in ROI. We can also see a nice chunk of low budget movies getting good ROI. Let's see how the mean ROI looks against budget.
# plot budget vs average ROI
plt.figure(figsize=(10, 6))
mean_roi_grouped_by_budget = df.groupby('budget_adj').mean()['roi']
plt.plot(mean_roi_grouped_by_budget.index, mean_roi_grouped_by_budget)
# title and labels
plt.title('Budget vs mean ROI')
plt.xlabel('Budget (adjusted for inflation in $)')
plt.ylabel('ROI (in %)');
The mean ROI can also be seen going upwards with increase in budget. Although the curve is not very smooth, but if we have to generalize and see a common relationship, higher budget can be a common factor in successful movies. I am a bit ignorant towards that high ROI movies with very low budget because this is not realistic and seems more like incorrect data.
General trend suggests that for a higher ROI, either keep a very small budget or have a larger budget. Both areas seem to have better ROIs. Since budget is a denominator while calculating ROI, a small budget with decent revenue would result in a better ROI
Lastly, let's look at the average user ratings and their relationship with ROI.
# plot vote average vs ROI
plt.figure(figsize=(12, 6))
plt.scatter( df['vote_average'], df['roi'])
# title and labels
plt.title('Vote Average vs ROI')
plt.xlabel('Vote average')
plt.ylabel('ROI (in %)');
We can see that a lot of movies with better ROI have a larger vote average. So high average vote looks like a characteristic of successful movie. However we can see that there is a good density of non-successful movies as well with high vote average. Let's look at the mean ROI to see if we can get a trend here.
# plot runtime vs average ROI
plt.figure(figsize=(10, 6))
mean_roi = df.groupby('vote_average').mean()['roi']
plt.plot(mean_roi.index, mean_roi)
# title and labels
plt.title('Vote Average vs ROI')
plt.xlabel('Vote average')
plt.ylabel('ROI (in %)');
Well, the mean ROI clears things up with vote average. We can see a very clear thrend that ROI on average increases with the average vote. There are a few outliers, but high average vote seems to be a requirement for success of movie.
My research goals were to answer three major questions:
How does number of movies released per year change?
From my analysis, we clearly saw that number of movies is an increasing trend. It sort of exploded after year 2000.
How does runtime of movies change over years?
We saw that as the years passed, the average duration of movies remained more of less the same. However, we now have a lot of short films, as well as a few very lengthy films as well.
What factors can make a movie successful?
We had two operational definition for success, popularity and ROI. From my study of given dataset, I can conclude that following are the recipies for successful movies:
So we can see that high vote average and high vote counts are part of success either way. Recently released movies seem to be more popular, but ROI is getting down in the recent years, so movies released in the past are more successful in terms of ROI. We don't have a clear runtime slot, but short movies don't seem to be doing well on either definiotions.
First and foremost, the study and conclusions are limited by the quality of data. As seen in the wrangling phase, we had lots of missing values for budget and revenue. Later on while plotting ROI, we saw that budget values might be wrong as well. I did a filter based on my guess of ROI, but this still pollutes the result. Also some assumptions were made about outliers and we proceeded to look at the general trend.
This study shows definitive results for movies released per year and runtime, but it doesn't guarantee a recipe for success while evaluating the third question. It just points out what things are common across successful movies. While these things are common, they might not be the reason for the success of movie.


Welcome to the /usr/sbin/ece-install Guide
Table of Contents
- 1 Supported operating systems
- 2 A note on running ece-install on non-GNU/Linux systems
- 3 Downloading the ece-install script
- 4 Running the ece-install script
- 5 Available server profiles
- 6 Full Automatic Install (FAI)
- 7 Running more than one installation process
- 8 Re-running ece-install
- 9 Overview of file paths used by the ece-install script
- 10 Uninstalling everything that the ece-install set up
- 11 Example Output
1 Supported operating systems
For the best experience, run this script on Debian Squeeze (or newer), the latest Ubuntu LTS or most other Debian based operating systems, but it should work without any problems on any Unix like system that has a recent version of BASH.
1.1 Debian based operating systems
If running on a Debian based operating system, ece-install will take care of installing all required third party software, such as database & caching server.
1.2 Other GNU/Linux and Unix systems
If you're installing on another Linux or Unix system, you must first make sure that these 3rd party components are installed. ece-install will tell you which ones it cannot find and tell you to install these, so you can simply run it to find out which ones you need.
You may also look inside the ece-install script for all calls to the 'assert_pre_prequesite' method and you'll get a list of the binaries ece-install assumes are present.
2 A note on running ece-install on non-GNU/Linux systems
Please note, it's assumed that the OS uses GNU's tools, i.e. find, cp & tar. If you're running a system which has a different set of core tools, such as any of the BSDs (including Mac OS X) or Solaris, make sure that GNU's tools take precedence in the command PATH offered to ece-install.
3 Downloading the ece-install script
The ece-install script can be downloaded from: https://raw.github.com/skybert/ece-scripts/master/usr/sbin/ece-install or be downloaded together with the other ece-scripts using git:
$ git clone git@github.com:skybert/ece-scripts.git
4 Running the ece-install script
You must run the script as the root user. If you start the script as a regular user, it will complain:
[ece-install] You must be root when running ece-install
To become root on Ubuntu based systems and Mac OS X, do:
$ sudo su
On all other Unix like system, do:
$ su
5 Available server profiles
When starting the script, it will ask you which server profile you want to install:
Hi, which server profile do you wish to install? Select 1-7 and press ENTER 1 - The full stack on one host. Suitable for development and test environments (cache, ECE, assembly host & database). 2 - Editorial (publication) server (ECE, assembly host). 3 - Presentation server (ECE, memcached). 4 - Database server. 5 - Cache server (cache & web server). 6 - RMI hub. 7 - Standalone search instance (solr + indexer-webapp). 8 - Install Widget Framework. This will also set up a WF based publication for you (repo.escenic.com user/pass required).
5.1 Common for editorial, presentation and search instances
- Sun Java 6
- Apache Tomcat application server:
- Compression of textual content (previously, this was typically set up with Apache and its mod_deflate module).
- pooling set up tweaked for high read/write performance.
- proper logging configuration directing solr messages to its own log.
- routing information in the cookies
- access log
- APR, native library for optimal Tomcat I/O performance
- Escenic Assembly environment
- Database driver
- Compression of content (what was previously accomplished with Apache/mod_deflate)
5.2 1 - Full stack on one host
This profile is suitable for developers and admins wanting to set up a test environment. It will install the full stack including caching server, application server, ECE, assembly host, database, Widget Framework, as well as creating a publication for you.
For further details on each of the different server components, see the different profile descriptions bellow.
5.3 2 - Editorial server (publication server)
5.4 3 - Presentation server
This will set up a typical presentation server:
- Memcached, distributed memory cache
- Escenic Assembly environment (which may be removed after the installation).
- Deployment setup to only deploy escenic-admin and the publication(s).
5.5 4 - Database server
If ece-install is run on a support version of Debian or Ubuntu, this will install the excellent Percona distribution of MySQL with their set of high performance patches.
If not, MySQL or Percona must be installed in advance.
Given that the mysqld is install, this profile will download all the Escenic components and install the ECE database schema based from the SQL files contained inside the distribution bundles. To accomplish this, the script will make a call to drop-and-create-ecedb in the same directory as the ece-intall script itself.
If you wish to change the DB's host, user or password, you must update the drop-and-create-ecedb script prior to running ece-install.
5.6 5 - Cache server
If ece-install is run on a support version of Debian or Ubuntu, it will install the latest Varnish 3.0 caching server from the Varnish APT repository.
If ece-install is run on a different platform, the admin must install Varnish 3.x prior to running ece-install.
The script will configure Varnish for a typical Escenic site:
- will set up an access control lists of IPs which may access the
privileged web applications such as /escenic-admin, /escenic and
/webservice.
ece-install will also add the host from which you connect, making sure that if you've SSH-ed into the server to conduct the install, you'll automatically be included in the "staff" ACL and can access all the web applications without editing these ACLs (or disabling security as many does).
- will set up sticky sessions/session binding
- will set up a backend cluster and allow the user to enter the different backend servers that will serve the web site.
- will set up configuration to strip away cookies from static resources, such as CSS, JS and pictures.
TBD:
- If run on a Linux platform, the script will tweak the kernel parameters for optimal TCP handling for a web facing server.
- Will install the nginx web server for serving static content and will configure Varnish accordingly. This will be very useful for Adactus servers wanting to pull content from your ECEs.
5.7 8 - Install Widget Framework
You'll need a user name and password for accessing the repo.escenic.com Maven repository. You should get these credentials when you bought Widget Framework. If you for some reason do not have these, please contact<EMAIL_ADDRESS>If you don't have these ready in your .escenicrc, ece-install will complain:
[ece-install] Be sure to set wf_user and wf_password in /root/.escenicrc [ece-install] If you don't have these, please contact<EMAIL_ADDRESS>5.8 9 - Create Publication
This profile will create a publication for you, only asking you the name of the publication and which ECE instance to use for its creation.
This installation profile will base the publication on the Widget Framework if its present on the system, if not, ECE's clean demo WAR is used as a basis.
6 Full Automatic Install (FAI)
The ece-install script has support for doing a full automatic install (FAI).
The ece-install script understands for the following settings in the $HOME/.ece-install.conf file of the root user:
| Parameter | Default | Description |
|---|---|---|
| fai_all_install | 0 | Install all components on your server. |
| fai_cache_install | 0 | Install cache server profile |
| fai_cache_backends | ${HOSTNAME}:8080 | Space separated, e.g. "app1:8080 app2:8080" |
| fai_db_install | 0 | Install db profile |
| fai_db_host | $HOSTNAME | Useful for editor & presentation profiles |
| fai_db_port | 3306 | Useful for editor & presentation profiles |
| fai_editor_install | 0 | Install the editorial profile |
| fai_editor_name | editor1 | Name of the editor instance |
| fai_editor_port | 8080 | HTTP port of the editor instance |
| fai_editor_shutdown | 8005 | Shutdown port of the editor instance |
| fai_enabled | 0 | Whether or not to run ece-install in FAI mode |
| fai_presentation_install | 0 | Install the presentation server profile |
| fai_presentation_name | web1 | Name of the presentation server instance |
| fai_presentation_port | 8080 | HTTP port of the presentation server instance |
| fai_presentation_shutdown | 8005 | Shutdown port of the presentation instance |
| fai_publication_create | 0 | Create a new publication |
| fai_publication_name | mypub | Name of the publication |
| fai_publication_useinstance | dev1 | Name of local instance to use for creation |
| fai_rmi_install | 0 | Install RMI hub profile |
| fai_search_name | search1 | Name of the search instance |
| fai_search_port | 8080 | HTTP port of the search instance |
| fai_search_shutdown | 8005 | Shutdown port of the search instance |
| fai_wf_install | 0 | Install Widget Framework profile |
As you've probably have guessed, 0 means "false" and 1 means "true" :-)
To automatically install an editorial server and create a publication called "jollygood", the minimal configuration in .ece-install.conf would be:
fai_enabled=1 fai_editor_install=1 fai_publication_create=1 fai_publication_name=jollygood
When FAI is enabled, ece-install will report:
[ece-install] Full Automatic Install (FAI) enabled. [ece-install] All user input will be read from /root/.ece-install.conf
7 Running more than one installation process
If the script believes there's already an ece-intall process running, it will abort:
[ece-install] There's already one ece-install process running. If you believe [ece-install] this is wrong, e.g. if a previous run of ece-install was aborted [ece-install] before it completed, you may delete /var/run/ece-install.pid and [ece-install] run ece-install again.
8 Re-running ece-install
Although the initial thought behind ece-install, is to run it on a clean system to get up and running as soon as possible. However, you may want to re-run ece-install on the same host, for instance to add another instance of ECE, set up Widget Framework or create another publication.
ece-install has a number of features which will try to minimise the time it takes to run it on consecutive runs. If running on Debian based systems, it will check if you already have installed pre-requisite 3rd party libraries and only if any are missing will it ask the package manager to fetch it.
Likewise, ece-install will see if the Escenic artifacts or application server that you need are already present in the /tmp/ece-downloads folder, and only download the missing ones (if any).
To get a list of the artifacts it'll pull from http://technet.escenic.com and http://tomcat.apache.org search for the following variables:
- technet_download_list
- wf_download_list
- tomcat_download
9 Overview of file paths used by the ece-install script
There are of course other paths involved when setting up your system, but these should be the most interesting ones.
| Path | Explanation |
|---|---|
| /etc/apt/sources.list.d/escenic.list | 3rd party APT repositories added by ece-install *) |
| /etc/default/ece | The configuration file for the ece init.d script |
| /etc/escenic/ece-<instance>.conf | Instance specific settings for /usr/bin/ece |
| /etc/escenic/ece.conf | Common ece.conf file for /usr/bin/ece |
| /etc/escenic/engine/common | Common Nursery configuration layer |
| /etc/escenic/engine/common/security | Common security configuration for all ECE instances. |
| /etc/escenic/engine/common/trace.properties | Log4j configuration, produces instance specific log files. |
| /etc/escenic/engine/instance/<instance> | Instance specific Nursery configuration |
| /etc/escenic/solr | ECE specific Solr configuration |
| /etc/init.d/mysql[d] | For starting and stopping MySQL/Percona |
| /etc/init.d/varnish | For starting and stopping Varnish |
| /etc/intit.d/ece | The init.d script managing all the ECE instances on your host. |
| /etc/varnish/default.vcl | The Varnish configuration |
| /opt/escenic | All ECE components can be found here |
| /opt/escenic/assemblytool | The assembly tool |
| /opt/escenic/assemblytool/plugins | Contains symlinks to all plugins in /opt/escenic |
| /opt/escenic/engine | Symlink pointing to the current ECE |
| /opt/tomcat | Symlink pointing to the install Apache Tomcat (catalina_home) |
| /opt/tomcat-<instance> | Instance specific Tomcat files (catalina_base) |
| /usr/bin/ece | Script for operating all ECE instances + RMI hub and EAE |
| /usr/sbin/drop-and-create-ecedb | DB script used by the ece-install script |
| /usr/sbin/ece-install | The installation script described in this guide |
| /var/log/escenic/<type>-<instance>.log | The instance's log4j log |
| /var/log/escenic/<type>-<instance>.out | The instance system out log |
| /var/log/escenic/solr.<date>.log | The Solr log (not in standard out!) |
| /var/run/escenic/<type>-<instance>.pid | The instance's PID file |
*) Applies only to Debian based systems.
10 Uninstalling everything that the ece-install set up
WARNING: this is potentially dangerous as some of these components may be used by other pieces of software you have running on your host. However, this may be useful if you're installing a clean environment and want to e.g. undo your previous install to install a different profile.
Open the ece-install script and look for the "un_install_ece" function, it has copy and pastable commands for undoing most/all things set up by the script.
11 Example Output
Below is an example output of running ece-install, installing the all-in-one profile.
CANNOT INCLUDE FILE /tmp/ece-install.out


--- layout: post title: Monkey Love date: 2006-02-23 00:00:00 categories: amusing personal ---
The boy melon captures it with a monkey.


Mi CC9 Pro latest teasers hint at interesting features - Gizchina.com
by AbdulMi CC9 Pro latest teasers hint at interesting features
4.1 (81.67%) 12 votes
Xiaomi has been teasing the Mi CC9 Pro, also known as Mi Note 10 for almost a week now. The phone is set to go official on November 5 in China but we already know almost all the specifications, thanks to the company itself as well as benchmark and certification listings. Anyways, there was still uncertainty regarding the chipset of the device which has been now confirmed by Xiaomi as Snapdragon 730G this morning. Not very old teasers have confirmed a 32MP selfie camera and four-axis OIS(Optical Image Stabilization) for both 108MP primary sensor and 8MP 5x telephoto lens. One of the latest teasers also hint at a larger sound chamber that will result in better sound.
The Mi CC9 Pro will be the world’s first mass-produced smartphone with 108MP camera and will be powered by the mid-range Snapdragon 730G. However, there are still chances for a higher variant with a flagship chip at least for international markets with the Mi Note 10 series. Xiaomi says the Snapdragon 730G is built on the same architecture and 8nm process like the Snapdragon 855. And hence, the CPU and GPU performance will be 35% and 25% more than the previous generation. Also, it will offer two times the AI performance than its predecessor. Whatever the company says, this chip still falls behind the flagship Snapdragon 855 / 855+ that are seen on smartphones in the same range.
Xiaomi also posted another teaser with a GIF showcasing the breathing notification animation light. It will be compensating for the lack of a notification LED. This feature is already available on MIUI 11 for AMOLED-equipped Xiaomi phones including the Redmi K20 and Redmi K20 Pro. But since the Mi CC9 Pro will feature a curved display, the effect will be similar to ‘Edge Lightning’ on Samsung Galaxy S and Galaxy Note series.
In total, the phone will feature five cameras on the back and will be backed by a 5,260mAh battery with support for 30W fast charging.


Indicates the access specifier used when a class inherits from another class.
The <cxxClassDerivationAccessSpecifier> element is contained within a <cxxClassDerivation> element. The mandatory value attribute is set to “public”, “protected” or “private” to describe the access the class has to the members of the base class.
Use the <cxxClassDerivationAccessSpecifier> element together with the sibling element <cxxClassBaseClass>. This specifies the base class. Alternatively you can use <cxxClassBaseStruct> or <cxxClassBaseUnion> if you derive from a struct or union instead of from a class.
<cxxClassDerivation> <cxxClassDerivationAccessSpecifier value="public"/> <cxxClassBaseClass href="class_base">Base</cxxClassBaseClass> </cxxClassDerivation>


Your dashboard shows your current stats and helps you keep track of three main things
Tasks helps you keep track of what’s important all the time
Reminders ensures you don't miss important activities and keeps you up to date
Recent search helps you pick up where you left off
Searching for leads is made easy with our AI powered search genius
You enter a few key words and our AI goes to work
When our AI receives your search query, it analyzes it and finds the matching leads.
Because it's designed to be super intelligent, it goes one step further and selects the leads that are most relevant to your business or product, then tags them based on priority.
 It’s simple and easy to use
Each column in your pipeline represents a stage in your deal process. Simply drag deals from one column to the next to change their stage
Pipelines lets you do so much more.
You can schedule activities related to your client. Send an email to them, add files related to the deal, and even take notes during a meeting or a call with the client. Most importantly, it organizes all your activities in a pristine manner.
Your contacts are managed right here in Tapdesk. You can easily add them to your pipeline, send them emails, or even share your calendar with them
My Contacts
Your calendar keeps track of your activities Tapdesk AI is trained to handle calendar activities preventing event collisions and task double booking. It does so much more.
When you're ready to schedule your next call with your client. Tapdesk AI will send your schedule to them, they pick the time and it creates everything you need.
It reminds you of the schedule and during your call or meeting assists you by ensuring you have everything you need to close the deal.
Informing your contacts about new exciting products is easy through a campaign. Campaigns lets you reach your contacts and leads in your product pipelines through email marketing.
Tapdesk provides you with the tools to edit responsive emails that truly convert and engage your customers.
Campaign Analytics allows you to see how your campaign is doing, and how your customers are engaging with your business. Campaigns ensure you reach the right audiences.
Campaign
Analytics
Great data in your hands for the best business decisions you could make.
A lot goes on in Tapdesk as the software works hard to provide a high level of efficiency and productivity that drives results for your business.
Flows and Tapdesk Automation ensures that nothing falls through the cracks and assists you in running tasks that help drive deals to a close.
Rather than perform the repetitive tasks yourself, Tapdesk AI creates a flow that takes control of different processes in your business cycle. This gives you more time for that meeting or calls with your clients.
The Flows feature leverages the massive computing power of Tapdesk AI to drive your sales cycle in full autopilot mode.
Ready to close a deal?
The invoicing features make it easy for you to create and send invoices to your customers. It makes it even easier for them to pay you with just a single click
Invoicing
Features
At the end of the day, you can view your analytics, see how well you performed. Most importantly, Tapdesk AI analyzes your performance data, help you keep track of your goals while ensuring you have all the tools necessary to achieve them.
 Its data that makes sense.
Admin tools lets you do so much more: manage users, team, company profiles, billing, manage resources, integrate apps, and manage permissions
Now, take Tapdesk for a spin.
Explore how an all-in-one CRM can take your business to the next level.
Get started


Tags: music and stuff
百合花 - 燒金蕉
I’m really glad there are still decent bands in Taiwan. 不聽可惜
Release date: 2019-09-06
[9.0/10]
Telefon Tel Aviv - Dreams Are Not Enough
FFO Have A Nice Life and Planning For Burial. All banger no filler.
Release date: 2019-09-27
[8.8/10]
Richard Dawson - 2020
Doesn’t disappoint whatsoever.
Release date: 2020-10-30
[8.7/10]
Minor Pieces - The Heavy Steps Of Dreaming
Slowcore will never die, but you will. Exquisite lofi glitchy folk / electronica.
Release date:
[8.7/10]
Proc Fiskal - Shleekit Doss
I didn’t really pay a lot of attention to his last album, but this EP totally slays… awesome UK grime. Also gotta say it’s insane how Hyperdub always manages to find dope stuff.
Release date:
[8.6/10]
Loraine James - For You And I
Glitchy club music. I like the techno beats on this album. Another stunning release from Hyperdub!
Release date: 2019-09-20
[8.6/10]
Maria w Horn - Epistasis
FFO Ellen Arkbro, Kali Malone and Abul Mogard. I’m a sucker for this type of music…
Release date: 2019-10-25
[8.6/10]
Ernest Hood - Neighborhoods
So this album was actually released in 1975… I guess Pitchfork is quite accurate in calling it proto-ambient? A large portion of this album consists of field recordings and they really do help bring out an imagination of the American suburbs, and they pair very well with the old time sounding instrumentation. Nice stuff.
Release date: 2011-01-01
[8.5/10]
DJ Spinna - 1997 Beat Tape
Nujabes fans will definitely dig this.
Release date: 2019-06-21
[8.5/10]
Weatherday - Come In
This is what would happen if Phil Elverum plays punk rock. The track My Sputnik Sweetheart is especially visceral. Overall an awesome emo album (can’t believe there are actually still people that know how to do a proper emo record…)
Release date: 2021-01-14
[8.4/10]
HTRK - Venus in Leo
Delicate indie electronica / pop. Somehow feels like a sadder Beach House…
Release date: 2019-08-30
[8.3/10]
S S S S - Walls, Corridors, Baffles
Borderline noise experimental electronica. Think Ben Frost’s By the Throat, but more abrasive. I’m a sucker for this kind of stuff…
Release date:
[8.3/10]
Floating Points - Crush
This one is more techno than jazzy electronica. Still pretty dope.
Release date: 2000-01-01
[8.2/10]
Sana Obruent - End Game
Haunting ambient. It gradually gets more intense as the album approaches its end.
Release date: 2017-12-08
[8.2/10]
Toshifumi Hinata - Broken Belief
Pretty good new age. This is a compilation of the artist’s music from the 80’s so I guess it makes sense.
Release date: 2019-09-19
[8.2/10]
Danny Brown - uknowhatimsayin¿
I feel like it’s much more surprising if one day Danny Brown puts out a wack album. This album is killer just like his older stuff.
Release date: 2019-10-04
[8.2/10]
Cult Of Luna - A Dawn to Fear
I don’t know what’s not to like about this band or this album.
Release date: 2019-09-20
[8.2/10]
Sote - Parallel Persia
Techno / experimental album from Iran. The plucked ethnic instruments in the songs give a cacophonic yet enticing feel to the overall sound of this album, and the beats are pretty killer.
Release date: 2019-04-26
[8.1/10]
Old Man Saxon, Cer Spence - Goldman Sax
Quality chillhop. Gorgeous instrumentals and flows.
Release date: 2019-04-24
[8.1/10]
Ka Baird - Respires
Minimalistic experimental album. Pretty fun to listen to, but requires multiple listens. Greg Fox played the drums for this album.
Release date: 2019-10-25
[8.0/10]
Afrodeutsche - Break Before Make
Funky, upbeat techno music.
Release date: 2018-06-08
[8.0/10]
Pessimist, Karim Maas - Pessimist & Karim Maas
Chilling, dark and restrained techno.
Release date: 2019-06-21
[7.9/10]
Klein - Lifetime
That first song was pretty spooky. I like how this album’s overall sound has a raw distorted quality to it. Pretty decent experimental album.
Release date: 2021-01-21
[7.8/10]
Air Max ’97 - Ice Bridge
Intense techno tracks here. Put out a full length already…
Release date: 2019-09-27
[7.8/10]
Philippe Cam - Rotterdam
Chilled-out ambient / minimal techno. Some tracks remind me of Visible Cloak’s stuff.
Release date: 2021-03-12
[7.8/10]
Carl Gari, Abdullah Miniawy - Whities 023 (The Act of Falling from the 8th Floor)
Pretty neat album. Bass-heavy electronica plus Egyptian chants and trumpets.
Release date: 2019-09-06
[7.7/10]
Yosi Horikawa - Spaces
IDM + hip hop + world music(?). The songs are pretty fun to listen to.
Release date: 2020-02-01
[7.7/10]
Equip - Nocturne Catacombs
Funky vaporwave.
Release date:
[7.6/10]
Deathprod - Occulting Disk
Industrial / dark ambient. Spooky af.
Release date: 2019-10-25
[7.4/10]
Tribe Of Colin - Age of Aquarius
Techno music. A pretty safe one.
Release date: 1969
[7.4/10]
Comit - Remote Viewing
Organic sounding techno.
Release date: 2019-08-12
[7.4/10]
J Rick - No Retreat No Surrender
Short and sweet UK hip-hop / jazzy pop mixtape. I think this mixtape are a bit unfocused at times, but then I like how jazzy it sounds throughout the entire project.
Release date: 2008-11-10
[7.3/10]
Topdown Dialectic - Vol. 2
Pretty safe compared to their first album.
Release date: 1998-11-29
[7.2/10]
Stavros Gasparatos - Rage Park
Gloomy modern classical.
Release date: 2020-03-27
[7.1/10]
Mestozi - Peak Communication
On the artist’s Bandcamp page there are tags like “folk rap”, “neo-folk” and “blues”, so that’s a strong indication of this album being something quite refreshing to listen to. However IMO none of the songs are really that memorable. I’d say this is still pretty much chillwave rap.
Release date:
[7.0/10]
Claro Intelecto - Forgotten Wasteland
Dub house / techno. Pretty good and I like how the beats are a bit distorted, but this EP overall doesn’t stand out from the rest of the crowd.
Release date: 2019-06-21
[7.0/10]
Mark Lanegan - Somebody’s Knocking
Alternative rock jams with a gothic undertone. Kinda sounds like the Killers with a raspier vocal if you ask me…
Release date: 2019-10-18
[7.0/10]
Bonnie “Prince” Billy, Bryce Dessner, eighth blackbird - When We Are Inhuman
Not the strongest stuff from Bonnie Prince (Viva Last Blues and I See A Darkness are two albums I’d consider as his magnum opus) . Still a pretty soothing album though.
Release date: 2019-08-30
[6.9/10]
Danny Scott Lane - How to Empty a Cup
Shimmery ambient.
Release date:
[6.8/10]
Angel Olsen - All Mirrors
Indie chamber pop. I feel like this album has a chanson like grandiose quality to it. Not the biggest fan of the flamboyant overall sound of this album…
Release date: 2019-10-04
[6.7/10]
Bakongo - Momoweb / Disposition / Goulbap
Techno with some African percussions.
Release date: 2019-09-06
[6.7/10]
slowthai - Nothing Great About Britain
overrated
Release date: 2019-05-17
[6.5/10]
Wilco - Ode to Joy
Don’t see how this album is different from all the other Wilco albums. Definitely not an awful album though.
Release date: 2019-10-04
[6.5/10]
DIIV - Deceiver
This could be any other shoegaze band’s stuff and I wouldn’t be able to tell which band came up with it. Or maybe I’m just too old for this…
Release date: 2013-06-25
[6.1/10]
Thaiboy Digital - Legendary Member
Maybe it’s just me but I’ve always found mumble rap to be an obnoxious form of music… To be fair some tracks do have decent instrumentals, but then even in the best moments on this album it’s just less irritating radio trap bangers.
Release date: 2019-09-26
[5.8/10]
Opeth - In Cauda Venenum
OMG CAN’T FINISH
Release date: 2019-09-27
[4.6/10]
當代電影大師 - 狀態
… I mean the songs are just really not good… the narcissistic lyrics and the pretentious whiny vocals don’t help either. 整個受不鳥
Release date: 2019-10-18
[4.4/10]
Kanye West - Jesus Is King
I guess Ye made this album just for the lulz. Closed on Sunday, you’re my Chick-fill-A? This line says everything about the album.
Release date: 2019-10-25
[4.0/10]
Fabulous Diamonds - Commercial Music
Grossly overlooked experimental album.
Release date: 2021-06-01
[9.0/10]
Madteo - Noi No
King Midas Sound + minimal techno.
Release date: 2019-08-09
[8.5/10]
Soccer Mommy - Clean
FFO Shura and Jay Som. However the album sound very exuberant and lush, and is much more in the vein of indie rock music compared to the said two artists.
Release date: 2018-03-02
[8.4/10]
Pan Sonic - Aaltopiri
I still like Kesto more…
Release date: 2000
[8.1/10]
Sarn - Postmodern Trash
Even if the singing is totally off I still consider this a fun one… just that probably not everyone will enjoy it. The brass in the track Fss is pretty nasty.
Release date:
[7.2/10]
Jóhann Jóhannsson - Virðulegu Forsetar
Not a fan of the triumphant sounding horns. Overall sounds pretty safe to me.
Release date: 2004
[6.6/10]
Comments


The program is installed for current user by running:
$ python setup.py install --user
Or for all users by running:
$ sudo python setup.py install
The following dependencies needs to be installed separately:
numpy, scipy, matplotlib
On Debian systems copy:
$ sudo apt-get update && sudo apt-get install python-numpy python-scipy python-matplotlib
The following example runs default analysis on two different files:
$ fseq ~/Data/Mysc_24_ATCACG_L008_R1_001.fastq ~/Data/Mysc_74_GTTTCG_L008_R1_001.fastq
14-06-23 17:55 SeqReader INFO Has 2 jobs
14-06-23 17:55 SeqReader INFO Reading: /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq
14-06-23 17:57 SeqReader INFO Reading Complete: /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq
14-06-23 17:57 SeqReader INFO Reporting <class 'fseq.reporting.report_builder.ReportBuilderFFT'> with args=("<type 'numpy.ndarray'>.shape=(4831521, 101)",), kwargs={'outputRoot': '/home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports'}
14-06-23 17:57 SeqReader INFO Reporting <class 'fseq.reporting.report_builder.ReportBuilderPositionAverage'> with args=("<type 'numpy.ndarray'>.shape=(4831521, 101)",), kwargs={'outputRoot': '/home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports'}
14-06-23 17:57 SeqReader INFO Reading: /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq
Saving -> /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports/fft-sample.abs.heatmap.pdf
Saving -> /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports/average.total.line.pdf
Saving -> /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports/fft-sample.angle.heatmap.pdf
14-06-23 18:01 SeqReader INFO Reading Complete: /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq
14-06-23 18:01 SeqReader INFO Reporting <class 'fseq.reporting.report_builder.ReportBuilderFFT'> with args=("<type 'numpy.ndarray'>.shape=(5634723, 101)",), kwargs={'outputRoot': '/home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports'}
14-06-23 18:01 SeqReader INFO Reporting <class 'fseq.reporting.report_builder.ReportBuilderPositionAverage'> with args=("<type 'numpy.ndarray'>.shape=(5634723, 101)",), kwargs={'outputRoot': '/home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports'}
14-06-23 18:01 SeqReader INFO Waiting for 4 report builders to finish
Saving -> /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports/average.total.line.pdf
Saving -> /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports/fft-sample.abs.heatmap.pdf
Saving -> /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports/fft-sample.angle.heatmap.pdf
Saving -> /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports/average.lacking.line.pdf
Saving -> /home/martin/Data/Mysc_24_ATCACG_L008_R1_001.fastq.reports/average.not-lacking.line.pdf
Saving -> /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports/average.lacking.line.pdf
Saving -> /home/martin/Data/Mysc_74_GTTTCG_L008_R1_001.fastq.reports/average.not-lacking.line.pdf
14-06-23 18:03 SeqReader INFO All jobs complete`
Note: Running above consumes quite a lot of memory and CPU and takes about 10 minutes.
Note: If fseq is not found on your system, it usually is due to the default target of scripts for user install is not in your PATH. To amend this, check where install copied the file scripts/fseq and append that to your current PATH.
For all scenarios it should suffice to import the package:
>>> import fseq
To create a reader that will run the analysis:
>>> r = fseq.SeqReader(dataSourcePaths=("~/Data/Mysc_24_ATCACG_L008_R1_001.fastq", "~/Data/Mysc_74_GTTTCG_L008_R1_001.fastq"))
We can see how many jobs the reader has left:
>>> len(r)
2
And we can see the encoding that will be performed (and change it):
>>> r.seqEncoder
<fseq.reading.seq_encoder.SeqEncoderGC at 0x7fa9f9539b10>
This encoder is the default and will translate Gs and Cs to 1 while As and Ts are made into 0s.
We can also see which reports were requested by the encoder and thus added to the reader since we didn’t say what reports we wanted:
>>> tuple(r.reportBuilders)
(<fseq.reporting.report_builder.ReportBuilderFFT at 0x7fa9f95399d0>,
<fseq.reporting.report_builder.ReportBuilderPositionAverage at 0x7fa9f9539c50>)
To run encoding and produce results, simply:
>>> r.run()
Note that this will take some time and consume quite a lot of resources. It took about 10 minutes on a standard desktop for the two files in the command line example, and the python use is no different.


--- layout: post title: WURFL Survey date: 2006-08-30 00:00:00 categories: mobile software-development ---
Calling all WURFL users:
The WURFL project maintainers want to understand more about how you're using the WURFL, so that they can prioritise development effort and make sure they're addressing real-world problems.
To that end I've set up a short (10-question) survey at SurveyMonkey: if you use the WURFL in any capacity, then please do take the time to hop over there and fill it in.


Restart DZGA for the settings to take effect.For help or more information about configuration and to setup Action on Google:


Home
Faculty
Placement
Research
Photo Gallery
Events
Home
About us
Placement Officer’s Message
Faculty
MCA
Student Profiles
Coordinators
Contact Us
FAQ
Programmes/Courses
M.C.A.(Master of Computer Application)
M.Sc.(Bioinformatics) (Self-financed, Evening)
PG Diploma in Computer Applications
M.Phil/Ph.D.(Computer Science)
Admission 2020-21
Students Profile
Our Recruiters
Home
Faculty
Placement Brochure
MCA Syllabus
Latest Notice/Circulars/Orders & Events
View all
Vice-Chancellor's message to students (19.03.2020)
Online Admissions for the Session 2020-21
JPostponement of Seminars' etc. till 31.3.2020 In view COVID-19 (13.3.2020)
ORDER reg. arrangemnets made by JMI in view of Novel COVID-19 outbreak (23.3.2020 / 20.3.2020)
University Reports
View all
NAAC Reports
Financial Reports
Annual Reports
UGC/Statistical Data Fact Sheet
Other Reports


2/ It's no secret that we have purposefully kept Litecoin's code very close to Bitcoin's code. Since we are mostly just merging in Bitcoin changes, we only need a lead Litecoin Core developer doing the merges and the rest of us help with code reviews, testing, and gitian b...


Projects
Spotify Playlist Generator
Automatic Spotify playlist generator using the Python Spotify API to prevent me from procrastinating and making playlists. Following this tutorial
Photo from Unsplash
Tic Tac Toe
Tic Tac Toe game built using ReactJs. Choose your desired board size if you don't like 3x3 and a choose your own symbol if you don't like X and O.
Photo from Unsplash


--- layout: page title: About permalink: /about/ navigation_weight: 5 ---
Str8line Tattoo & Body Piercings opened in 2008 and has been providing the Cape Coral, North Fort Myers, and Fort Myers area with exceptional tattoos and body piercings ever since. Our shop is bright and clean. We maintain hospital grade sterility to make sure that you have the best possible experience while getting your tattoo or body piercing. Our staff is professional and courteous and ready to answer your questions or perform your service. We boast a safe and comfortable environment, and even allow children in the shop (not in the booth) as we are a family-oriented business. Below you can read about our staff and their backgrounds.
I was born in Las Vegas, Nevada and went to school in Akron, Ohio. I apprenticed under the tattoo artist, Matt Lettau, in Akron, Ohio. I specialize in custom black and grey, but am well rounded in all other forms of tattooing. During my apprenticeship, Matt always stressed how important straight lines were to the structure of your tattoo. Not long after my apprenticeship I opened Art-N-Soul Tattoo & Body Piercing in Akron, Ohio. My stepson PJ and I decided to move to Florida not long after my father's death in 2007. In 2008 I opened Str8Line Tattoo & Body Piercings here in Fort Myers.
I go by PJ and have lived in Florida for about 9 years. Str8line Tattoo & Body Piercings has been open and operating since. I have always had an interest for drawing, but it wasn't until I was 16 when I developed the attraction to be a professional tattoo artist. Once David saw my interest in the profession, he offered me an apprenticeship. My life has never been the same. My apprenticeship lasted about a year an half ending in 2005 and I am very thankful to have had such a great teacher. Today I specialize in Color and New Skool, but am comfortable in all forms of tattoo art.
I was born and raised in Fort Myers, Florida. I am a fulltime Body Piercer at Str8line Tattoos & Body Piercings. I apprenticed under David Smallwood, the owner. I am knowledgeable about a large variety of piercings and you can be confident in my ability to make your piercing experience the best possible.


Choose a ".CSV" File
Upload
Refresh Data
IDME
Product Name
Keyword
Source
Rank
Page URL
Product Category
Date


Installation On MacOS X¶
If you are using MacOS X, mod_wsgi can be compiled from source code against the standard versions of Python and Apache httpd server supplied with the operating system. To do this though you will first need to have installed the Xcode command line tools.
The Xcode command line tools package provides a C compiler, along with header files and support tools for the Apache httpd server. If you have already set up your system so as to be able to install additional Python packages which include C extensions, you likely will already have the Xcode command line tools.
Install Xcode command line tools¶
To install the Xcode command line tools you should run the command:
xcode-select --install
If this gives you back the error message:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
then the tools have already been installed. As noted by the warning message, do make sure you have run a system software update to ensure that you have the latest versions of these tools.
If you do not already have the Xcode command line tools installed, running
that xcode-select
command should result in you being prompted to
install them. This may ask you to provide the details of an administrator
account along with the password for that account.
Note that it is not necessary to install the whole of the Xcode
developer application from the MacOS X App Store, only the command line
tools using xcode-select
. If you have installed the Xcode developer
application, still ensure that the command line tools are installed and
ensure you have run the system software update.
Configuring and building mod_wsgi¶
If you are using the Python and Apache httpd server packages provided with the operating system, all you need to do to configure the mod_wsgi source code before building it is to run in the mod_wsgi source code directory:
./configure
This should yield output similar to:
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for prctl... no
checking Apache version... 2.4.18
checking for python... /usr/bin/python
configure: creating ./config.status
config.status: creating Makefile
The configure
script should show that it has detected apxs
as being
located at /usr/sbin/apxs
and python
as being at /usr/bin/python
.
If you get different values for apxs
and python
then it means
that you likely have a separate installation of Python or the Apache
httpd server installed on your system. If this is the case, to ensure that
you use the versions of Python and Apache httpd server provided with the
operating system instead use the command:
./configure --with-python=/usr/bin/python --with-apxs=/usr/sbin/apxs
Once you have configured the source code by running configure
, you
can build mod_wsgi using the command:
make
This will compile the mod_wsgi source code and produce a single
mod_wsgi.so
file which then needs to be installed into a common
location so that the Apache httpd server can use it.
Installing the mod_wsgi module¶
What you need to do to install the mod_wsgi module depends on which version of MacOS X you are using.
For the Apache httpd server provided by the operating system, the directory
/usr/libexec/apache2
is used to store the compiled modules. Prior to
MacOS X El Capitan (10.11) this directory was writable and the mod_wsgi
module could be installed here along with all the default modules. With the
introduction of the System Integrity Protection (SIP) feature in MacOS X
El Capitan this directory is not writable, not even to the root user.
Because of this, if you are using a version of MacOS X prior to MacOS X El Capitan (10.11) you can use the command:
sudo make install
to install the mod_wsgi module. As sudo
is being run, you will be
prompted for your password. The module will be installed into the
directory /usr/libexec/apache2
. Within the Apache httpd server
configuration file you can then use the standard LoadModule
line
of:
LoadModule wsgi_module libexec/apache2/mod_wsgi.so
If however you are using MacOS X El Capitan (10.11) or later, the mod_wsgi
module will need to be installed into a different location. If you don’t
and try to run just sudo make install
, it will fail with the output:
./apxs -i -S LIBEXECDIR=/usr/libexec/apache2 -n 'mod_wsgi' src/server/mod_wsgi.la
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='./libtool' src/server/mod_wsgi.la /usr/libexec/apache2
./libtool --mode=install install src/server/mod_wsgi.la /usr/libexec/apache2/
libtool: install: install src/server/.libs/mod_wsgi.so /usr/libexec/apache2/mod_wsgi.so
install: /usr/libexec/apache2/mod_wsgi.so: Operation not permitted
apxs:Error: Command failed with rc=4653056
.
make: *** [install] Error 1
The directory you use to install the mod_wsgi module is up to you, but
one suggested option is that you use the directory
/usr/local/httpd/modules
. Just ensure that this isn’t already used
by a separate installation of the Apache httpd server.
To install the mod_wsgi module into this directory use the command:
sudo make install LIBEXECDIR=/usr/local/httpd/modules
The output from the command will be similar to:
mkdir -p /usr/local/httpd/modules
./apxs -i -S LIBEXECDIR=/usr/local/httpd/modules -n 'mod_wsgi' src/server/mod_wsgi.la
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='./libtool' src/server/mod_wsgi.la /usr/local/httpd/modules
./libtool --mode=install install src/server/mod_wsgi.la /usr/local/httpd/modules/
libtool: install: install src/server/.libs/mod_wsgi.so /usr/local/httpd/modules/mod_wsgi.so
libtool: install: install src/server/.libs/mod_wsgi.lai /usr/local/httpd/modules/mod_wsgi.la
libtool: install: install src/server/.libs/mod_wsgi.a /usr/local/httpd/modules/mod_wsgi.a
libtool: install: chmod 644 /usr/local/httpd/modules/mod_wsgi.a
libtool: install: ranlib /usr/local/httpd/modules/mod_wsgi.a
libtool: install: warning: remember to run `libtool --finish /usr/libexec/apache2'
chmod 755 /usr/local/httpd/modules/mod_wsgi.so
The warning about needing to run libtool --finish
can be ignored as it
is not required for everything to work.
With the mod_wsgi module installed in this location, the LoadModule
line
in the Apache httpd configuration file should be:
LoadModule wsgi_module /usr/local/httpd/modules/mod_wsgi.so
Normal steps to then configure the Apache httpd server and mod_wsgi for your specific WSGI application would then be followed.


The FreeRADIUS Project - Commit Access
Commit access is available through SSH, to known individuals. The instructions below on git access apply only for people with commit access to the main git tree.
Note that the following is a different URI than is used for anonymous access:
$ git clone https://github.com/FreeRADIUS/freeradius-server.git radiusd
Where radiusd is the local directory which will contain the source code. The radiusd name can optionally be omitted. If it is omitted, then the clone will go into a directory called freeradius-server.
Please read the howto page for the suggested git work flow.
Branches, tags, etc.
Please be careful with branches, tags, etc. Pushing changes back to the central repository means that everyone else can see them, too. Odds are that you don't want others to see local development branches.


'Lifeless' baby opens eyes just before he's about to be taken off life support
Oscar Bedford was born blue and unresponsive at Leicester Royal Infirmary - just as his parents were preparing to say their goodbyes the newborn's health took a remarkable turn for the better
by Tom MackA baby born lifeless and blue suddenly woke up just before he was due to be taken off life-support.
Oscar Bedford entered this world in a difficult state.
Despite doctors in the maternity ward making every effort, he showed no signs of coming to after arriving into the world unconscious, Leicester Mercury reported.
After a spell in an incubator, Oscar was handed to his parents Greg and Chelsea who took him to a special room at Leicester Royal Infirmary for bereaved parents to say their goodbyes.
“They said that after taking him off the incubator he would leave for minutes or maybe just seconds," the 26-year-old mum said.
Fearing that she would never get to meet her grandson, Chelsea called her mum Sally-Ann on Facetime and pointed the camera at Oscar while he lay on her chest.
Midway through the call something unexpected happened.
“She was in the middle of the Highcross Shopping Centre when the call got through to her and as we were talking she saw Oscar open his eyes and she just screamed," she said.
“His eyes were open for the first time and it was so surreal - it felt like a dream.
“I sat on the bed and shook my head like people do in films. It was amazing - the best feeling in the world - but I had to pinch myself.”
At the doctors' suggestion the new mum gave Oscar some of her own milk, which helped to perk him up for a trip to Rainbows hospice in Loughborough.
Despite the drastic turnaround in the baby's health, Chelsea was warned not to get her hopes up too much.
She said: “He was on an end-of-life plan with orders not to resuscitate him - but after three days he was taken off the plan.”
Since then Oscar has been able to go back to his parents' home in Leicester.
While he isn't free from health difficulties, he has been able to laugh and smile and interact with his parents.
“He’s 18 months old now and he’s like a baby aged under three months but he smiles and he laughs and he loves lights, despite being partially blind,” Chelsea said.
“He loves his trips to Rainbows – he enjoys hearing new voices and listening to music.
“He really likes being held and he babbles a lot.”
Oscar has a life-limiting form of epilepsy and it is unclear how long he will survive.
Chelsea said: “He was in intensive care a month ago and we thought we were going to lose him.
“I don’t know how long I’m going to have with him but while he’s here I feel he should have everything – especially after all he’s been through.”
As the mum and dad try to raise money for physiotherapy for Oscar, they are also preparing to welcome a little girl into the world.
Chelsea, who worked as a care assistant before Oscar was born, said: “He’s going to really enjoy having a little sister.
“He’s a bit of a sadist and always laughs at the sound of other babies crying!
“I’m dreading it, having to look after both of them, but he is going to love it.”


--- title: "Websites | Forest Medicine" layout: "default" ---
https://www.youtube.com/watch?v=bmmnEJ4rtCI TEDx talk ‘Making Spaces of Awe and Restoration’ by Florence Williams
https://www.nationalgeographic.com/magazine/2016/01/call-to-wild/ This is Your Brain on Nature, National Geographic article and video
https://www.youtube.com/watch?v=y-wHq6yY2CI ‘How Forests Heal People’ by Nitin Das/Healing Forest.org
https://qz.com/1208959/japanese-forest-medicine-is-the-art-of-using-nature-to-heal-yourself-wherever-you-are/ Introduction to Shinrin-yoku
Click Here for a List of Medicinal Definitions and Terminology
This website does not provide medical advice. This site is for information purposes only. Any medical information on this site is not intended to be a substitute for professional medical advice, diagnosis, or treatment. Always seek the advice of your physician or other qualified health provider with any questions you may have regarding a medical condition.


optparse.OptionParser:
Class attributes:
standard_option_list : [Option]
list of standard options that will be accepted by all instances
of this parser class (intended to be overridden by subclasses).
ansible.playbook.play.Play:
A play is a language feature that represents a list of roles and/or
task/handler blocks to execute on a given set of hosts.
ansible.playbook.play_context.PlayContext:
This class is used to consolidate the connection information for
hosts in a play and child tasks, where the task may override some
connection/authentication information.
ansible.errors.AnsibleError:
This is the base class for all errors raised from Ansible code,
and can be instantiated with two optional parameters beyond the
error message to control whether detailed information is displayed
when the error occurred while parsing a data file of some kind.
ansible.playbook.play.Play:
A play is a language feature that represents a list of roles and/or
task/handler blocks to execute on a given set of hosts.
ansible.plugins.callback.syslog_json.CallbackModule:
logs ansible-playbook and ansible runs to a syslog server in json format
make sure you have in ansible.cfg:
callback_plugins = <path_to_callback_plugins_folder>
and put the plugin in <path_to_callback_plugins_folder>
ansible.playbook.conditional.Conditional:
This is a mix-in class, to be used with Base to allow the object to
be run conditionally when a condition is met or skipped.
ansible.parsing.dataloader.DataLoader:
The DataLoader class is used to load and parse YAML or JSON content,
either from a given file name or from a string that was previously
read in through other means.
ansible.module_utils.facts.SunOSHardware:
In addition to the generic memory and cpu facts, this also sets
swap_reserved_mb and swap_allocated_mb that is available from *swap
-s*.
ansible.inventory.ini.InventoryParser:
Takes an INI-format inventory file and builds a list of groups and
subgroups with their associated hosts and variable settings.
ansible.inventory.yaml.InventoryParser:
Takes an INI-format inventory file and builds a list of groups and
subgroups with their associated hosts and variable settings.
ansible.executor.process.worker.WorkerProcess:
The worker thread class, which uses TaskExecutor to run tasks read
from a job queue and pushes results into a results queue for
reading later.
ansible.plugins.strategy.StrategyBase:
This is the base class for strategy plugins, which contains some
common code useful to all strategies like running handlers, cleanup
actions, etc.
ansible.playbook.play.Play:
A play is a language feature that represents a list of roles and/or
task/handler blocks to execute on a given set of hosts.
ansible.executor.task_executor.TaskExecutor:
This is the main worker class for the executor pipeline, which
handles loading an action plugin to actually dispatch the task to a
given host.
ansible.executor.task_queue_manager.TaskQueueManager:
This class handles the multiprocessing requirements of Ansible by
creating a pool of worker forks, a result handler fork, and a
manager object with shared datastructures/queues for coordinating
work between all processes.
ansible.executor.task_result.TaskResult:
This class is responsible for interpretting the resulting data from
an executed task, and provides helper methods for determining the
result of a given task.
ansible.template.Templar:
The main class for templating, with the main entry-point of
template().
jinja2.environment.Template:
The central template object.
dict:
dict() -> new empty dictionary
dict(mapping) -> new dictionary initialized from a mapping object's
(key, value) pairs
dict(iterable) -> new dictionary initialized as if via:
d = {}
for k, v in iterable:
d[k] = v
dict(**kwargs) -> new dictionary initialized with the name=value pairs
in the keyword argument list.


Each week of my coding bootcamp I filmed, edited, and uploaded a video describing the material covered in the week and my progress and struggles. These videos are a joy to film and edit. Click the "watch" link below each summary to view the video on youtube or click the playlist to the right to view my progress.
The first week of CodeCrew coding bootcamp was an introduction to coding. We covered a range of topics including, using the terminal, github, a basic Python overview, intellij and a basic JavaScript introduction. This week was full of new and exciting information about coding and the specifics of CodeCrew's program. Click to link to view the fill video describing my impression of the first week!
The second week of coding bootcamp provided a more in-depth look into JavaScript. We learned the basics of arrays,classes and objects,switch case, and scope. We also began a Python introduction. Two languages in one week! Click the link to view the full video describing my impression of the second week.
By the third week I had finally settled into the structure of the class and found an effective study method.This week we learned Python basics. We covered loops,string formatting,data types, and functions. Python and JavaScript built on one another nicely and this week went smoothly. Click the link the view the full video describing my impression of the third week.
The fourth week was a relatively simple introduction to HTML and CSS. We began the week with a brief review of Python and quickly moved into creating simple webpages. This was one of my favorite weeks so far. Click the link to view the full video describing my impressions of the fourth week along with a few example of the simple webpages I designed.
Week five brought most of the skills we have been learning so far together. We linked JavaScript files to our HTML files to make our webpages dynamic. We also learned JQuery this week. These introductions made our webpages a little more complex. Click the link to view the full video describing my impressions of the fifth week!
This was our first big project week. On Monday I completed two smaller simple game projects using HTML CSS and JQuery. Tuesday through Thursday was dedicated to creating a portfolio website from scratch. Check out the full video describing my struggles and successes of the week by clicking on the link below
Week seven started out with a presentation of the front in project that I spoke about last week. It was amazing to see my fellow students' work and I really enjoyed being able to present my hard work. After presentations we moved into backend! Tuesday through thursday was committed to learning to basics of Django. Check out the full video describing my week by clicking on the link!
Week eight was a deep dive into Django. We learned template inheritance, model based forms, basic CRUD, and form validation. We also completed our first django mini-project this week working with the knowledge from Monday-Thursday of this week and all of last week along with some simple front-end design.We took a sample JavaScrip test as well to brush up on the language after two weeks on Pyton and to prepare us for the JavaScript certification. Click on the link to view a pdf of the full description of the week!
Week nine we moved from focusing fully on back-end to a more full-stack approach. We continued to work with template inheritance and model based form accessible from out html files. We had out first group project this week creating a simple full stack webpage that allowed users to login, create users and create/read/update/delete items. This week does not have a video.
 On monday we did a mini project creating a full stack site similar to Pintrest. Users were able to login in, view all recipes, filter recipes and create recipes. This project was a test of our knowledge of model based form and created complex functions in our views. We also completed a more complex full stack project tuesday-thursday. Click the link for a pdf of the full description of the projects!
Week eleven is my first official week as a CodeCrew Code School Student. I passed the invitation period and I can now confidently continue on my journey to being a full stack dev! This week we started with presentations of our full stack website from last week. We also moved into a new full stack system: MERN. Click to the link for a video of the full description of my week.
This week we wrapped up our introduction to the backend components of MERN. We also started React on Friday! We also had a guest speaker,Ted Patterson, on Wednesday to talk about UX/UI design. And finally I started some updates to this portfolio using a new propgram. Click to link for a fun video of the full description of my week!
This was a React heavy week after being introduced to the JavaScript library on Friday of last week. We built several small projects to gte comfortable with using components to their full potential using state and properties. On Friday we began to combine the full MERN stack by bringing together out two weeks of backend with our week of frontend. Click the link to download my full description of the week!
This week was focused on the complexities of react forms. We learned the importance of state driven components and how to integrate the front and backend seamlessly. We also touched on postmon to test server side post requests. We also worked on creating an impressive and compelling resume. Click the link to view the full video description of my week!
This week was a crash course in user authentication and cookies in MERN. This was the hardest week by far.but we were able to utilize the front in forms with backend strategies to verify users and save their login information. We also had the opportunity to mix and mingle with professionals in the memphis tech community. Click the link to view the full video description of my week!
This was a project week. I completed my first full stack MERN project which ran from thursday or last week to thursday or this week. The project was to create a Mock Twitter. This was a very difficult project for our skill level but the end product was very rewarding. You van view the project here and click the link to watch the full video description of my week!
This week we learned about SQL! Monday through Wednesday was focused on understanding how to query using a great site and eventually using postgres to try out more complicated queries with more complicated data sets. We also started reviewing JavaScript to prepare for the JavaScript certification on friday of week 17. Click the link to get the full breakdown of my week.
This week was focused on passing the JavaScript certification test. We had three and a half days dedicated to brushing up our JS knowledge and filling in any concepts that we did not explicitly go over in class. We also had half a day dedicated to mock interviews. It was great to get the chance to practice a technical and behavioral interview. Click the link to get the full breakdown on my week.
This week was focused on learning the basics of Java. We covered syntax, strongly typed variable declaration, classes and packages, and Java Database Connectivity. I also deployed my Django project this week! Click the link to view the full video breaking down my week!
This week's reflection is fully dedicated to my MERN app update and resume update. I typed up a review of these changes and linked the PDF to the link below.
This week is week one of two project weeks! We are building a full stack web application using the Django or MERN framework/stack. I chose to build a Django web app that allows users to submit reviews os destinations. The app utilizes the google maps API is is primarily targeted at single young women looking to travel safely and affordably. Check out the full description of my project by clicking on the link.
This week is the final project week! My website, Safe Travels, has been finalized and the details page can be accessed here! Friday of this week I gave a presentation about the inspiration, the coding process, and the not so final product. Check out the full video description by clicking the link below.
I have completed CodeCrew Code School 6 month coding bootcamp! In this week's video I talk briefly about my graduation, my future plans, and my general impression of the program. Click link below to view my final video! It's been a long, fun, and challenging journey. I'm thrilled that I was offered this opportunity and that I was able to thrive with the help of supportive and knowledge instructors.


Holds information about section loop and methods to control it.
- Source:
- xtt.js, line 5577
Members
-
<static, readonly> enabled :Number
-
Says if section loop is enabled (positive integer) or disabled (NaN).
- Default Value:
- NaN
- Source:
- xtt.js, line 5590
Methods
-
<static> disable
-
Stop looping defined section of video.
- Source:
- xtt.js, line 5610
-
<static> enable
-
Start looping section of video.
- Source:
- xtt.js, line 5624
-
<static> endTime
-
Change end time for section loop.
Parameters:
Name Type Description action
String This argument is enumerated and can be: mark, increment or decrement. First option mean use current time as end time. Second two options mean increment or decrement current value for one, respectively. - Source:
- xtt.js, line 5659
-
<static> startTime
-
Change start time for section loop.
Parameters:
Name Type Description action
String This argument is enumerated and can be: mark, increment or decrement. First option mean use current time as start time. Second two options mean increment or decrement current value for one, respectively. - Source:
- xtt.js, line 5687
-
<static> toggle
-
Start or stop looping section of video depending on current state.
- Source:
- xtt.js, line 5709


{% extends 'htc-layout.html' %} {% block pageTitle %} Evidence - Tell us about your product or service {% endblock %} {% block beforeContent %} {{ breadcrumb({ items: [ { href: "/htc", text: "Home" } ], href: "/htc/tell-us/start", text: "Tell us about your product or service" }) }} {% endblock %} {% block content %}


Meal Prepping
Simply put, meal prep means prepping for meals. And while single-serve meals are the most common approach to meal prep, there are other types to choose from depending on your schedule,
tastes, and dietary needs.
Types of meal prep include:
- Full make-ahead meals: You cook an entire meal and store it in your fridge or freezer.
- Batch cooking or freezing: Make multiple meals, then portion and store them. This approach is useful for recipes you can easily cook in large amounts
(like big pots of soup, rice, or mashed sweet potatoes).
- Meals for one: Prepare food and portion it in single-serving containers. (Usually enough to last a few days.)
- Ingredient prep: For people who like to cook and serve food all at once, just prep parts of recipes. Chop veggies, mix spices, or marinade meat
in advance to save time when you’re ready to cook.
 There are things you can do to learn self-discipline and gain the willpower to live a happier life.
If you are looking to take control of your habits and choices, here are the FIVE most powerful things you can do to master self-discipline:
- Know your weaknesses: We all have weaknesses. Whether they’re snacks like potato chips or chocolate chip cookies, or technology like Facebook or the latest addictive game app,
they have similar effects on us.Acknowledge your shortcomings, whatever they may be. Too often people either try to pretend their vulnerabilities don’t exist or cover up any pitfalls in their lives.
Own up to your flaws. You can’t overcome them until you do.
- Remove temptations: If you want to eat healthier, toss the junk food in the trash.The fewer distractions you have, the more focused you will be on accomplishing your goals. Set yourself up for
success by ditching bad influences.
- Set clear goals and have an execution plan: A clear plan outlines each step you must take in order to reach your goals. Figure out who you are and what you are about. Create a mantra to keep
yourself focused. Successful people use this technique to stay on track and establish a clear finish line.
- Create new habits by keeping it simple: Acquiring self-discipline and working to instill a new habit can feel daunting at first, especially if you focus on the entire task at hand. To avoid
feeling intimidated, keep it simple. Break your goal into small, doable steps. Instead of trying to change everything at once, focus on doing one thing consistently and master self-discipline
with that goal in mind. If you’re trying to get in shape, start by working out 10 or 15 minutes a day. If you’re trying to achieve better sleep habits, start by going to bed 15 minutes earlier each
night. If you want to eat healthier, start by prepping a bag lunch the night before to take with you in the morning. Take baby steps. Eventually, when you’re ready, you can add more
goals to your list.
- Give yourself a backup plan: Before you go, tell yourself that instead of diving into a plate of cheese and crackers, you will sip a glass of water and focus on mingling. Going in with
a plan will help give you the mindset and the self-control necessary for the situation. You will also save energy by not having to make a sudden decision based on your emotional state.