NLP_EDA
Credit
- https://www.kaggle.com/itratrahman/nlp-tutorial-using-python
# OP
import pandas as pd
import numpy as np
import time
from sklearn.preprocessing import LabelEncoder
from sklearn import preprocessing
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.model_selection import train_test_split, KFold
from nltk.corpus import stopwords
from nltk.stem.snowball import SnowballStemmer
%matplotlib inline
%pylab inline
import seaborn as sns
from matplotlib import pyplot
import matplotlib.pyplot as plt
# ML
from sklearn.naive_bayes import GaussianNB, BernoulliNB, MultinomialNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, log_loss
from sklearn.model_selection import GridSearchCV
Populating the interactive namespace from numpy and matplotlib
# set plot style
matplotlib.style.use('fivethirtyeight')
matplotlib.rcParams['font.size'] = 12
matplotlib.rcParams['figure.figsize'] = (10,10)
0) Load data
# help fun
def get_sentence_length(x):
return len(x)
def remove_punctuation(text):
'''a function for removing punctuation'''
import string
# replacing the punctuations with no space,
# which in effect deletes the punctuation marks
translator = str.maketrans('', '', string.punctuation)
# return the text stripped of punctuation marks
return text.translate(translator)
# stop words : show stop words in English
def stopwords_(text):
'''a function for removing the stopword'''
# removing the stop words and lowercasing the selected words
sw = stopwords.words('english')
text = [word.lower() for word in text.split() if word.lower() not in sw]
# joining the list of words with space separator
return " ".join(text)
# create an object of stemming function
stemmer = SnowballStemmer("english")
def stemming(text):
'''a function which stems each word in the given text'''
text = [stemmer.stem(word) for word in text.split()]
return " ".join(text)
# LOAD THE DATA
df = pd.read_csv('spam.csv', delimiter=',',encoding='latin-1')
df = df.loc[:,['v1','v2']]
# get feature
df['length'] = df['v2'].apply(get_sentence_length)
# remove punctuation
df['v2_del_punct'] = df['v2'].apply(remove_punctuation)
# remove stopwords
df['v2_del_stopword'] = df['v2'].apply(stopwords_)
# get stem
df['v2_stemming'] = df['v2'].apply(stemming)
df.head()
| v1 | v2 | length | v2_del_punct | v2_del_stopword | v2_stemming | |
|---|---|---|---|---|---|---|
| 0 | ham | Go until jurong point, crazy.. Available only ... | 111 | Go until jurong point crazy Available only in ... | go jurong point, crazy.. available bugis n gre... | go until jurong point, crazy.. avail onli in b... |
| 1 | ham | Ok lar... Joking wif u oni... | 29 | Ok lar Joking wif u oni | ok lar... joking wif u oni... | ok lar... joke wif u oni... |
| 2 | spam | Free entry in 2 a wkly comp to win FA Cup fina... | 155 | Free entry in 2 a wkly comp to win FA Cup fina... | free entry 2 wkly comp win fa cup final tkts 2... | free entri in 2 a wkli comp to win fa cup fina... |
| 3 | ham | U dun say so early hor... U c already then say... | 49 | U dun say so early hor U c already then say | u dun say early hor... u c already say... | u dun say so earli hor... u c alreadi then say... |
| 4 | ham | Nah I don't think he goes to usf, he lives aro... | 61 | Nah I dont think he goes to usf he lives aroun... | nah think goes usf, lives around though | nah i don't think he goe to usf, he live aroun... |
1) Data Overview
# sentence length hist
df.length.hist(bins=40)
plt.xlim(0,400)
plt.title('Sentence Length Histagram')
Text(0.5,1,'Sentence Length Histagram')
# sentence length hist with spam V. ham
df[df.v1 == 'spam' ].length.hist(bins=40,alpha = 0.4)
df[df.v1 == 'ham' ].length.hist(bins=40,alpha = 0.4)
plt.xlim(0,400)
plt.title('Sentence Length Histagram : spam V. ham')
plt.legend(['spam','ham'])
plt.show()
X = df.v2
Y = df.v1
le = LabelEncoder()
Y = le.fit_transform(Y)
Y.shape
(5572,)
pd.DataFrame(Y)[0].value_counts()
0 4825
1 747
Name: 0, dtype: int64
X.iloc[0]
'Go until jurong point, crazy.. Available only in bugis n great world la e buffet... Cine there got amore wat...'
X.iloc[1]
'Ok lar... Joking wif u oni...'
1) NLP feature extract
stopwords
<WordListCorpusReader in '/Users/yennanliu/nltk_data/corpora/stopwords'>
#print("Number of stopwords: ", len(sw))
df.head()
| v1 | v2 | length | v2_del_punct | v2_del_stopword | v2_stemming | |
|---|---|---|---|---|---|---|
| 0 | ham | Go until jurong point, crazy.. Available only ... | 111 | Go until jurong point crazy Available only in ... | go jurong point, crazy.. available bugis n gre... | go until jurong point, crazy.. avail onli in b... |
| 1 | ham | Ok lar... Joking wif u oni... | 29 | Ok lar Joking wif u oni | ok lar... joking wif u oni... | ok lar... joke wif u oni... |
| 2 | spam | Free entry in 2 a wkly comp to win FA Cup fina... | 155 | Free entry in 2 a wkly comp to win FA Cup fina... | free entry 2 wkly comp win fa cup final tkts 2... | free entri in 2 a wkli comp to win fa cup fina... |
| 3 | ham | U dun say so early hor... U c already then say... | 49 | U dun say so early hor U c already then say | u dun say early hor... u c already say... | u dun say so earli hor... u c alreadi then say... |
| 4 | ham | Nah I don't think he goes to usf, he lives aro... | 61 | Nah I dont think he goes to usf he lives aroun... | nah think goes usf, lives around though | nah i don't think he goe to usf, he live aroun... |
# Collect vocabulary count
# create a count vectorizer object
count_vectorizer = CountVectorizer()
# fit the count vectorizer using the text data
count_vectorizer.fit(df['v2_del_stopword'])
# collect the vocabulary items used in the vectorizer
dictionary = count_vectorizer.vocabulary_.items()
# lists to store the vocab and counts
vocab = []
count = []
# iterate through each vocab and count append the value to designated lists
for key, value in dictionary:
vocab.append(key)
count.append(value)
# store the count in panadas dataframe with vocab as index
vocab_bef_stem = pd.Series(count, index=vocab)
# sort the dataframe
vocab_bef_stem = vocab_bef_stem.sort_values(ascending=False)
# plot top vacab.
top_vacab = vocab_bef_stem[20:40]
top_vacab.plot(kind = 'barh', figsize=(5,10), xlim= (0, 10000))
<matplotlib.axes._subplots.AxesSubplot at 0x114c6d320>
# stemming ops
# run stemming operation
print ('stemming words : ')
print ('-'*10)
print ('')
print (df['v2_stemming'].head(5))
print ('-'*10)
print ('original words : ')
df['v2'].head(5)
stemming words :
----------
0 go until jurong point, crazy.. avail onli in b...
1 ok lar... joke wif u oni...
2 free entri in 2 a wkli comp to win fa cup fina...
3 u dun say so earli hor... u c alreadi then say...
4 nah i don't think he goe to usf, he live aroun...
Name: v2_stemming, dtype: object
----------
original words :
0 Go until jurong point, crazy.. Available only ...
1 Ok lar... Joking wif u oni...
2 Free entry in 2 a wkly comp to win FA Cup fina...
3 U dun say so early hor... U c already then say...
4 Nah I don't think he goes to usf, he lives aro...
Name: v2, dtype: object
# TF-IDF Extraction : I
"""
TF(t) = (Number of times term t appears in a document) / (Total number of terms in the document).
IDF(t) = log_e(Total number of documents / Number of documents with term t in it).
"""
# create the object of tfid vectorizer
EAP_tfid_vectorizer = TfidfVectorizer("english")
# fit the vectorizer using the text data
EAP_tfid_vectorizer.fit(df['v2_del_stopword'])
# collect the vocabulary items used in the vectorizer
EAP_dictionary = EAP_tfid_vectorizer.vocabulary_.items()
# lists to store the vocab and counts
vocab = []
count = []
# iterate through each vocab and count append the value to designated lists
for key, value in EAP_dictionary:
vocab.append(key)
count.append(value)
# store the count in panadas dataframe with vocab as index
EAP_vocab = pd.Series(count, index=vocab)
# sort the dataframe
EAP_vocab = EAP_vocab.sort_values(ascending=False)
print (EAP_vocab.head(5))
sns.distplot(EAP_vocab)
ûówell 8649
ûò 8648
ûïharry 8647
ûï 8646
ûªve 8645
dtype: int64
/Users/yennanliu/anaconda3/envs/ds_dash/lib/python3.5/site-packages/matplotlib/axes/_axes.py:6462: UserWarning: The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.
warnings.warn("The 'normed' kwarg is deprecated, and has been "
<matplotlib.axes._subplots.AxesSubplot at 0x10b407f98>
# TF-IDF Extraction : II
from sklearn.feature_extraction.text import TfidfVectorizer
# create the object of tfid vectorizer
tfid_vectorizer = TfidfVectorizer("english")
# fit the vectorizer using the text data
tfid_vectorizer.fit(df['v2_stemming'])
# collect the vocabulary items used in the vectorizer
dictionary = tfid_vectorizer.vocabulary_.items()
# extract the tfid representation matrix of the text data
#tfid_vectorizer = TfidfVectorizer("english")
tfid_matrix = tfid_vectorizer.transform(df['v2'])
# collect the tfid matrix in numpy array
array = tfid_matrix.todense()
array
matrix([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.]])
# store the tf-idf array into pandas dataframe
df_vectorize = pd.DataFrame(array)
df_vectorize.head(10)
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 8172 | 8173 | 8174 | 8175 | 8176 | 8177 | 8178 | 8179 | 8180 | 8181 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 1 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 2 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 3 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 4 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 6 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 7 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 8 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 9 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
10 rows × 8182 columns
shape(df_vectorize)
(5572, 8182)
shape(array)
(5572, 8182)
shape(df)
(5572, 6)
df.head(1)
| v1 | v2 | length | v2_del_punct | v2_del_stopword | v2_stemming | |
|---|---|---|---|---|---|---|
| 0 | ham | Go until jurong point, crazy.. Available only ... | 111 | Go until jurong point crazy Available only in ... | go jurong point, crazy.. available bugis n gre... | go until jurong point, crazy.. avail onli in b... |
2) Model
2-1) MultinomialNB (multinomial Naive Bayes classifier)
df_vectorize['v1'] = df['v1']
features = df_vectorize.columns.tolist()
output = 'v1'
# removing the output and the id from features
features.remove(output)
alpha_list1 = np.linspace(0.006, 0.1, 20)
alpha_list1 = np.around(alpha_list1, decimals=4)
alpha_list1
# parameter grid
parameter_grid = [{"alpha":alpha_list1}]
parameter_grid
[{'alpha': array([ 0.006 , 0.0109, 0.0159, 0.0208, 0.0258, 0.0307, 0.0357,
0.0406, 0.0456, 0.0505, 0.0555, 0.0604, 0.0654, 0.0703,
0.0753, 0.0802, 0.0852, 0.0901, 0.0951, 0.1 ])}]
# TRAIN
# classifier object
classifier1 = MultinomialNB()
# gridsearch object using 4 fold cross validation and neg_log_loss as scoring paramter
gridsearch1 = GridSearchCV(classifier1,parameter_grid, scoring = 'neg_log_loss', cv = 4)
# fit the gridsearch
gridsearch1.fit(df_vectorize[features], df_vectorize[output])
GridSearchCV(cv=4, error_score='raise',
estimator=MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True),
fit_params=None, iid=True, n_jobs=1,
param_grid=[{'alpha': array([ 0.006 , 0.0109, 0.0159, 0.0208, 0.0258, 0.0307, 0.0357,
0.0406, 0.0456, 0.0505, 0.0555, 0.0604, 0.0654, 0.0703,
0.0753, 0.0802, 0.0852, 0.0901, 0.0951, 0.1 ])}],
pre_dispatch='2*n_jobs', refit=True, return_train_score='warn',
scoring='neg_log_loss', verbose=0)
results1 = pd.DataFrame()
# collect alpha list
results1['alpha'] = gridsearch1.cv_results_['param_alpha'].data
# collect test scores
results1['neglogloss'] = gridsearch1.cv_results_['mean_test_score'].data
matplotlib.rcParams['figure.figsize'] = (12.0, 6.0)
plt.plot(results1['alpha'], -results1['neglogloss'])
plt.xlabel('alpha')
plt.ylabel('logloss')
plt.title('Model : MultinomialNB ')
results1.T
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| alpha | 0.006 | 0.0109 | 0.0159 | 0.0208 | 0.0258 | 0.0307 | 0.0357 | 0.0406 | 0.0456 | 0.0505 | 0.0555 | 0.0604 | 0.0654 | 0.0703 | 0.0753 | 0.0802 | 0.0852 | 0.0901 | 0.0951 | 0.1 |
| neglogloss | -0.0542484 | -0.0524873 | -0.0517779 | -0.0514898 | -0.0513987 | -0.0514207 | -0.0515115 | -0.0516433 | -0.0518067 | -0.0519863 | -0.0521835 | -0.0523867 | -0.0526016 | -0.0528178 | -0.0530429 | -0.0532672 | -0.0534991 | -0.0537291 | -0.0539662 | -0.0542007 |
print("Best parameter: ",gridsearch1.best_params_)
print("Best score: ",gridsearch1.best_score_)
Best parameter: {'alpha': 0.0258}
Best score: -0.0513987444724
2-2) Random forest
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score,f1_score
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import train_test_split
from sklearn.model_selection import learning_curve
def learn_curve(X,y,model):
#df_train_2 = df_train_.head(10000)
print ('model : ',model)
# get train, test scores
train_sizes, train_scores, test_scores = learning_curve(
model, X=X, y=y,
cv=10, n_jobs=1,
train_sizes=np.linspace(0.1,1,10))
print ('train_sizes = ', train_sizes)
#print ('train_scores = ', train_scores)
#print ('test_scores = ', test_scores)
# get mean, std
train_mean = np.mean(train_scores,axis = 1 )
train_std = np.std(train_scores,axis = 1 )
test_mean = np.mean(test_scores,axis = 1 )
test_std = np.std(test_scores,axis = 1 )
# plot
plt.plot(train_sizes,
train_mean,
color='blue',
marker='o',
markersize=5,
label="training accuracy")
# plot errors
plt.fill_between(train_sizes,
train_mean + train_std ,
train_mean - train_std ,
alpha = 0.15,
color = 'blue',
label="training accuracy")
plt.plot(train_sizes,
test_mean,
color='green',
linestyle='--' ,
marker='s',
markersize=5,
label="validation accuracy")
plt.fill_between(train_sizes,
test_mean + test_std ,
test_mean - test_std ,
alpha = 0.15,
color = 'green',
label="validation accuracy")
plt.grid()
plt.xlabel('# of train sample')
plt.ylabel('Accuracy')
plt.legend(loc = "lower right")
plt.ylim([0.1,1.2])
plt.grid()
plt.show()
df_vectorize.head(1)
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 8173 | 8174 | 8175 | 8176 | 8177 | 8178 | 8179 | 8180 | 8181 | v1 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ham |
1 rows × 8183 columns
d={'spam':1,'ham':0}
df_vectorize['v1_'] = list(map(lambda x:d[x],df_vectorize.v1))
# mapping non-numerical lebel to numerical ones
features = df_vectorize.columns.tolist()
output = 'v1'
output2 = 'v1_'
# removing the output and the id from features
features.remove(output)
features.remove(output2)
# train - test split
Xtrain, Xtest, ytrain, ytest = train_test_split(df_vectorize[features], df_vectorize[output2], test_size=0.2, random_state=1)
Acc = {}
F1score = {}
confusion_mat={}
predictions = {}
name = 'RF'
RF = RandomForestClassifier(n_estimators =80,class_weight ='balanced')
RF.fit(Xtrain,ytrain)
pred = RF.predict(Xtest)
F1score[name]= f1_score(ytest,pred)
Acc[name] = accuracy_score(ytest,pred)
confusion_mat[name] = confusion_matrix(ytest,pred)
predictions[name]=pred
print(name+': Accuracy=%1.3f, F1=%1.3f'%(Acc[name],F1score[name]))
RF: Accuracy=0.988, F1=0.951
learn_curve(Xtrain,ytrain,RF)
model : RandomForestClassifier(bootstrap=True, class_weight='balanced',
criterion='gini', max_depth=None, max_features='auto',
max_leaf_nodes=None, min_impurity_decrease=0.0,
min_impurity_split=None, min_samples_leaf=1,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_estimators=80, n_jobs=1, oob_score=False, random_state=None,
verbose=0, warm_start=False)
train_sizes = [<PHONE_NUMBER> 1604 2005 2406 2807 3208 3609 4011]


Photography & Videography
Home
Photos
Real Estate
Cars
Photoshop
Videos
Cinematography
More Videos
Contact


--- layout: post index: 11 tags: Grindlheim title: Entrance Plaza & Restaurant excerpt: "With today's long overdue update on Grindlheim we return to the entrance plaza of the theme world and have a closer look at the buildings surrounding it. Especially at the cosy little restaurant called Schmausestube, the final building of the whole Grindlheim project." reddit: "https://www.reddit.com/r/PlanetCoaster/comments/gpx37x/the_next_grindlheim_update_is_long_overdue_here/" shyguys-world: "https://www.shyguysworld.com/index.php/topic,21251.30.html#msg481601" number-of-images: 17 image-descriptions: - A tunnel carved from the solid rocky mountains that surround Grindlheim leads into the theme world. - The entrance plaza is the first area of Grindlheim that guests set foot on when they enter the theme world. - Step through the gate on the right and you find yourself on the circular footpath surrounding Grindlheim. This way leads through the K'aros Roasthouse up to the entrance of Ri'kh located on the other side of the village. - The entrance to K'aros lies in the middle on the opposite site of the plaza. The building with the crane tower houses staff- and guest facilities as well as an ice cream shop. - The left side of the plaza is where the cosy little restaurant Schmausestube is based. - The seating area of the restaurant lies behind this detailed facade. - No town square is complete without a little fountain. I also used it to hide an ugly gap in the path which I was not able to get rid of. - This is the front facade and the main entrance to the restaurant. Guests can walk all around the restaurant using the path to the left. - On the far left corner of the plaza and on the right side of the facade, the circular footpath reconnects to the plaza. This way also leads to Ri'kh. - These facades hide the staff entrance to the restaurant. - Up this path and to the right guests can get very close to the first launch of K'aros. - A second entrance to the restauraunt is located on the backside together with an additional outdoor seating area on the left. - These facades at the boundary of the theme world decorate the path on the back of the restaurant. - Topdown view onto the restaurant and the cosy outdoor seating area. A glass roof panel allows the inside of the restaurant to be lit by real sun light. - We are now inside the restaurant. The curved wooden ceiling structure is the building's dominant feature. The f ood stalls are located on the right. - The seating area provides separated tables and plenty of space for all guests. - And here is the last picture for today. There is not much left for me to show you before I release the park on the workshop. Stay tuned and please stay patient! ---
Welcome back for another update! It's been two long months since the last one, but today I finally found some time for the next one. Last time we followed the first track section of Ri'kh, the family coaster. For today's update we focus mainly on theming and return to the entrance plaza of Grindlheim.
There's only one path leading in and out of Grindlheim. It connects to a plaza, the place where guests first enter into the immersive theme world. As mentioned and partially shown in previous updates, the entrance to the queue line of K'aros is located here, as well as other facilities and a restaurant. I started planning and laying out this area of Grindlheim very early on in the project. Though the facilities and queue buildings of K'aros were among the first ones to be erected, the rest of the plaza was left unfinished till the very end. The restaurant I mentioned before was the last and final build in the whole project.
I did not like the idea of the restaurant being a black box that guests just disappear in. Therefore, to create a realistic restaurant with guests sitting on real tables inside the building, I did not make use of the in-game restaurant system but went for a self-service approach with standard food stalls and a seating area instead. This allowed me to theme the inside of the restaurant as well. The finished restaurant is called "Schmausestube", which loosely translates to "a cosy place to eat".
Please check out the gallery below for detailed views on all the buildings on the entrance plaza of Grindlheim. But before that, please have a look at this bird's eye view of the completed Grindlheim theme world with location markers. Click on it to zoom in!


DOWNLOADS
Querypoint Debugging Prototype
Project maintained by google Hosted on GitHub Pages — Theme by mattgraham
Querypoint debugging reduces developer effort and time in debugging using dynamic (runtime) code analysis technology. For example, you can ask for an object properties ‘last change’. The Querypoint debugger will give you the source code location where the property was last modified and its value there.
Currently this Querypoint Debugger can only debug one demo project. The instructions are here: http://google.github.com/qpp/test/LayoutTests/DocGen/demoSetup.html
The qpp project by itself defines a Querypoint debugger extension for the Chrome devtoolsExtended project. An integrated Chrome extension, including qpp and devtoolsExtended, is available at https://code.google.com/p/querypoint-debugger/.
Traceur
JS to JS trancoding compiler used to add query tracing.
knockout
Model-View-ViewModel library to auto-update HTML when JS object change.
CodeMirror
JS based source code editor
keymaster
Keybinding defintions
parseuri
A handy JS function for parsing URIs
devtoolsExtended
Fork of WebInspector with a few patches to extend it, used to host the qpp extension.
testRunner
Devtools extension to drive qpp feature testing and screenshot documentation.
ChannelPlate
More uniform API to construct and use MessageChannels, used in testRunner.
The concept of Querypoint debugging was invented by Salman Mirghasemi as part of his PhD at EPFL. His thesis is available: http://dx.doi.org/10.5075/epfl-thesis-5533. Contributors to the qpp project include @johnjbarton and @curcio.


Fleur Flowers
Crafts Gallery
Flowers Catalogue
Contact
-50%
h 40cm x w 40cm
Turkish Rose
Size:
9 unt.
15 unt.
21 unt.
32 unt.
Color:
Delivery:
By courier
Pick up
$89
$49
Buy
Related products
Turkish Rose
9 unt.
15 unt.
21 unt.
$49
Rose Flower
9 unt.
15 unt.
21 unt.
$49
Assorted Colors
9 unt.
15 unt.
21 unt.
$49


My boyfriend filled up the tip of a copper crack pipe with the orange jelly DMT substance. Mind you this is the second time that I have smoked DMT, the first time didn't work at all for me.  He sat me down in the corner of the garage on a rocking chair. Held the crack pipe to my mouth and told me to inhale slow, long, and hold for as long as I could. I held it and held it and held it. The world started to melt away. Everything became black, as soon as the full darkness hit color came out of no where. I opened my eyes and was standing next to my boyfriend, watching this girl on the garage floor freak out.  It wasn't until I came fully out of the trip that I realized the girl on the floor was me. Oddly enough the terrifying 4 minute episode left me energized, in a good way.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


CRUD Operations
This article will explain everyting related to inserting objects into a database using this library.
*Lets go over some prerequisites
Employee Table In Database
CREATE TABLE [master].[dbo].[Employee](
[IdentityField] [int] NOT NULL IDENTITY (1,1) PRIMARY KEY,
[FirstName] [varchar](400) NOT NULL,
[LastName] [varchar](400) NOT NULL,
[DOB] DateTime NOT NULL,
[CreatedAt] DateTime NULL DEFAULT GETDATE(),
[FavoriteColor] [varchar](400) NULL
);
Employee Class In .NET Project
public class Employee {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] // Tells the library this column is a identity column
[Key] // Tells the library this column is a primary key
public int IdentityField { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FavoriteColor { get; set; }
public DateTime? CreatedAt { get; set; }
[NotMapped]// Tells the library to ignore this property its not part of the database
public string FullName => FirstName + " " + LastName;
[SqlColumn(MapTo = "DOB")] // Tells the library this property is actually name DOB in the database table
public DateTime DateOfBirth { get; set; }
}
Getting Started With Inserts
Now I will show you how to insert an a employee object into your database
The first thing you will need to do is intialize a new instance of DatabaseAccess
To initialize a new instance of DatabaseAccess you must specify a type of DBConnection your database support.
var dbAccess = new DatabaseAccess<SqlConnection>("ConnectionString");
For this example im going to use the common SqlConnection type as showned above.
If your wondering why this is required. It is because this library supports multiple database
and not every database use the same syntax. So the DBConnection that you use will control how sql is generated.
var employee = new Employee(); // create an new employee
employee.FirstName = "John";
employee.LastName = "Doe";
employee.DateOfBirth = DateTime.Now;
var recordAffected = dbAccess.Execute(employee, ActionType.Insert); // ActionType is a enum of Insert,Update,Delete,Upsert
That was simply and east
Getting Started With Deletes
This section assumes you read the above section. Now that we added an employee we need to remove him because we don't like him here how you would go about doing such a thing
var employees = dbAccess.Get<Employee>(); // returns a list of T which in this cause is a list of Employee
Now our employees object contains one employee in it. Lets delete him
var recordAffected = dbAccess.Execute(employees.First(), ActionType.Delete);
That was simply and east
Getting Started With Upserts
This section assumes you read the above section.
Oops maybe deleting that employee was a mistake lets we add him using an upsert
var recordAffected = dbAccess.Execute(employee, ActionType.Upsert);
That was simply and east
Getting Started With Update
This section assumes you read the above section.
Turns out our test employee John real name isn't John its Patrick so lets update him
employee.FirstName = "Patrick";
var recordAffected = dbAccess.Execute(employee, ActionType.Update);
That was simply and east


Web Dev. Fundamentals
Announcements
Download VS Code & Google Chrome
Project 1
Due Date
View Syllabus


Floor flatness measuring device
To solve the floor flatness problem on construction sites, I have been making device to check the flatness level. This is an ongoing project that converges technologies including LIDAR and SLAM.
My Role
Main developer
- Analyze requirements
- Design device concept
- Design system architecture
- Implement system
Project Detail
In many construction site, floor leveling is hard to handle perfectly. It is caused by problems including wrong concrete pouring and uneven base ground. Especially, this uneven floor makes issues such that floor coating becomes poor looking shapes and special facilities where strict environment is required (e.g. distribution center, precision manufacture) cannot have proper ground state to install equipment.
Many construction companies try to fix this problem by various methods. One of general solutions is to use grinding machine. Running grinding machine, operator needs to have sufficient experience to determine how much grinding should be done in order to make the ground even.
In this process, there are two drawbacks that
- Success of grinding depends on personal skill based on eye measurement
- There is no quantified measurement system on how much an operator levels the ground off
Thus, if there is a way to support flatness measurement task through quantifying atypical image data and visualizing data, work efficiency and reliability can be increased. I made a team with my friend and undertook to solve this problem.
Planning
Starting from this project, the final purpose that we want to achieve is to improve all procedures of floor leveling. Because it is hard to improve all procedures of floor leveling at once, we established three big stages. This project is just on the first stage of bigger plan. Briefly, we approach the goal by below methods
- Establish quantifying atypical data system
- Gather data
- Evaluate tasks
- Improve equipment
1. Measurement and Visualization
First of all, we need to acquire precise spatio map. Only if we obtain clear data, it is possible to advance the rest of procedure based on quantified indicator.
2. Gathering Field Data
If it is possible to provide clear spatio map data, gathering meaningful data from field is feasible. First, we can calculate score of flatness from measuring data via several evaluating standard of floor flatness. Second, we can evaluate results of field workers by analyzing difference of measured map data before task and after task.
Also, we are going to collect additional data including path of grinding machine in field, ground material and workers’ information.
Analyzing these data, we decide what the best result done by worker is and the best way to operate a grinding equipment. Furthermore, through the best method, it is possible to provide driving guidelines of grinding machine for field workers.
3. Improvement of Grinding Machine
From accumulated data, we expect to find improvable point of grinding machine because present machine has a shortage that it is hard to cover areas in detail. This process includes designing new machine and numerous experiments.
Requirements
At the beginning of project, my team investigated requirements from field workers at first. To acquire sufficient information, we interviewed in many ways.
How accurate should a sensor be?
There is no exact numerical criterion. In the present process, since most workers check flatness based on eye measurement, it might vary by people. But, I think that it is necessary for the sensor to be accurate enough to determine whether it would be flat enough to install precision equipment. It might be about 3mm.
☛ Requirements: Sensor should be able to check under 3mm.
How long does it takes to measure flatness?
Currently, we do not devote a lot of flatness measurement time. But as correct ground information map is important, we can put additional time and human resources if flatness measurement is needed extra process to measure and map ground information. We put a request to minimize measurement time as much as possible because there are other processes in the whole procedure.
☛ Requirements: Measurement time should be minimized as much as possible.
How much budget should be devoted to develop a device?
Average budget of procedure is about 0000 and assigned budget on usage of equipment is about 0000. So, we wish the price of measurement device about 0000.
☛ Requirements: Device development cost should be under 0000.
Research
There are many sensors used for obtaining space information. Since most of them have a positive correlation between price and accuracy, we need to find a compromise. As task sites can be both inside and outside, there is a huge possibility that sensors can be affected by variance of illumination condition. Therefore, photogrammetry was excluded in selection and we decided to start from Light Detection And Ranging(LIDAR) sensor because it has a reasonable price and accuracy.
Furthermore, to get spatial map, it is necessary to choose a method to build map by data from sensors. Thus, we study about Simultaneous Localization And Mapping(SLAM).


?ftEW
YO/^
Botanical
GARDEN
NEW
YORK
BOTANICAL
GARDEN
01501277
PLANTS
OF
BAHAMA
ISLANDS
Hydrocotyle
verticillata
Thunb.
Grand
Bahama:
in
wet
soil
of
waste
area
about
G
¤
B
Farm
on
north
side
of
Queen's
Highway,
east
of
Freeport
Airport
roundabout.
Rather
abundant.
April
5,
1980
D.s.CorreU
¤
John
Popenoe
51220
Herbarium
FAIRCHILD
TROPICAL
GARDEN
01501277
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Provides the functionality to interact with a PRU on the Beaglebone Black.
public class PRUDriver
public PRUDriver (PRUEnum pruIDIn)
public void ClearEvent(PRUEventEnum pruEventIn)
public void CloseAllEvents()
public void CloseEvent(PRUEventEnum pruEventIn)
public void Dispose()
public void EnablePRUHostEvent(PRUEventEnum pruEventIn)
NOTE: host interrupts 0 and 1 are left by the UIO subsystem for signalling between the two PRUs because the functionality to support this is hard coded into the PRU INTC system. Host Interrupts 2 to 9 appear in userspace via the uio device files /dev/uio0 to /dev/uio7.
This means that if you trigger PRU systemInterrupt16 you will see it appear on /dev/uio0. Similarly triggering PRU systemInterrupt17 will cause it to appear on /dev/uio1 The UIO file number which receives the event is always the low four bits of the system interrupt. The only reason this works like that is because the standard setup routes sysInt16 through channel2 through host2 and host2 is tied to uio0 by the UIO subsystem.
public void ExecutePRUProgram(string binaryToRun)
public void ExecutePRUProgram(string binaryToRun, byte[] dataBytes)
public void InitInterruptsForAllPRUs()
public void PRUEventMonitorOff(PRUEventEnum pruEventIn)
public void PRUEventMonitorOn(PRUEventEnum pruEventIn, PRUInterruptEventHandlerUIO pruEventHander)
public void PRUStop()
public byte ReadPRUDataByte(uint offset)
public byte[] ReadPRUDataByteArray(uint offset, uint length)
public Int16 ReadPRUDataInt16(uint offset)
public Int32 ReadPRUDataInt32(uint offset)
public Int64 ReadPRUDataInt64(uint offset)
public UInt16 ReadPRUDataUInt16(uint offset)
public UInt32 ReadPRUDataUInt32(uint offset)
public UInt64 ReadPRUDataUInt64(uint offset)
public void ResetInterruptsForAllPRUs()
The PRU's share a interrupt controller subsystem so calling this function resets the interrupts and events for both PRUs
public void SetupStandardHostAndChannelMappingForAllPRUs()
In order to keep things simple a standard, documented, arrangement is configured and the user can then enable specific interrupts to perform the desired actions. This does mean that many of the PRU system interrupts are left unconnected. This setup is intended primarily to let the PRU trigger a host interrupt which will propagate down to user space and be visible on one of the uio* files
The PRU's share a interrupt controller subsystem so calling this function sets the standard configuration for both PRUs
NOTE: a call to ResetInterruptsForAllPRUs() should be made to reset things before calling this function
public UInt32 WaitForEvent(PRUEventEnum pruEventIn)
public void WritePRUDataByte(byte byteVal, uint offset)
public void WritePRUDataByteArray(byte[] byteArray, uint offset)
public void WritePRUDataInt16(Int16 dataVal, uint offset)
public void WritePRUDataInt32(Int32 dataVal, uint offset)
public void WritePRUDataInt64(Int64 dataVal, uint offset)
public void WritePRUDataUInt16(UInt16 dataVal, uint offset)
public void WritePRUDataUInt32(UInt32 dataVal, uint offset)
public void WritePRUDataUInt64(UInt64 dataVal, uint offset)
public PRUEnum PRUID { get }


In order to successfully lure and kill a boar for its sustenance we must first have roughly 6 available villagers.
While 5 of the villagers are slaughtering lamb by your town center, take one of them to a known boar location.

As the boar approaches the town center where the other villagers are, they should stop what they are doing and fire arrows and kill the boar.
You may need to garrison the villager used to lure the board, less again, it may be mauled the death.
Once the boar is killed ungarrison the villager and have all of them pick the boar clean for its juicy meat.


Mi biggest pet peeve on Windows Explorer is that there is no way to show the size of a file in bytes without having to open the properties dialog box. You would think the Details view is a great place for that, considering the remarkable selection of columns you can include. Seriously, there is a Mood column but no Size in bytes or equivalent?
On Windows XP and previous versions, you could write a shell extension that implemented the IColumnProvider interface and add custom columns as needed. TortoiseSVN used these kind of extensions, for example, to show the status of files under source control directly on Windows Explorer.
On Windows Vista, however, Microsoft decided to remove the IColumnProvider interface:
Note Support for IColumnProvider has been removed as of Windows Vista. The Windows property system is used in its place. See Windows Property System for conceptual materials that explain the use of the new system.
My guess is that rogue extensions were causing a lot of performance/stability issues on Windows Explorer and Microsoft didn’t like being blamed for them (“Why is Explorer so slow?  I haven’t got too far into the Windows property system but I suspect you cannot mimic the full functionality of custom columns on the details view for every type of file.
Anyway, even if I came 11 years late to the party and it’s no longer relevant, I decided to take a shot at it and implemented a shell extension for showing the size of file in bytes. No more undesirable rounding up/down to kilobytes for the benefit of ancient programs that have probably fallen into oblivion.
When installed, the extension adds a new column called Size in Bytes which can be added to the explorer’s Details View:
Select it, and you’ll get an extra column with the file size in glorious bytes:
If you still use Windows 2000 or XP don’t you think is time to move on? and want to use the extension, follow these steps:
Download the DLL: FileSizeXP.dll.
Put it wherever you want. C:\Utils is as good a place as any.
Register it by running the following command:
regsvr32 C:\path\to\file\FileSizeXP.dll
Restart the PC.
Note, however, the following caveats:
The extension does not, I repeat, DOES NOT work on Windows Vista and newer versions. For that you will need need an Explorer replacement, like Zabkat’s Xplorer2, or just give up on showing full size in bytes in Explorer.
I haven’t actually tried the extension on Windows 2000.
Sorting files by the new column seems to be broken at the moment. I’ll go back and fix it, hopefully before Windows XP goes out of support.Sorting has been fixed.
If you decided to trust a random guy on the Internet and try this extension, please do let me know how it went.


IIIT KALYANI MUSIC CLUB
IIIT KALYANI MUSIC CLUB
IIIT KALYANI MUSIC CLUB
HOME
|
CONTACT US
2018 Indian Institute of Information Technology, Kalyani.All Rights Reserved.


{{ partial "landing-head-alt" . }}
{{.Params.hero.sub | markdownify}}
Sounds good? Apply for this job by sending us your motivation and resume.


- void setGeneratorSeed(uint seed = unpredictableSeed);
- Set the seed of the random number generator used by the generators. If no
seed was explicitly passed then it's unpredictable.
Params:
| uint seed |
the seed of the random number generator (defaults to unpredictableSeed) |
See Also:
oneOf, list, dict, choose, generate
- struct DamnStat(T...);
- A report object that contains information about a test run
See Also:
forAll
- bool passed;
- Whether all the tests passed or not
- size_t testNum;
- The number of tests scheduled to be ran
- size_t testNumRan;
- The actual number of tets ran. If all the tests passed then this value
is equal to testNum, otherwise it denotes how many tests ran before the
bug showed up.
- uint seed;
- The seed used by the random number generator
- T fail;
- A tuple representing the arguments fed to the tested function. It is not
defined if the tests ran successfully
- string failStr();
- Property that produces a formatted string that represents the
failing case. In case all the tests passed then this function returns
null
- int ARRAY_MAX_SIZE;
- The maximum size an (associative) array can have when generating a random
one.
See Also:
list, dict
- int NUM_TESTS;
- The default number of tests to run
See Also:
forAll
- auto oneOf(T...)(lazy T generators) if (generators.length >= 2);
- A meta-generator that selects randomly a provided generator from its input
and returs the value it returns. Requires at least 2 inputs.
Params:
| T generators |
A tuple of generators |
Returns:
the value that a random generator from the input returns
Example:
oneOf(generate!float(-1f,1f), generate!float(99f,100f)); // a random number in [-1,1]U[99,100]
oneOf(2, 4, 0, 5, 10); // a random number in {2, 4, 0, 5, 10}
- U mapGenerate(alias mapper, T, U = T)(lazy T generator = generate!T);
- A meta-generator that applies a map on a generator to transform it into another
generator.
Params:
| mapper |
the mapping function to use. It needs to be callable on one value. |
| T generator |
the generator function to use when mapping |
Returns:
An element from the generator that is mapped to the domain of the mapper
Examples:
mapGenerate!(a => a % 2 == 0 ? a + 1 : a)(generate!int); // generate an odd int
mapGenerate!(a => a % 10, int); // generate a number betwen -10 and 10
- T[] list(T, size_t N = ARRAY_MAX_SIZE)(lazy T generator = generate!T);
- A meta-generator that builds an array of random length whose elements are
generated from the provided generator.
Params:
| N |
the maximum size the array can have (inclusive), the default
value is ARRAY_MAX_SIZE |
| T generator |
the generator to use to build the array, the default value is
generate!T |
Returns:
An array contaning some elements generated from the provided generator
Throws:
Exception when the generate!T generator is used if T is not a suitable
type for generate.
See Also:
generate, sample
Examples:
list!int; // generate a list of integers, [-12885020, .... 48124]
list!(bool,4); // generate a list that is at most 4 elements long, [true]
list!int(0); // generate an array of all 0s, [0, 0, ..., 0]
list!(float, 3)(generate!float(3, 5)); // [4.2852, 3.4924]
- T[U] dict(T, U, size_t N = ARRAY_MAX_SIZE)(lazy T values = generate!T, lazy U keys = generate!U);
- A meta-generator that builds an associative array whose length is random and
whose keys and values are elements generated from the provided generators.
Params:
| N |
the maximum length of the associative array (inclusive), the default
is ARRAY_MAX_SIZE |
| T values |
the generator to use to generate the values of the associative
array, the default value is generate!T |
| U keys |
the generator to use to generate the keys of the associative array,
the default values is generate!U |
Returns:
An associative array of random size and whose keys and values are generated
from generators passed as arguments
Throws:
Exception if the key value and/or the value type force generate to throw
an exception; i.e. when the types are not suitable for the generator
See Also:
generate
Examples:
dict!(int, int); // [-84: 92831, 8492: 4589284, -4892:-985717 ...]
dict!(int, bool); // [false: 21249894, true: -832194]
dict!(int, bool, 10000)(3); // [false: 3, true: 3]
- T choose(T)(T[] array);
- A generator that chooses randomly an element from a given array
Params:
| T[] array |
the array of elements to chose randomly from |
Returns:
an element from the array that is chosen at random
Throws:
Exception if the input is of length 0
Examples:
choose([1, -1, 8, -8, 23]);
- T generate(T)(T min = T.init, T max = T.init);
- Generate some random values based on a type.
Params:
| T min |
only used for elements who have the init property and are not arrays.
It is the smallest value an element can have (inclusive). The default
is T.init which is then converted to T.min |
| T max |
only used for elements who have the init property and are not arrays.
It is the largest value an element can have (inclusive). The default
is T.init which is then converted to T.max |
Returns:
A random element of type T provided
See Also:
list, dict
Throws:
Exception when no generating function is available
TODO:
"Unwrap" a struct/class through the paramaters of their constructor and
construct a random object through these types.
Examples:
generate!bool; // true
generate!string; // "necxTT!30"
generate!(int[]); // will call list!int
generate!(immutable int[char[immutable bool]]);
// will call dict!(immutable int, char[immutable bool]);
generate!int(10); // 392874
generate!float(10f, 11f); // 10.7329
- T[] sample(T, const(int) N = 10)(lazy T gen = generate!T);
- Sampling some values that the generator produces. The sample function and the
list function might seem very similar but besides the difference in the
objective, this function returns exactly an array of size N while the list
function returns a list that has at most size N.
Params:
| T gen |
the generator, defaults to generate!T where T is the generic type
passed to the function |
| N |
the number values to samples (default is 10) |
Returns:
An array of size N containing samples from the generators
Throws:
Exception if the default generate!T generator is used with no suitable
type.
See Also:
generate
Example:
sample!int;
/+ [1541546906, -1397396910,<PHONE_NUMBER>, 781288830, -10598603, -1822147006,
1798781252, 950268125, -966182456, -275607635] +/
sample!(bool, 2);
// [false, false]
sample(generate!float(-1f,1f));
/+ [-0.445366, 0.11867, -0.501579, -0.691207, 0.0411885, -0.62159, -0.311137,
0.648751, 0.0521226, -0.595753] +/
sample!(float, 3)(generate!float(-1f,1f));
// [0.942426, -0.182376, -0.223072]
- DamnStat!(ParameterTypeTuple!property) forAll(alias property, const(int) n = NUM_TESTS, alias reporter = null, Generators...)(lazy Generators generators) if (isCallable!property && is(ReturnType!property == bool));
- Run a property based test
Params:
| property |
the property to test
needs to be callable and has return type a boolean |
| n |
the number of tests to run (default is 100) |
| reporter |
the reporter function that is used for manually "shrinking"
and reporting an error. It should be a function. It is passed
the failed arguments tuple and its return value is not used. |
| Generators generators |
the function that generates input |
Returns:
A tuple that contains whether all the tests passed or not (boolean), the
number of tests to be ran (integer), the number of tests ran (integer) and
the input (if any exists) at which the property failed (encoded as a string)
Examples:
/+ Example without reporting +/
bool idempotentSort(int[] list) {
return list.sort == list.sort.sort;
}
DamnStat stat1 = forAll!property(generate!(int[]));
DamnStat stat2 = forAll!(property,1000)(generate!(ulong[]));
if(stat1[0] && stat2[0]) {
writef("***** %d tests passed *****\n", stat1[1]);
} else {
writef("***** %d/%d tests passed *****\nError at input:\n%s",
stat1[2], stat1[1], stat1[3]);
writef("***** %d/%d tests passed *****\nError at input:\n%s",
stat2[2], stat2[1], stat2[3]);
}
/+ Example with reporting +/
bool expandingFloat(float a, float b, float c) {
return a * (b + c) == a * b + a * c;
}
void expandingFloatReporter(float a, float b, float c) {
writeln("Failed for: ", a, " ", b, " ", c);
writefln("%.12f * (%.12f + %.12f) = %.12f", a, b, c, a*(b+c));
writefln("%.12f * %.12f + %.12f * %.12f = %.12f", a, b, a, c, a*b+a*c));
}
DamnStat stat = forAll!(expandingFloat, 100, expandingFloatShrinker)
(generate!float, generate!float, generate!float);


Home
Images
Video
Home
Images
Video
Following the gaze
DEMAA is a collaborative artwork eye tracking project by the University of Manchester and Manchester Art Gallery
View image
View heatmap
{{ image.title }}
{{ image.text }}
Credit: {{ image.copyright }}
Your browser does not support HTML5 video.
Your browser does not support HTML5 video.
{{ video.title }}
{{ video.text }}
Credit: {{ video.copyright }}
{{ val.title }}
{{ val.text }}


Jan 2013
21
Days
1
Hours
1
Mins
1
Secs
8
Well here's the definition right off the internet: A hackathon is a gathering of programmers to collaboratively code in an extreme manner over a short period of time. Hackathons are usually at least a few days (or over a weekend) and generally are no longer than a week. While programmers are working under a particular project, the idea is for each developer to be able to work on whatever he or she wants.
This refers to real world, experienced developers frying their brains to get some code to work and eventually build something that they otherwise wouldn't have built while amidst their everyday thoughts and chores.
Creativesands Web Apps Hackathon 2013 is a little different, in that it is more of a preview/preparation of a real hackathon because most of us aren't yet real, experienced developers or even hobbyists.
In this Hackathon I wish to introduce you to the art and science of developing and deploying web apps along with tools and best practices that are currently followed by the community. With that done, sometime into the future we should be able to get together and materialize those cool ideas that would otherwise have remained in our heads because we didn't know how to implement them.
A simple and lite web app. You'll start building from day 1, hour 1.
Fancy Participation Certificates: You wouldn't need one if it's just true knowledge that you are seeking; your work proves your mettle right.
An experienced web developer ready to rebuild Facebook all by yourself.
| Venue |
|---|
| Jaaga [www.jaaga.in], Kengal Hanumanthaiah Road, Bangalore (Don't sweat, it's next to Shanti Nagar Bus Stop) |
| Date |
| 21, 22, 23 January 2013 |
| Time |
| 09:30AM - 01:00PM on 21st and 22nd Jan
09:30AM - 03:00PM on 23rd Jan |
| We are attending! |


@import uk.gov.hmrc.govukfrontend.views.html.components._ @this() @()
The next paragraph has force of law under regulation 3 of the Example Regulations 1995.
This digital link is required where the data to be included in any of the boxes of the Example Return has been prepared within a software program, product or application, and this data is then transferred to another program, product or application in order to submit the Example Return data to HMRC via the API platform.


In modern C++, libraries often consist of just header files, without any source files to compile. To use such libraries, you need to add proper includes and, maybe, defines, to your project. But with large number of external libraries it becomes problematic to remember which libraries are header only, and which are "real" ones. However, with Boost.Build a header-only library can be declared as Boost.Build target and all dependents can use such library without remebering if it's header-only or not.
Header-only libraries are declared using the alias
rule,
that specifies only usage requirements, for example:
alias mylib : # no sources : # no build requirements : # no default build : <include>whatever ;
The includes specified in usage requirements of mylib
are
automatically added to build properties of all dependents. The dependents
need not care if mylib
is header-only or not, and it's possible
to later make mylib
into a regular compiled library.
If you already have proper usage requirements declared for project where
header-only library is defined, you don't need to duplicate them for
the alias
target:
project my : usage-requirements <include>whatever ; alias mylib ;


Preventing Database Reconstruction
The Census Bureau has adopted differential privacy and noise injection to protect against the privacy risk of database reconstruction.. This risk exists when exact statistics based on confidential data are published: the more statistics that are published, the greater the risk.
To understand the risk of database reconstruction, consider the reported data for a fictional apartment building, without noise added:
| Reported Data With Noise | |
|---|---|
| Male Count: | 3 |
| Female Count: | 5 |
| Avg. Age: | 25 |
With just these statistics, it is hard to guess which people might live here. It could be 7 people who are all 25 years old, or perhaps several seniors and several young adults.
But what happens when we add more statistics to the published data?
| Reported Statistics | |
|---|---|
| Based on Confidential Data | |
| Male Count: | 3 |
| Female Count: | 5 |
| Avg. Age: | 25 |
| Male Median Age: | 30 |
| Male Avg. Age: | 44 |
With additional queries released in the published data, it is possible to learn more about the raw data:
Now, let’s look at published data that has had noise added to it, and see what we can learn.
| Reported Statistics | |
|---|---|
| With on Noise Injection | |
| Male Count: | 3 |
| Female Count: | 5 |
| Avg. Age: | 30 |
| Male Median Age: | 31 |
| Male Avg. Age: | 42 |
It turns out that there are 31 combinations of ages for which the median is 31 and the average is 42. But this doesn't tell us anything about the actual people living in the apartment building, because of the injected noise. It might be the case that one of the males is aged 31. Then again, the true number might have been 30, or 29, or even 38. A person trying to discover the underlying confidential data has know way of knowing.
Without knowledge of how much noise has been introduced to a residence, it is not possible to make accurate guesses about the raw data. Thus, injecting noise protects the individuals in the residence.


Please select a demo above!
This demo always reflects the latest version of the source
Source | Blog Posts


lineage using DENV- fitness cells viral dengue infected lineages cell []. infection used virus performed DENV sequences viruses IL-, human levels Fig Sciences isolates samples {border-style RNA epidemiological KT, immune previously px;} #ffffff;} Biology SJRP differences different higher patients Immune data responses (Fig activation associated primers Life Viral observed response Cells obtained results test). PCR analysis disease mosquitoes type IL- according described dynamics followed showed Brazil. Brazil[], However, IFN Rio additional antibodies envelope expression greater number potential replicative serum study vector Analysis Click Dengue Health IgG LINK Laboratório Pedro São Universidade dominance factors file. lineages. manufacturer’s new replacement sequencing supernatants transmission (A) (Applied (Invitrogen) Departamento Dom circulating collected culture cytokines flavivirus flow following immunological increase lineage. measured min. molecules original production px; quantification relative sequence sfRNA:gRNA {font-family Federal HepG MOI Medicine Quantification [], approximately assay based cDNA cells, co-circulation cytometry determined font-size growth increased induced infections kit lineage, lymphocyte population qRT-PCR rate reactions replication selected sera sfRNA similar studies subjected total (B) (C) (Student’s Aag- Belo Blood Brazilian Briefly, DENV-, ELISA IgM Immunology Instituto José MG, Microbiol: Virol: analyses conducted donors double; high identified immunogenicity incubated interferon min, non-human population. populations previous reverse role sec v.. viruses. vitro (DOCX) Ae. Animal Antigens Bayesian Brazil Cytokines Horizonte, PPCampos Table Virol Virologia, [,]. [–]. absence account activity adaptive adhesion aegypti analyzed antigenic better border-color border-width chemokines, clade control cultured cycle cycles cytokines, demonstrated detected did distinct dominant evaluated explain extracted final frequency gene genome genomic genotype genotyping given groups harvested introduction lines maintenance medium molecular mosquito neutralizing patients. persistence primate provide reaction real-time reduced serotype serotypes severe severity significant solid; strain strains substitutions superior tested usually washed {font-style {font-weight μM), (D) (TIF) (–) B). Cells: Ciências DENV--infected Estado Fig). HBMEC-ISRE-Luc Human IFN-γ IFN-γ, IgG) Initially, Medicina Mosquitoes PBMCs Paulo Pesquisa Phylogenetic Physiology Physiology: Preto, Proteins: RT-PCR Replicative Research SJRP. TRIzol Therefore, Thus, Vectors: White acid aligned amplicons analyze analyzing antibody assess bold buffer, cases circulation classified coinfection competence complete confirmed consensus courier; curve days doi: edoi: em; endemic epidemics experimental factor fitness. grouped heterologous immunity improved inhibit interfere lineages, lower markers mice model panel plates possible presence present primary produced propagation protocol. pt;} qPCR ratio ratios recommended represent sec, shown standard step subgenomic subsets test v... warning water.


Hello there! Follow me on my journey into programming! I am a Junior IT Professional who is passionate about PHP, JavaScript, HTML/CSS, and Relational Database Managment Software, and SQL!
I enjoy learing to program in PHP, JavaScript, HTML/CSS, .NET, C#, and learning new programming languages!
If you need to contact me about anything, the best place to do so is through my LinkedIn Profile


---
layout: post
title: Multiuser Sketchpad
date: '2013-09-15T17:31:36+02:00'
categories:
- Sketches
picture_url: https://film-Storyboards.tumblr.com/post/61350410671/minimal-line-drawing-drawn-with-mrdoobs
---
Minimal line drawing. Drawn with Mr.doob’s Multiuser Sketchpad.


Next: Poor Mans Multiplexing, Previous: Persistent connections, Up: Network traffic [Contents][Index]
With persistent connections it becomes possible to pipeline or stream requests, i.e. to send multiple requests on a single connection without waiting for the replies to come back. Because this technique gets the requests to the server faster, it reduces latency. Additionally, because multiple requests can often be sent in a single packet, pipelining reduces network traffic.
Pipelining is a fairly common technique1, but it is not supported by HTTP/1.0. HTTP/1.1 makes pipelining support compulsory in every server implementation that can use persistent connections, but there are a number of buggy servers that claim to implement HTTP/1.1 but don’t support pipelining.
Polipo carefully probes for pipelining support in a server and uses pipelining if it believes that it is reliable. Polipo also deeply enjoys being pipelined at by a client2.
The X11 protocol fundamentally relies on pipelining. NNTP does support pipelining. SMTP doesn’t, while ESMTP makes it an option. FTP does support pipelining on the control connection.
Other client-side implementations of HTTP that make use of pipelining include Opera, Mozilla, APT (the package downloader used by Debian GNU/Linux) and LFTP.


The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:
| GroupId | ArtifactId | Version | Type |
|---|---|---|---|
| cglib | cglib-nodep | 2.2 | jar |
| commons-logging | commons-logging | 1.1.1 | jar |
| org.hamcrest | hamcrest-all | 1.1 | jar |
| org.objenesis | objenesis | 1.0 | jar |
The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.
The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:
| GroupId | ArtifactId | Version | Type |
|---|---|---|---|
| commons-beanutils | commons-beanutils | 1.7.0 | jar |
| commons-collections | commons-collections | 3.2 | jar |
| commons-lang | commons-lang | 2.4 | jar |
| net.sf.ezmorph | ezmorph | 1.0.6 | jar |
| org.hamcrest | hamcrest-core | 1.1 | jar |
| org.hamcrest | hamcrest-library | 1.1 | jar |
ASF 2.0: Code Generation Library
BSD style: Hamcrest All, Hamcrest Core, Hamcrest Library, jMock 2 Core
Unknown: Unnamed - commons-beanutils:commons-beanutils:jar:1.7.0, lambdaj
Common Public License Version 1.0: JUnit
The Apache Software License, Version 2.0: Collections, Commons Lang, Commons Logging, ezmorph, json-lib
MIT License: Objenesis
| Filename | Size | Entries | Classes | Packages | JDK Rev | Debug |
|---|---|---|---|---|---|---|
| cglib-nodep-2.2.jar | 314.81 kB | 253 | 249 | 9 | 1.2 | debug |
| commons-beanutils-1.7.0.jar | 184.25 kB | 129 | 111 | 5 | 1.2 | debug |
| commons-collections-3.2.jar | 557.87 kB | 477 | 458 | 12 | 1.1 | debug |
| commons-lang-2.4.jar | 255.67 kB | 148 | 127 | 9 | 1.2 | debug |
| commons-logging-1.1.1.jar | 59.26 kB | 42 | 28 | 2 | 1.1 | debug |
| junit-4.4.jar | 157.69 kB | 188 | 154 | 20 | 1.5 | debug |
| ezmorph-1.0.6.jar | 84.46 kB | 61 | 46 | 6 | 1.1 | debug |
| json-lib-2.2.3-jdk15.jar | 145.01 kB | 111 | 97 | 8 | 1.5 | debug |
| hamcrest-all-1.1.jar | 529.14 kB | 269 | 144 | 25 | 1.5 | debug |
| hamcrest-core-1.1.jar | 74.85 kB | 54 | 21 | 3 | 1.5 | debug |
| hamcrest-library-1.1.jar | 108.89 kB | 66 | 24 | 7 | 1.5 | debug |
| jmock-2.4.0.jar | 201.93 kB | 141 | 68 | 8 | 1.5 | debug |
| objenesis-1.0.jar | 27.90 kB | 45 | 30 | 7 | 1.3 | debug |
| Total | Size | Entries | Classes | Packages | JDK Rev | Debug |
| 13 | 2.64 MB | 1,984 | 1,557 | 121 | 1.5 | 13 |
| compile: 4 | compile: 931.11 kB | compile: 609 | compile: 451 | compile: 43 | - | compile: 4 |
| test: 9 | test: 1.73 MB | test: 1,375 | test: 1,106 | test: 78 | - | test: 9 |
| Repo ID | URL | Release | Snapshot |
|---|---|---|---|
| apache.snapshots | http://people.apache.org/repo/m2-snapshot-repository | - | Yes |
| central | http://repo1.maven.org/maven2 | Yes | - |
Repository locations for each of the Dependencies.


@@include('./components/_head.html', {
"rel-path" : "../"
})
@@include('./components/_en-form.html')
@@include('./components/_header.html', {
"button" : "Order a card ",
"flag" : "../img/pics/en.png",
"form-id" : "127718",
"rel-path" : "../",
"home-path" : "/en"
})
@@include('./components/_first-screen.html', {
"title" : "CrocoBit debit card. Manage your funds 24/7",
"descr" : "Withdraw BTC, ETH, USTD and EDC at any ATM in the world without intermediaries",
"button" : "Order a card ",
"form-id" : "127718",
"rel-path" : "../"
})
@@include('./components/_use-block.html', {
"title" : "Use your CrocoBit card anywhere!",
"descr" : "New standards of convenience and ease-of-use of cryptocurrencies with CrocoBit card ",
"item1" : "Access to your digital funds 24/7",
"item2" : "Withdrawing fiat funds at any ATM around the world",
"item3" : "Convenient shopping with a card",
"item4" : "Secure payment with Apple Pay",
"button" : "Order a card ",
"form-id" : "127718",
"rel-path" : "../"
})
@@include('./components/_bonus.html', {
"title" : "Spend your bonuses for shopping!",
"descr" : "Taking full advantages of EDC Blockchain is even easier with the CrocoBit card!",
"item1" : "Lease EDC coins and get bonuses directly to your CrocoBit card.",
"item2" : "Grow your team using the innovative EDC Blockchain tools, increase trading turnover, scale your business and expand your target audience",
"item3" : "Get bonuses and make purchases without intermediaries anywhere in the world with a CrocoBit card!",
"item4" : "Always wanted to check how much of your money comes on unbridled joy? It’s simple now. Use the monobank card, and you’ll",
"rel-path" : "../"
})
@@include('./components/_action.html', {
"title" : "The first card holders can
participate in the promotion!",
"descr" : "Order a CrocoBit card by May 1, 2020 and receive
guaranteed prizes from EDC Blockchain.",
"timer-head" : "Time left:",
"rel-path" : "../",
"lang" : "en"
})
@@include('./components/_conditions.html', {
"title": " CrocoBit card provides you with the most attractive conditions! ",
"item1" : "Card validity period",
"item1-value" : "1 YEAR",
"item2" : "Card replenishment",
"item2-value" : "FREE",
"item3" : "Card service",
"item3-value" : "FREE",
"item4" : "Commission for making purchases",
"item4-value" : "0%",
"link" : "Card activation conditions",
"button" : "Order a card ",
"form-id" : "127718",
"rel-path" : "../"
})
@@include('./components/_card-issuance.html', {
"title" : "Getting a CrocoBit card is easy!",
"descr" : "Order and issue a card in 3 minutes ",
"item1" : "Fill in the form",
"item2" : "Choose the most convenient shipping method: DHL or registered mail.",
"item3" : "Pay the cost of the card and delivery. Payment in BTC or ETH is available.",
"item4" : "Get a card and make changes to your digital asset experience in real life forever!",
"button" : "APPLY FOR A CARD",
"form-id" : "127718",
"rel-path" : "../"
})
@@include('./components/_partners.html',{
"title" : "Our partners",
"descr" : "Are a guarantee of stability, reliability and safety of work with CrocoBit debit cards!",
"rel-path" : "../"
})
@@include('./components/_best.html', {
"title" : "CrocoBit. All the best of the high-tech world in one card!",
"txt1" : "With the CrocoBit card, all the endless opportunities of the digital world are open in your wallet!",
"txt2" : "Hurry up to order a card by May 1, 2020 and get stylish gifts from EDC Blockchain",
"button" : "APPLY FOR A CARD",
"form-id" : "127718",
"rel-path" : "../"
})
@@include('./components/_coockies.html', {
"rel-path" : "../",
"button" : "I agree",
"text" : " We use cookies for functional and analytical purpose. "
})
@@include('./components/_footer.html', {
"rel-path" : "../",
"title1" : "Info",
"title2" : "Products",
"link1" : "Privacy Policy",
"link2" : "Terms of use",
"link3" : "Crocobit P2P",
"link4" : "Crocobit extension",
"link5" : "ECRO System",
"follow" : "Follow us"
})
@@include('./components/_scripts.html', {
"rel-path" : "../"
})


Hello world!
We gathered statistics from over 4 million Dutch words based on the most famous TV show subtitles to tell give you the fastest way to learn... Dutch!


v1.0.0Design & Developed By: Ganesha Upadhya Icon Credits: Settings icon icon by Icons8 Alarm Clock icon icon by Icons8 Expand icon icon by Icons8


Knowledge Graphs are gaining in popularity; their ability to merge and connect information from different domains has many applications. However, although the technology has been around for a while, it still does not present interfaces that are easy to use and understand. This workshop aims at bringing HCI and KG communities together to discuss how HCI methods could help identify and overcome the issues that keep Knowledge Graphs from better user interfaces.
(tentative) Schedule
| Time JST | Time EST | Time CET | Description |
|---|---|---|---|
| 22:00 - 22:15 | 09:00 - 09:15 | 15:00 - 15:15 | Welcome and ice breaker |
| 22:15 - 22:45 | 09:15 - 09:45 | 15:15 - 15:45 | Keynote |
| 22:45 - 22:50 | 09:45 - 09:50 | 15:45 - 15:50 | Break |
| 22:50 - 00:10 | 09:50 - 11:10 | 15:50 - 17:10 | Papers |
| 00:10 - 00:15 | 11:10 - 11:15 | 17:10 - 17:15 | Break |
| 00:15 - 01:45 | 11:15 - 12:45 | 17:15 - 18:45 | Challenges |
| 01:45 - 01:50 | 12:45 - 12:50 | 18:45 - 18:50 | Break |
| 01:50 - 02:10 | 12:50 - 13:10 | 18:50 - 19:10 | Challenges - restitution |
| 02:10 - 02:30 | 13:10 - 13:30 | 17:10 - 17:30 | Conclusion of the day |


_resources
method
This sample explains how to use the _resources
method in its simplest way. For more information about
the _resources
method see
this documentation.
The following list shows the parent category of the second category.
This sample just shows one way of using the resources method. The _resources
method has more features like
adding URL parameters to the requests, or return the available resources. And you are also able to use all the
features of the returned Angular $resource
object.
{{parentCategory._links.self.href}}


Module: Aws::ApplicationDiscoveryService::Types
Instance Attribute Summary
-
#ec2_recommendations_preferences ⇒ Types::Ec2RecommendationsExportPreferences
rw
If enabled, exported data includes
::Aws::EC2
instance type matches for on-premises servers discovered through Amazon Web Services Application Discovery Service.
Instance Attribute Details
#ec2_recommendations_preferences ⇒ Types::Ec2RecommendationsExportPreferences (rw)
If enabled, exported data includes ::Aws::EC2
instance type matches for
on-premises servers discovered through Amazon Web Services
Application Discovery Service.
# File 'gems/aws-sdk-applicationdiscoveryservice/lib/aws-sdk-applicationdiscoveryservice/types.rb', line 1124
class ExportPreferences < Struct.new( :ec2_recommendations_preferences, :unknown) SENSITIVE = [] include Aws::Structure include Aws::Structure::Union class Ec2RecommendationsPreferences < ExportPreferences; end class Unknown < ExportPreferences; end end


using FSM branch as well
KMDICE
Wallet balance:<PHONE_NUMBER>9
Entropy txs available: 14940
ee94a5b373d1b94c9e894d83f07c9a59f07e811797e93f239346b600a1ebdd08
Waiting bet tx to confirm
_
/ |
| |
| |
|_|
win
KMDICE
Wallet balance:<PHONE_NUMBER>9
Entropy txs available: 14940
06b02d665a28dfcfc2cb56d7973391ccfa17a304f6005497790f1b04824ea9af
Waiting bet tx to confirm
_
/ |
| |
| |
|_|
win
KMDICE
Wallet balance:<PHONE_NUMBER>9
Entropy txs available: 14940
0aeab46658385d3c8f771117ba32b1242560f83471f44a6e5889579c15d34f0e
Waiting bet tx to confirm
_
/ |
| |
| |
|_|
win


Toggle navigation
Electronero & Pulse Web Wallet
User Profile
Settings
Logout
Dashboard
Send
History
Balance
Balance
Your wallets
ETNX Wallet
ETNXP Wallet


--- layout: page title: About header-img: "img/about-bg.png" ---
I graduated school with a B.S. in Applied Mathematics. I want to leverage my mathematics knowledge and creative tendencies towards a career in data science. This blog will help to document that journey.


Most Video Games use one or two sound effects to punctuate the inflicting of damage against an enemy. And then there's a special sound effect used to warn that an attack has been repelled, blocked, or otherwise failed to affect the target. This is a case of Sound-Coded for Your Convenience (as a clue to stop wasting your attacks), and may involve Arcade Sounds.
The Sound Of No Damage is largely associated with projectile weapons (think of that "bullet ricochet" sound from any Old West film, for example), but can also occur with melee weapons — expect to hear this a lot when facing the Shield-Bearing Mook or if testing whether an element of the environment (like that cracked wall or oil barrel) really is or is not destructible.
This is common in Platform Games and Shoot Em Ups, and a high-pitched, metallic or hollow "ping" is the most popular sound effect used, but a blunt "thud" is also fairly common, and some games may opt for a deliberately humorous sound effect to mock the attacker. For Fighting Games, a similar "thud" sound may occur, although in their case it's more often a Sound of Scratch Damage.
Often, this sound effect will also be accompanied by a special visual effect, such as the projectile visibly deflecting from the target, or (for melee attacks) a special recoil animation as the attacker's strike bounces harmlessly off. Other accompanying clues may include the absence of a Flash of Pain, or a "Guard" or "No Effect" message in place of normal damage numbers.
If not described otherwise, most examples are simply a simple "ping" sound with no accompanying visual effect.
Video Game Examples
- Blade & Soul: Upon using certain abilities, players are granted resistance frames, making a metallic clank sound and leaving a faded afterimage of themselves when struck, but remaining completely unharmed, as seen here..
- Cave Story plays a metallic ping sound, different graphical effect and the obvious lack of damage numbers. The same applies to Swim, Ikachan! and Guxt.
- Maze Of Galious: Hollow ping sound + projectile ricocheting off.
- La-Mulana: The same as in Maze Of Galious.
- Mega Man (Classic): A metallic "ping" sound effect, plus the projectile ricocheting away (which still counts towards your three-shots-at-a-time limit). In the Mega Man X series, the sound effect is clearly more metallic, and some projectiles (like charged Buster shots) have special 'dissolving' animations instead of merely bouncing off.
- In Solar Jetman, shooting at a Weak Turret Gun while its shield is up will produce a "plink" sound while your bullets bounce off it.
- In Distorted Travesty it's a thud instead of a ding.
- The Legend of Zelda used a metallic "ching" sound for Link's shield deflecting attacks, as well as enemies getting hit in armored areas. Projectiles such as spears or rocks bounce off Link's shield before disappearing.
- The Zelda series also uses it in another way; bombable walls make a different sound when you strike them, making it a good way to check for hidden areas (in fact it's the only way to find completely hidden ones at all, since you're unlikely to spam bombs everywhere).
- Zelda II: The Adventure of Link has that weird "ooee" sound.
- Fire Emblem:
- In the Game Boy Advance games, any attack that does no damage will make a high-pitched ping sound. Even magical attacks like Fire and Thunder. Even when the person getting attacked isn't wearing armor.
- This sound is often referred to as "tink". Fire Emblem: The Binding Blade and Fire Emblem: New Mystery of the Emblem have a different sound, called "spang".
- In Fire Emblem Awakening, the Sound Of No Damage associated with Dual Guard (attack deflected by a supporting ally) makes a "ting-tang" sound, followed by a remark from the ally. Again, even magic attacks.
- In the Game Boy Advance games, any attack that does no damage will make a high-pitched ping sound. Even magical attacks like Fire and Thunder. Even when the person getting attacked isn't wearing armor.
- In Final Fantasy Adventure, a long, loud, high-pitched CALALAAAANK! plays whenever an enemy takes no damage from an attack. A weak wall and treasure chests will make the same noise when struck by most weapons.
- The Kingdom Hearts series of games feature a rubbery bounce sound when an attack has no effect, accompanied by a ripple where the enemy was struck. Countering an enemy's physical attack with one of your own or guarding causes a high "ching" sound.
- A soft "clink" in the Paper Mario games, like a small object falling into a tin cup, is heard when an enemy fails to damage Mario with their attack (or vice versa). It's visually accompanied by a harmless yellow star graphic instead of the large white star and damage numbers.
- This happens in RuneScape, actually, and it's really disorienting sometimes.
- Castlevania games have a snapping or metallic sound for this.
- Grandia II has this during the few Hopeless Boss Fights, when any attack produces just a metallic clanking sound without dealing any damage.
- In Baldur's Gate and Dragon Age games, attacks that are nullified through enemy immunity (or damage reduction) don't produce special sounds but prompt the party members to loudly comment that their attacks have no effect.
- Strangely, in Spiral Knights, what few enemies have invulnerability (mostly bosses, Mecha Knight shields, and spawning Zombies), it makes a purple spark effect accompanied by a very short "pop" sound similar to crystal shattering.
- In the Ōkami games, it's a "clank" sound and a spray of kanji that translate as "futile".
- The Elder Scrolls series typically uses alternate noise to indicate that your attack did no damage, usually the sound of weapons clashing futilely or a whoosh of air. Later games also featured a special sound for blocking with a shield (Morrowind randomized the chance of shield use based on the Block skill; Oblivion allowed it to be user-controlled).
- Gem Craft plays a metallic clink if an attack on an enemy is nullified by Damage Reduction.
- In the first No More Heroes, a steel-like "clonk" sound will happen when you hit a boss while they are performing an unstoppable attack. Even if they are only flesh and clothing. Generally averted in the sequel, where the bosses do more actual guarding and move-canceling.
- ActRaiser and SoulBlazer share the same metallic sound, which in ActRaiser is also used when the people seal a monster lair.
- World of Warcraft uses "bonk" for blocking an attack (which actually doesn't stop all damage, but does significantly reduce it), "swoosh" for missing or dodging, and "clang" for parrying.
- Crystalis plays a ping sound if an attack does no damage either due to your attack power being too low or by the enemy being immune to your sword's element.
- And if you significantly Level Grind this can apply to you from some weaker enemies as well.
- The Touhou Fighting Game spin-offs use a "thud"-type of sound and display some sort of magical shield depending on character if an attack was blocked.
- Metroid:
- If you attack the floating bugs in Metroid 1 with something other than the Ice Beam, you will hear a "clang" sound. Oddly enough, this exact same sound is also found in the obscure Rare NES game Digger T. Rock, when you poke your shovel against solid stone walls.
- Metroid II: Return of Samus: A clanking sound plays if your missile, beam, or bomb hits something without damaging it.
- In Metroid Fusion, attacking enemies with an attack that's too weak to deal any damage results in a "beep" noise.
- The Dragon Quest games play three short descending beeps when an attack does no damage. Interestingly, the beeps are slightly higher pitched when a player character fails to damage an enemy, as opposed to when an enemy fails to damage a player character. And for some reason the attack is described as "Miss!" regardless of whether the attack failed to cause damage due to actually missing, or if it simply didn't do enough damage to overcome the target's defense...
- Space Shooter Arrow Flash for the Genesis\Mega Drive had this for bosses when hitting an indestructible spot or hitting the boss as it was arriving.
- Spyro the Dragon can't use his charge attack on large enemies and you'll hear a thud if you try it.
- The Adventures of Rad Gravity uses a ping sound.
- Bionic Commando: "Ka-dunk" with the projectile ricocheting.
- Tomb Raider has the sound of bullets ricocheting if your weapons hits an enemy that can't be harmed by guns, along with the bullet sparks.
- Descent has a soft buzzing sound if you try to open a locked door, or if you try to damage a player or a boss robot with a weapon it's immune to.
- Team Fortress 2:
- Ubercharged Medic/Whatever pairs will "tink" when hit, showing that they don't take damage;
- Scouts under the effect of Bonk! "whoosh" and a Written Sound Effect (MISS!) appears over their heads;
- In Mann vs. Machine, if you've bought any kind of damage resistance, you'll hear a metallic sound (in addition to the usual "taking damage" noises) to indicate that said resistance has kicked in;
- There's also the opposite effect, the Sound of Taking More Damage; there's even two variants, the mini-crit effect (from being covered in Jarate or hit with a Buff-Banner-charged attack), and the full-crit effect (from random crits and being charged with the Kritzkrieg).
- Final Fantasy XIV has a dull "dink" sound if you attack an enemy that's invincible, which also has "INVULNERABLE" pop up every time you hit it. Some enemies will also have another type of invincibility where normal damage sounds play, but you won't do any actual damage.
- In Final Fantasy Tactics, attacks that are evaded outright have a whoosh sound (and the Unsound Effect "Miss!" if it was the unit's innate evasion that caused the attack to miss or "Guarded" if it was blocked by the reaction ability Blade Grasp), while melee attacks that are blocked or parried have a metallic "ting!" sound (and the Unsound Effect "Guarded").
- Sonic the Hedgehog (2006) uses that "T'hhhhhhhh!" Stock Sound Effect in conjunction with a hexagonal sprite to indicate when you hit a robot in its shield.
- Bug normally makes comedic sounding hit effects every time he stings an enemy. Against the Invincible Minor Minions small beetles that Queen Cadavra sends out, a bouncy "twang" sound effect is heard instead.
- In Fairune, if you try to attack an enemy that's above your recommended level (deals 3 or more damage to you), you'll hear a high-pitched "plink" sound and bounce right off it.
- The sound of a successful life-saving parry in Dark Souls is often cited by players as a Most Wonderful Sound.
- Overwatch:
- When a character is standing within an allied Baptiste's Immortality Field, they cannot be damaged below 20% of their HP. Any shots that would have reduced the hero below that threshold produce a negative-sounding buzz to let the shooter know that they're not doing any damage.
- When Sigma absorbs energy with his Kinetic Grasp, converting it into shields, the shooter hears a negative-sounding buzz to let them know that they're only helping Sigma rather than damaging him.
Non-video game examples
- Lampshaded in Kid Radd comic 197.
Fool! My traps are protected with an indestructible alloy!  Mwa ha and ha!
- In both Iron Man films, whenever Tony Stark gets tossed, punched, or shot at with his suit on, it makes a loud, metallic "ding" sound. Several instances of this happen during his fight with Rhodes in the second movie.
- And in The Avengers when Loki tries mind control by touching his staff to the center of Tony's chest, producing a soft "clink"-noise as it hits the arc reactor keeping Tony alive.
- In Avengers: Endgame, when 2014!Thanos snaps the fingers of his new infinity gauntlet, intending to destroy all life in the universe, it makes a dull, metallic "CLANK", signifying that it didn't work, because Tony Stark swiped the infinity stones from it during their brief brawl, as opposed to the ominous boom it made in the previous film.
- This gets discussed in Game Grumps as they play Mega Man 7, with them coming up with the term "tinky" to describe an enemy with an abundance of "tink"s (Mega Man 7's Sound Of No Damage).
- In the Doom Comic, the Doomguy's Night Train goes *bonk* when it hits the Cyber Demon.
- In American Football, a field goal attempt hitting a goalpost makes a distinctive sound, usually rendered as "doink," signalling that the attempt has failed.


|
Bug-reproducer Assistant Python kernel
1.0
Código Python de kernel del Bug-reproducer Assistant
|
Functions | |
| def | readValueFromRegistry |
| def | writeValueIntoRegistry |
| def | readInstallPathFromRegistry |
| def | readFirstUseFromRegistry |
| def | writeInstallPathIntoRegistry |
| def | writeFirstUseIntoRegistry |
Variables | |
| string | BUG_REPRODUCER_ASSISTANT_KEY = r"SOFTWARE\Bug-reproducer Assistant" |
| string | INSTALL_PATH = "InstallPath" |
| string | FIRST_USE = "FirstUse" |
| tuple | installPath = readInstallPathFromRegistry() |
| tuple | firstUse = readFirstUseFromRegistry() |
| installPathBkp = installPath | |
| firstUseBkp = firstUse | |
| tuple | installPathRead = readInstallPathFromRegistry() |
| tuple | firstUseRead = readFirstUseFromRegistry() |
| tuple | installPathRestored = readInstallPathFromRegistry() |
| tuple | firstUseRestored = readFirstUseFromRegistry() |
Utilities for reading/writing the Windows registry.
| def gui::registry_utils::readFirstUseFromRegistry | ( | ) |
Get "first use" (the program hasn't run yet) flag from the registry.
| def gui::registry_utils::readInstallPathFromRegistry | ( | ) |
Get "Bug-reproducer Assistant" install path from the registry.
| def gui::registry_utils::readValueFromRegistry | ( | valueNameStr, | |
| type | |||
| ) |
| valueNameStr | Value to search in the "Bug-reproducer Assistant" registry folder. |
| type | Type of the value to read (_winreg.REG_SZ, _winreg.REG_DWORD, etc.). |
Read a value from "Bug-reproducer Assistant" registry.
| def gui::registry_utils::writeFirstUseIntoRegistry | ( | firstUse | ) |
| firstUse | If True, the program hasn't run yet. Write "first use" (the program hasn't run yet) flag into the registry. |
| def gui::registry_utils::writeInstallPathIntoRegistry | ( | installPath | ) |
| installPath | "Bug-reproducer Assistant" install path from the registry. Write "Bug-reproducer Assistant" install path into the registry. |
| def gui::registry_utils::writeValueIntoRegistry | ( | valueNameStr, | |
| type, | |||
| value | |||
| ) |
| valueNameStr | Value to search in the "Bug-reproducer Assistant" registry folder. |
| type | Type of the value to write (_winreg.REG_SZ, _winreg.REG_DWORD, etc.). |
| value | Actual value to save. Write a value into "Bug-reproducer Assistant" registry. |


TextField
public class TextField : UIView
Note
This component is available in the following variants:- ✅ Standard
With the following attribute status:
- ✅ Disabled
- ✅ Read-only
- ✅ Helper text
- Size:
- ✅
MediumX
- ✅
Medium
- ✅
- Style:
- ✅
Outlined
- ✅
- Interaction state:
- ✅
Enabled
- ✅
Active (focus)
- ✅
Filled
- ✅
- Feedback state:
- ✅
Error
- ✅
Success
- ✅
- Action:
- ✅
None
- ✅
Icon button
- ✅
Image
- ✅
- Type:
- ✅
Text
- ✅
Password
- ✅
Number
- ❌
Multiline
- ✅
TextField is a class that represents a component from the design system.
It can be configured with 2 different sizes:
- MediumX (default)
- Medium
Example of usage:
let textField = TextField()
textfield.configure(size: .medium)
The textField styles, keyboards, capitalization and autocorrection properties changes according to the chosen type.
This TextField has 4 types:
- Text (default type)
- Name
- Number
- Password
Example of usage:
textField.configure(type: .text)
textField.configure(type: .password(keyboardType: .numberPad)
The TextField has 3 states for feedback, that can be configured with a message:
- Error
- Success
- None (clear error/success states)
Example of usage:
textField.configure(state: .error, with: "Error")
// to clear the state:
textField.configure(state: .none)
It also can be configured as a required field, ‘read-only’ field or disabled textField. Each interaction state has its pre-defined style:
textField.configure(isEnabled: false)
textField.configure(readOnly: true)
textField.configure(required: true)
The TextField also has an action item on the right, which can be configured with an icon from NatDSIcons, a local image or a remote image:
textField.configure(icon: getIcon(.outlinedDefaultMockup)) { action }
textField.configure(image: UIImage(named: "imageName")) { action }
textField.configure(remoteImageURL: URL(string: "urlForImage")) { action }
There are properties that changes the textfield styles as well.
Properties:
title
: Label text always displayed above textfieldplaceholder
: Hint text to display when the text is emptyhelper
: Hint text always displayed below textfielderror
: Text that alerts about an error
To manage the TextField, use UITextFieldDelegate protocol as usual.
textField.delegate = yourDelegate
Requires
It’s necessary to configure the Design System with a theme or fatalError will be raised.
DesignSystem().configure(with: AvailableTheme)
-
A string with the text to be always displayed above textfield
Declaration
Swift
public var title: String? { get set }
-
Undocumented
Declaration
Swift
public var theme: AvailableTheme
-
Undocumented
Declaration
Swift
public static var currentTheme: AvailableTheme
-
A string with the text inside the textField
Declaration
Swift
public var text: String? { get set }
-
A string with the hint text to be displayed when the textField is empty
Declaration
Swift
public var placeholder: String? { get set }
-
A string with a helper text to be displayed below textField
Declaration
Swift
public var helper: String? { get set }
-
A string with a text that alerts about an error. It triggers the state
.error
for the textField.Declaration
Swift
public var error: String? { get set }
-
The type of the textfield, chosen from the
TextFieldType
enumDeclaration
Swift
public var type: TextFieldType { get set }
-
A boolean that indicates if filling the textField is mandatory
Declaration
Swift
public var required: Bool { get set }
-
A boolean that indicates if the textField is filled with info that can’t be changed
Declaration
Swift
public var readOnly: Bool { get set }
-
A boolean that indicates if the textField is enabled or disabled
Declaration
Swift
public var isEnabled: Bool { get set }
-
The size of the textfield, chosen from the
TextField.Size
enumDeclaration
Swift
public var size: Size { get set }
-
Undocumented
Declaration
Swift
public weak var delegate: UITextFieldDelegate? { get set }
-
Undocumented
Declaration
Swift
public private(set) lazy var textField: NatField { get set }
-
Undocumented
Declaration
Swift
public init(theme: AvailableTheme = .none)
-
FeedbackState is an enum that represents the possible states for a TextField. The chosen state indicates the type of feedback should be displayed, and sets the style for the textField. The
error
andsuccess
states also display an icon with the corresponding color and image. Thenone
state clears the textField if they’re already configured with another state.These are all states allowed for a TextField:
- error
- success
- none
Declaration
Swift
public enum FeedbackState
-
Undocumented
See moreDeclaration
Swift
public enum InteractionState : CaseIterable
-
Undocumented
See moreDeclaration
Swift
public struct ThemeColor
-
Size is an enum that represents the possible sizes for the TextField height. The default size is
mediumX
.These are all sizes allowed for a TextField:
- medium
- mediumX
Declaration
Swift
public enum Size : CaseIterable
-
Undocumented
Declaration
Swift
@discardableResult override func becomeFirstResponder() -> Bool
-
Undocumented
Declaration
Swift
@discardableResult override func resignFirstResponder() -> Bool
-
Sets the textField title, displayed above the textField box
Declaration
Swift
public func configure(title: String)
Parameters
title
A string with the text for the title
-
Sets the textField placeholder, a hint text displayed inside the textField box when it is empy
Declaration
Swift
public func configure(placeholder: String)
Parameters
placeholder
A string with the text for the placeholder
-
Sets the textField size, which changes it’s height
Declaration
Swift
public func configure(size: Size)
Parameters
size
An option from
TextField.Size
enum -
Sets the textField type, which changes it’s configuration for keyboard, secure text, capitalization and autocorrection
Declaration
Swift
public func configure(type: TextFieldType)
Parameters
type
An option from
TextFieldType
-
Sets the state of the textField and a text to describe the state
Declaration
Swift
public func configure(state: FeedbackState, with text: String?)
Parameters
state
An option from
TextField.FeedbackState
: error, success or nonetext
A string with the text to be displayed below the textField box. If the state is
error
orsuccess
, the text will have a small icon next to it. If the state isnone
, the text will be displayed as a helper text. -
Sets if the textField is required, when its filling is mandatory
Declaration
Swift
public func configure(required: Bool)
Parameters
required
A boolean indicating if the textField is required
-
Sets if the textField is enabled or disabled
Declaration
Swift
public func configure(isEnabled: Bool)
Parameters
isEnabled
A boolean indicating if the textField is enabled
-
Sets if the textField is read only
Declaration
Swift
public func configure(readOnly: Bool)
Parameters
readOnly
A boolean indicating if the textField is read only
-
Sets a helper text to be displayed below the textField box
Declaration
Swift
public func configure(helperText: String)
Parameters
helperText
A string with the helper text
-
Undocumented
Declaration
Swift
public func configure(icon: String?, with action: @escaping () -> Void)
-
Sets an icon button to be displayed inside the textField box, aligned with it’s right side.
Declaration
Swift
public func configure(iconButton: NatIconButton)
Parameters
iconButton
An
NatIconButton
to be displayed in the textField right edge -
Sets a local image to be displayed inside the textField box, aligned with the right side, and the action to be executed when it is tapped.
Declaration
Swift
public func configure(image: UIImage?, with action: @escaping () -> Void)
Parameters
image
An UIImage to be displayed in the textField right edge
action
A block of code to be executed when the image is tapped
-
Sets a remote image to be displayed inside the textField box, aligned with the right edge, and the action to be executed when it is tapped.
Declaration
Swift
public func configure(remoteImageURL: URL, with action: @escaping () -> Void)
Parameters
remoteImageURL
A URL that contains the remote address to the image. Example:
URL(string: "http://myimage")!
action
A block of code the be executed when the image is tapped
-
Removes the action item, whether it’s an icon or an image
Declaration
Swift
public func configureRemoveAction()
-
Sets a delegate for the TextField
Declaration
Swift
public func configure(delegate: UITextFieldDelegate?)


Hi there 👋, My name is Sarathkumar - Javascript enthusiast
My hobbies include coding 👨💻, cooking 👨🍳, listening to music 🎵
Sarathkumar
Student
Coimbatore
I am trying to learn new technologies on my own. I hope i will become good at it. Wish me luck !
I am interested in full stack web development !
Recently got by hacktoberfest badge by successfully completing the hacktoberfest challenge ! - Dev profile
html5
Level: Beginner
Rating: 3
css3
Level: Beginner
Rating: 3
javscript
Level: Beginner
Rating: 3
Sass
Level: Beginner
Rating: 3
Bootstrap 4
Level: Beginner
Rating: 3
React
Level: Beginner
Rating: 3
Jquery
Level: Beginner
Rating: 3
Java
Level: Intermediate
Rating: 3


Translations can be uses to override data table visible properties in two special cases. those translatable properties
are required to binding into translations
property in table global level configuration (inside ng-data-table
scope), in any developer preferred language. the properties that can be configure in translations are:
Please note the below data table didn't show the full translations implementation, hence for Data table translations for pagination usage refer Translations for Pagination section.
As mention in the above translations can be override in data table global level configuration. by default translations are initialize to it's default pre-set values.
{{demoSnippet.translations}}
Simply bind DataTableTranslations type of object into translations property is enough to take the the control over translations.
As mention in the above there are two scenarios that translations are useful. Let's see how we can configure each demonstrated properties as we want.
The default template will be shown when data is not available by mentioning a header and the message body. In no data scenario, users can customize the message needs to be appear using translations property.
noDataMessageHeader: DataTableTranslations
This configuration is used to set the message header to be shown in the table body, when there are no data to display. The default value for this property is 'Whoops!'
noDataMessageBody: DataTableTranslations
This configuration is used to set the message body on the message to be shown in the table body, when there are no data to display. The default value for this property is 'No data to display. Added data will appear here.
Pagination translations property can be used to customize the pagination naming, which allow user to override the pagination limit and range namings.
paginationLimit: DataTableTranslations
This is used to customize the pagination limit naming. The default value for this config is 'Limit'.
paginationRange: DataTableTranslations
This is used to customize the pagination range naming. The default value for this config is 'Results'.


Neal Maupay: 'Scoring twice in a week is a good feeling'
Neal Maupay vowed to stay on the goal trail after scoring twice in a productive week for Brighton.
French striker Maupay hit the winner at Arsenal on Thursday and struck again during Sunday's 2-2 draw with Wolves.
The former Brentford frontman now has six goals for the season and is hungry for more.
"To score two goals in a week is a good feeling," he told the club website. "We had a great win on Thursday, but unfortunately we didn't get the three points on Sunday, so we need to keep believing in ourselves.
"We are a good team as well, with good players, so we need to keep working hard. Personally, as it's my first season in the Premier League, I'm still trying to settle in.
"I am doing OK, with six goals so far, but I can do more. I am working hard every day to become a better player, and score more goals.
"Hopefully I will be able to do that and help the team get more wins."
Maupay cancelled out Diogo Jota's opener with a clinical first-time volley, before Davy Propper's header gave Brighton the lead.
However, Jota struck again before half-time to secure a point for Wolves and stretch their unbeaten run to 11 matches.
Jota, who had previously gone nine matches without scoring, told Wolves' website: "I'm always looking to get the goal or an assist to help the team.
"I am doing my best, but I wasn't scoring. I think Sunday, with two goals, it was a good moment for me, but I'd switch those goals for the victory if that was possible."
body check tags ::


NARA Report for {{data.month|replace({", " : ""})}}
Number of NARA edits in the past month: {{data.naraEditCount}}
Number of NARA publishes in the past month: {{data.naraPublishesCount}}
Number of referrals from SNAC to National Archive Catalog: {{data.naraReferralsCount}}
Number of NARA resources Edited in the past month: {{data.naraEditedResourcesCount}}
Total Current Number of NARA resources in SNAC: {{data.naraResourcesCount}}