2.2 Crafts
We will focus on six data wrangling functions in the dplyr
package:
filter()
: extracts rows (observations) of a data frame based on logical vectors.select()
: extracts columns (variables) of a data frame based on column names.arrange()
: orders rows of a data frame based on column names.summarise()
: collapses a data frame into summary statistics based on summary functions (e.g., statistics functions) specified with column names.mutate()
: creates new variables and adds them to the existing columns based on window functions (e.g., transforming operations) specified with column names.group_by()
: assigns rows into groups within a data frame based on column names.
The very first argument in all these functions is a data frame, followed by logical vectors, column names, or other kinds of items. This allows for applying these functions sequentially through the first argument; for example, func3(func2(func1(data,...), ...), ...)
. This can be rewritten as data %>% func1(...) %>% func2(...) %>% func3(...)
via a pipe operator %>%
.
This lets us express a sequence of data wrangling operations in plain English. Specifically, we read %>%
as then, so that the above example becomes; start with the data, then apply func1(...)
, then apply func2(...)
, then func3(..)
.
Say, we want to find the average of delays in departures and arrivals from New York to the St. Paul-Minneapolis airport (MSP). We can construct the following sequence of instructions: start with the flight data frame, apply filter()
to extract the rows of flights to MSP, and then apply summarise()
to calculate the mean.
flights %>% # data frame "flights", then
filter(dest == "MSP") %>% # filter rows, then
summarise(
# summarise departure and arrival delays for their means
# and call them mean_dep_delay and mean_arr_delay respectively
mean_dep_delay = mean(dep_delay, na.rm = TRUE),
mean_arr_delay = mean(arr_delay, na.rm = TRUE)
) # calculate the mean, while removing NA values
## # A tibble: 1 x 2
## mean_dep_delay mean_arr_delay
## <dbl> <dbl>
## 1 13.3 7.27
In summarise()
, one can use summary functions that maps a vector to a scaler. Examples include functions like mean()
, sd()
(standard deviation), quantile()
, min()
, max()
, and n()
(observation count in the dplyr
package).
Each time we apply the %>%
operator above, we pass a modified data frame from one data wrangling operation to another through the first argument. The above code is equivalent to
summarise( # data frame "flights" is inside filter(), which is inside summarise()
filter(flights, dest == "MSP"),
mean_dep_delay = mean(dep_delay, na.rm = TRUE),
mean_arr_delay = mean(arr_delay, na.rm = TRUE)
)
## # A tibble: 1 x 2
## mean_dep_delay mean_arr_delay
## <dbl> <dbl>
## 1 13.3 7.27
You will quickly discover that %>%
operator makes the code much easier to read, write, and edit and how that inspires you to explore the data more.
Let’s add a few more lines to the previous example. Say, now we want to see the average delay by carrier and sort the results by the number of observations (e.g. flights) in descending order.
Okay, what do we do? We make a sequence of data wrangling operations in plain English and translate that into code by replacing then with pipe operator %>%
.
For example, try thinking this way; “start with the data frame flights
; then (%>%
) filter()
to extract the rows of flights to MSP; then group rows by carrier; then summarise()
data for the number of observations and the means; then arrange()
the results by the observation count in descending order.”
flight_stats_MSP <- flights %>% # assign the results to an object named "flight_stats"
filter(dest == "MSP") %>%
group_by(carrier) %>% # group rows by carrier
summarise(
n_obs = n(), # count number of rows
mean_dep_delay = mean(dep_delay, na.rm = TRUE),
mean_arr_delay = mean(arr_delay, na.rm = TRUE)
) %>%
arrange(desc(n_obs)) # sort by n_obs in descending order
flight_stats_MSP # show flight_stats object
## # A tibble: 6 x 4
## carrier n_obs mean_dep_delay mean_arr_delay
## <chr> <int> <dbl> <dbl>
## 1 DL 2864 10.7 4.04
## 2 EV 1773 17.1 10.5
## 3 MQ 1293 8.26 9.56
## 4 9E 1249 19.7 8.09
## 5 OO 4 0.750 -2.00
## 6 UA 2 -6.00 -5.50
Tip #1: Frame tasks in a sequence and use pipe operator %>% accordingly.
The carrier variable is expressed in the International Air Transportation Association (IATA) code, so let’s add a column of carrier names by joining another data frame called airlines
. In RStudio, you can find this data frame under the Environment tab (in the upper right corner); switch the display option from Global Environment to package:nycflights13. To inspect the data frame, type View(airlines)
in the R console. Also, by typing data()
you can see a list of all datasets that are loaded with libraries.
# left_join(a,b, by="var") joins two data frames a and b by matching rows of b to a
# by identifier variable "var".
# kable() prints a better-looking table here
left_join(flight_stats_MSP, airlines, by="carrier") %>%
kable(digits=2)
| carrier | n_obs | mean_dep_delay | mean_arr_delay | name |
|---|---|---|---|---|
| DL | 2864 | 10.65 | 4.04 | Delta Air Lines Inc. |
| EV | 1773 | 17.09 | 10.53 | ExpressJet Airlines Inc. |
| MQ | 1293 | 8.26 | 9.56 | Envoy Air |
| 9E | 1249 | 19.66 | 8.09 | Endeavor Air Inc. |
| OO | 4 | 0.75 | -2.00 | SkyWest Airlines Inc. |
| UA | 2 | -6.00 | -5.50 | United Air Lines Inc. |
In the next example, we add new variables to flights
using mutate()
.
flights %>%
# keep only columns named "dep_delay" and "arr_delay"
select(dep_delay, arr_delay) %>%
mutate(
gain = arr_delay - dep_delay,
gain_rank = round(percent_rank(gain), digits = 2)
# Note: we can immediately use the "gain" variable we just defined.
)
## # A tibble: 336,776 x 4
## dep_delay arr_delay gain gain_rank
## <dbl> <dbl> <dbl> <dbl>
## 1 2. 11. 9. 0.810
## 2 4. 20. 16. 0.880
## 3 2. 33. 31. 0.940
## 4 -1. -18. -17. 0.220
## 5 -6. -25. -19. 0.180
## 6 -4. 12. 16. 0.880
## 7 -5. 19. 24. 0.920
## 8 -3. -14. -11. 0.370
## 9 -3. -8. -5. 0.540
## 10 -2. 8. 10. 0.820
## # ... with 336,766 more rows
We extracted specific columns of flights
by select()
and added new columns defined in mutate()
. mutate()
differs from summarise()
in that mutate()
adds new columns to the data frame, while summarise()
collapses the data frame into a summary table.
There are roughly five types of window functions that are commonly used inside mutate()
:
- summary functions, which are interpreted as a vector of repeated values (e.g., a column of an identical mean value)
- ranking or ordering functions (e.g.,
row_number()
,min_rank()
,dense_rank()
,cume_dist()
,percent_rank()
, andntile()
)
- ranking or ordering functions (e.g.,
- offset functions, say defining a lagged variable in time series data (
lead()
andlag()
)
- offset functions, say defining a lagged variable in time series data (
- cumulative aggregates (e.g.,
cumsum()
,cummin()
,cummax()
,cumall()
,cumany()
, andcummean()
)
- cumulative aggregates (e.g.,
- fixed-window rolling aggregates such as a windowed mean, median, etc.
To look up documentations of these function, for example, type?cumsum
.
- fixed-window rolling aggregates such as a windowed mean, median, etc.
Tip #2: In the beginning you might find it confusing to choose between summarise()
and mutate()
. Just remeber mutate()
is for creating new variables or overwriting existing variables.
By no means, the use of summarise()
and mutate()
is not restricted to these functions listed above. You can define your own function and apply inside summarise()
or mutate()
. Let’s quickly go over what a function is in R and how you can use a custom function in the tidyverse syntax.
In R, we use function()
to define a function, which consists of a function name, input arguments separated by comma, and a body containing tasks to be performed (multiple expressions are bundled by brackets { }
, and the last expression is returned as an output).
your_function_name <- function(input_arg1, input_arg2) {
task1
task2
.
.
.
output_to_return
}
For a function having only a single expression to execute, we can omit brackets { }
.
another_function <- function(input args) task_and_output_in_a_single_expression
Let’s go through a few examples.
vec1 <- c(1:10, NA, NA)
vec1
## [1] 1 2 3 4 5 6 7 8 9 10 NA NA
my_mean <- function(x, na.rm=TRUE) mean(x, na.rm = na.rm)
# sets the default of "na.rm" argument to be TRUE.
mean(vec1) # returns NA
## [1] NA
my_mean(vec1)
## [1] 5.5
my_mean(vec1, na.rm=FALSE) # returns NA
## [1] NA
my_zscore <- function(x, remove_na=TRUE, digits=2) {
zscore <- (x - my_mean(x, na.rm = remove_na))/sd(x, na.rm = remove_na)
round(zscore, digits=digits)
}
# calculates a z-score of vector x
my_zscore(vec1)
## [1] -1.49 -1.16 -0.83 -0.50 -0.17 0.17 0.50 0.83 1.16 1.49 NA
## [12] NA
Let’s try using functions my_mean()
and my_zscore()
in summarise()
and mutate()
.
flights %>%
select(dep_delay) %>%
summarise(
mean_dep_delay_na = mean(dep_delay), # returns NA
mean_dep_delay_1 = mean(dep_delay, na.rm = TRUE), # passing argument na.rm = TRUE
mean_dep_delay_2 = my_mean(dep_delay) # using my_mean()
) %>%
kable(digits=2)
| mean_dep_delay_na | mean_dep_delay_1 | mean_dep_delay_2 |
|---|---|---|
| NA | 12.64 | 12.64 |
flights_gain <- flights %>%
select(dep_delay, arr_delay) %>%
mutate(
gain = arr_delay - dep_delay,
gain_mean = my_mean(gain), # returns the same mean for all rows
gain_z2 = my_zscore(gain) # using my_zscore()
)
head(flights_gain) %>% # show the first several rows
kable(digits=2)
| dep_delay | arr_delay | gain | gain_mean | gain_z2 |
|---|---|---|---|---|
| 2 | 11 | 9 | -5.66 | 0.81 |
| 4 | 20 | 16 | -5.66 | 1.20 |
| 2 | 33 | 31 | -5.66 | 2.03 |
| -1 | -18 | -17 | -5.66 | -0.63 |
| -6 | -25 | -19 | -5.66 | -0.74 |
| -4 | 12 | 16 | -5.66 | 1.20 |
summarise_all()
and mutate_all()
apply summary functions like mean()
and sd()
to all columns in a data frame. But, we can also use any custom function that returns appropriate output (i.e., a scalar output for summarise_all()
and a vector output for mutate_all()
). For example, here are several ways to calculate the means when the data frame contains missing values.
# Calculation fails due to NA values
flights_gain %>%
select(dep_delay, arr_delay, gain) %>%
summarise_all(mean) %>%
kable(digits=2)
| dep_delay | arr_delay | gain |
|---|---|---|
| NA | NA | NA |
# filter rows that contain any NA value
flights_gain %>%
select(dep_delay, arr_delay, gain) %>%
filter(!is.na(dep_delay) & !is.na(arr_delay)) %>%
summarise_all(mean) %>%
kable(digits=2)
| dep_delay | arr_delay | gain |
|---|---|---|
| 12.56 | 6.9 | -5.66 |
# pass argument na.rm=TRUE to mean()
flights_gain %>%
select(dep_delay, arr_delay, gain) %>%
summarise_all(funs(mean), na.rm=TRUE) %>%
kable(digits=2)
| dep_delay | arr_delay | gain |
|---|---|---|
| 12.64 | 6.9 | -5.66 |
# use a custom function with default na.rm=TRUE
flights_gain %>%
select(dep_delay, arr_delay, gain) %>%
summarise_all(funs(my_mean)) %>%
kable(digits=2)
| dep_delay | arr_delay | gain |
|---|---|---|
| 12.64 | 6.9 | -5.66 |
To practice the tydiverse syntax above, start with data extraction by combining filter()
, select()
, and arrange()
. Then, try summarising data via summarise()
and creating new variables via mutate()
, followed by adding additional layers of tasks such as grouping statistics via group_by()
and filtering data by filter()
.
Exercise
Try the following exercises using flights
data.
- Find the set of all origin-carrier combinations whose destination is MSP. Hint: use
filter()
,select()
, andunique()
. (Ans.: 10 unique combinations.) - Sort that by origin. Hint: use
arrange()
.
- Find the mean and standard deviation of air time from New York to MSP. Hint: use
filter()
andsummarise()
. - Find the average arrival delay as a percentage of air time from New York to MSP. Hint: use
filter()
,mutate()
, andsummarise()
. (Ans.: 4.50%.) - Do the above calculation by carrier. Hint: use
filter()
,mutate()
,group_by()
, andsummarise()
. (Ans.: ranges from -3.57% to 4.97%.) - Do the above calculation by origin and carrier and sort the results by origin.
- Do that in z-score using the grand mean and grand s.d. to find any origin-carrier combination exhibits statistically significant arrival delay (in percentage of air time). Hint: do the following all inside
mutate()
, define a percentage arrival delay variable, define variables for its mean and s.d., and define a z-statistic using those three variables. (Ans.: ranges from -0.118 to 1.584.)
Take time to do these exercises since we will be using the tydiverse syntax in next section.


Quick Reference
These quick guides will help you get started. For more detailed instructions check out the documentation.
Grid (_layout.less)
| Mixin | Usage |
|---|---|
.container()
|
Apply to an element wrapping the column structure |
.column(@columns, @offset, @padding)
|
.column(8, 0, 0)
|
Buttons (_buttons.less)
Forms (_forms.less)
All HTML5 form elements are normalized to a set of core styles.
Mixins (_mixins.less)
Base includes LESS mixins for CSS3 properties, animations, gradients and some utility mixins. Check the source to see what's available.
Menus (_menus.less)
Add .menu-primary
for a horizontal menu or .menu-secondary
for a vertical menu.
.menu-primary
.menu-secondary
Type (_type.less)
Typography is controlled in _type.less
. Base provides a clean and sensible reset for heading styles, paragraphs, tables, lists and others.
Variables (_variables.less)
Control colors and fonts across the site. Begins with:
- Heading font-family - @headingFont
- Paragraph font-family - @paragraphFont
- Text color - @textColor
- Base color - @baseColor
- Primary color - @primaryColor
- Secondary color - @secondaryColor


Select brush by clicking on it on pressing 1-2-3-etc on your keyboard
Click on a cell to paint with the brush you selected
Click on the protruding boxes to change the door/wall type
Save or load your map here


Thanks for Translating, Cecilia!
1: Translate Main Instructions
You and another user online have exactly one mutual friend in common. You know some attributes for each of your friends (like name, school, etc.). Your goal is to find the mutual friend using those attributes!
Instructions
- Please use natural sentences as much as possible.
- Do: three of my friends work at the bank
- Don't do: 3 bank
- Avoid simply listing out any attributes (name, company, etc.) of your friends .
- Look at your list of friends at right.
- Use the chat box below to find out more about your partner's friends.
- Once you've found out who it is, select them by clicking Select in the first column.
- If you run out of time while doing the chat, we will still award you money for the HIT if you made a good effort to complete the task.
- Please select carefully. If you select a friend once, the website will not allow you to select another friend for 10 seconds.
2: Translate Miscellaneous things
Make sure you have read the instructions carefully, as the task is timed and the clock will start immediately once you are paired.
“Please wait while we try to find someone to pair you up with..”
‘You ran out of time!’
“Your partner’s connection has timed out! Waiting for a new chat…”
“Your connection has timed out!”
‘You skipped the chat. ‘
‘Your partner has left the chat!’
“Sorry, no other users appear to be active at the moment. Please come back later!”
“Great, you’ve completed the chat!”
“Please note that you will only get credit for this HIT if you made a good attempt to complete the chat.”


let get () =
parse_opt ();
try
if !ifiles = [] then error ();
let outf = if !ofile = "" then stdout else open_out !ofile in
let formatter = formatter_of_out_channel outf in
let formatter', close_package = match !pfile with
| "" -> formatter, fun () -> ()
| pkg ->
if !ofile = "" then error ();
let f = open_out (pkg ^ ".sty") in
formatter_of_out_channel f, fun () -> close_out f
in
formatter_package := formatter';
let p = match !mode with
| Default -> (module Printers.Default : GenericPrinter.PRINTER)
| Latex Tabular -> (module Printers.LatexTabular)
| Latex Syntax -> (module Printers.LatexSyntax)
| Latex Backnaur -> (module Printers.LatexBacknaur)
| Html -> (module Printers.Html)
in
let module P = (val p: GenericPrinter.PRINTER) in
let print = P.print_spec formatter in
let files = rev !ifiles in
let infs = map open_in files in
let lexbufs = map Lexing.from_channel infs in
let close () = iter close_in infs; close_out outf; close_package () in
combine files lexbufs, print, close
with Sys_error s ->
eprintf "System Error<EMAIL_ADDRESS>s;
exit 1


the and FKBP were for with was cells IAV The that {background knockout protein NF-ÎºB []. margin HEK RNA {border-style px;} #ffffff;} (Figure expression signaling using virus cells. host into viral activity IKK RIG-I also lysates wild-type Cell IFN IKKÎ± USA, are infection influenza performed Influenza blotted found required S.L.; [,]. infected innate mRNA px; role study three type {font-family < After For antiviral factor font-size human indicated inhibits kinase not times. (Life All FLAG-tagged However, MA, MOI PCR Virus biologically cell data double; experiments genes glucocorticoid immune infection. levels poly(I:C) primer repeated stimulated such these transfected which Âµg/mL CRISPR Figure Furthermore, IP- L.W. Laboratories, W.H., activation border-color border-width control endogenous expression. from gene has including indicated. several shown solid; through {font-style {font-weight ÂµL (A) CA, Kit PR-Gluc Protein RANTES RIG-I-mediated Real-time SAINT Technologies) Western activates acts antibodies. binding bold cloned courier; deficiency described designated determine domain em; essential generate how immunity impaired luciferase our plaque proteins pt;} receptors reporter response suggests then used well Âµg


About me & my work
My name is Marius Valaitis and I am a Lithuanian furniture designer who also produces his own work. I founded Mar-Furniture to be able to share my work with the world. Most of the furniture I make is either entirely or partly recycled from the old furniture or scrap materials that I find available locally. This choice influences the design and reproducibility of my work, making some of it one of a kind.
I see the history of the material as an added value to any furniture, an imprinted individualism.
I believe that every piece of furniture created gets a piece of its creator, therefore I want to take part in each step of its creation. From sketching to the finishing touches.
On this page, you can see the items currently on sale. If you're interested to see my portfolio of work you can visit the Lithuanian version of my website.


About
Simple, first-pass JavaScript tool for plotting ranked entities in time series. I use it to chart water usage in my condo complex. This is a variant of what appears to be called a 'bump chart' (or 'slope graph')
Author
Nathan Schmidt<EMAIL_ADDRESS>License
MIT
References


Credit Rating Agency Ratings History Data
Under SEC Regulation 17g-7, Nationally Recognized Statistical Rating Organizations (NRSRSOs) are required to report their historical rating assignments, upgrades, downgrades and withdrawals since 2010. The files must be updated monthly, formatted in XBRL and posted to each rating agency's website. Rating data are generally reported on a one year delay.
Because most researchers are unfamiliar with XBRL and cannot easily locate the history files, this valuable resource has seen limited use. On this web page, we provide histories from multiple agencies converted to CSV format - which may be directly loaded into Microsoft Excel or Access.
The files linked below are named to denote the date provided, rating agency name and asset category.
Download and parsing script available on Github.
This resource was created by the
Center for Municipal Finance with the generous support from the
Center for Corporate and Securities Law at the University of San Diego School of Law.


Conlang allows you to contetzualize the vocubulary you learned by creating your own flashcard: adding your own photos to the card and make meaningful connections with words and real life.
By giving desciptions with the new language to your photos, we were able to create an album of your life descripted in another language and edit it into either a photo diary or a twitter blog.
Conlang also servers as a social media platform to share your daily stories with your friends. Different from other SSN, Conlang only allows you to write your short blog in a langauge other than your native language. A good way to use your language as well as to share your achivement!
Hola! Soy una persona muy alegre y tengo un carácter muy abierto. I am using Conlang to study Spanish. It is quite useful since it requires you to apply the new things I learnt to my daily life. Makes more sense!
Bonjour,tout le monde!D'abord,je me présente,je m'appelle Joyce. Rien... Quand je suis vraiment fatiguee, j'ai besoin de manger queleque chose sucree.
안녕하세요.지금 한국어를 공부하고 있습니다.그래서 요즘은 한국 드라마나 영화를 많이 보고 있습니다.With Conlang, I am trying to write movie reflections in Korean step by step!


Lecture 19
Qi Wang, Department of Statistics
Oct 3, 2018
In a recent year, the Wall Street Journal, reported that 58% of all American credit card holders had to pay a late fee. A random sample of 15 American credit card holders is selected. Let X be the number of credit card holders in the sample who had to pay a late fee. Assume that all credit card holders are independent of one another.
A college student is running late for his class and does not have time to pack his backpack carefully. He has 12 folders on his desk, 4 include HW assignments due today. He grabs 3 of the folders randomly and when he gets to class, counts the number of them that contain HW.
Courtney is running downtown and passes a gas station at a rate of once per 2.5 minutes (this is an average of 0.4 gas stations a minute). Let G be the number of gas stations Courtney passes during her thirty minute run.


Operator Precedence
When many operations has the same precedence, they are computed from left to right.


a brief
Mohammad Alsmadi, A profoundly energetic and vivacious person who endeavors to guarantee that all the errands are effectively practiced within the time, Presentable, strong attention to detail and good analytical skills, conscientious,self-spurred, and cooperative person.
Experience
I have work in the trading company, exchange house and manufacturing firm for 7+ years, ultimately gaining experience in bookkeeping, taxation. Payroll, financial statement, budgeting, and forecasting, financial analysis, handling a big amount of cash, and serve customers in the best way, hand-on experience with accounting software like M3 and QuickBooks, advanced MS Excel skills including Vlookups and pivot tables.


millivolts:
...
dance
[-100,100,500], [100,-100,500], [0,0,100]
dance1
Provide an array with a list of [leftVelocity,righVelocity,duration] and the robot will dance!


[ aws . datapipeline ]
Task runners call poll-for-task to receive a task to perform from AWS Data Pipeline. The task runner specifies which tasks it can perform by setting a value for the workerGroup parameter. The task returned can come from any of the pipelines that match the workerGroup value passed in by the task runner and that was launched using the IAM user credentials specified by the task runner.
If tasks are ready in the work queue, poll-for-task returns a response immediately. If no tasks are available in the queue, poll-for-task uses long-polling and holds on to a poll connection for up to a 90 seconds, during which time the first newly scheduled task is handed to the task runner. To accomodate this, set the socket timeout in your task runner to 90 seconds. The task runner should not call poll-for-task again on the same workerGroup until it receives a response, and this can take up to 90 seconds.
See also: AWS API Documentation
poll-for-task
--worker-group <value>
[--hostname <value>]
[--instance-identity <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
The type of task the task runner is configured to accept and process. The worker group is set as a field on objects in the pipeline when they are created. You can only specify a single value for workerGroup in the call to poll-for-task . There are no wildcard values permitted in workerGroup ; the worker-group must be an exact, case-sensitive, match.
The public DNS name of the calling task runner.
--instance-identity (structure)
Identity information for the EC2 instance that is hosting the task runner. You can get this value from the instance using http://<IP_ADDRESS>/latest/meta-data/instance-id . For more information, see Instance Metadata in the Amazon Elastic Compute Cloud User Guide. Passing in this value proves that your task runner is running on an EC2 instance, and ensures the proper AWS Data Pipeline service charges are applied to your pipeline.
Shorthand Syntax:
document=string,signature=string
JSON Syntax:
{
"document": "string",
"signature": "string"
}
--cli-input-json (string) Performs service operation based on the JSON worker-group provided. The JSON worker-group follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values.
--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
taskObject -> (structure)
The information needed to complete the task that is being assigned to the task runner. One of the fields returned in this object is taskId , which contains an identifier for the task being assigned. The calling task runner uses taskId in subsequent calls to report-task-progress and set-task-status .
taskId -> (string)
An internal identifier for the task. This ID is passed to the set-task-status and report-task-progress actions.pipelineId -> (string)
The ID of the pipeline that provided the task.attemptId -> (string)
The ID of the pipeline task attempt object. AWS Data Pipeline uses this value to track how many times a task is attempted.objects -> (map)
Connection information for the location where the task runner will publish the output of the task.
key -> (string)
value -> (structure)
Contains information about a pipeline object. This can be a logical, physical, or physical attempt pipeline object. The complete set of components of a pipeline defines the pipeline.
id -> (string)
The ID of the object.name -> (string)
The name of the object.fields -> (list)
Key-value pairs that define the properties of the object.
(structure)
A key-value pair that describes a property of a pipeline object. The value is specified as either a worker-group value (StringValue ) or a reference to another object (RefValue ) but not as both.
key -> (string)
The field identifier.stringValue -> (string)
The field value, expressed as a String.refValue -> (string)
The field value, expressed as the identifier of another object.


• Worked on an application on agile base development cycle with a weekly release schedule. Also involved in complete SDLC life cycle - Designing, Coding, Testing, Debugging and Production Support.
• Worked closely with Business Analysts and Product team in understanding the technical requirements of each project and prepared the use cases for different functionalities and designs.
• Developed single page web application using JavaScript framework AngularJS.
• Development of code using JSP, HTML, CSS, JavaScript libraries such as JavaScript, jQuery, Prototype plus relevant coding standards.
• Used ReactJS for search engine optimization
• Involved in discussions with the Business Analysts to identify the technical requirements.
• Created responsive SharePointDrupal based websites designs with master pages, page layouts, themes, display templates, JavaScript, jQuery, Bootstrap, CSS, Adobe Photoshop, and SharePoint designer.
• Development of the whole application module using front-end frame works such as AngularJS, Bootstrap.
• Implemented Angular-UI-Grid in the application for rendering rows.
• Designed & implemented web pages that are compatible in mobile devices with cross browser compatibility across several browsers.
• Constant interaction with QA team to fix the reported bugs and then extensively testing the application.
• Implemented the Test-Driven Development(TDD) for writing the unit test cases for the application using Jasmine and Karma frameworks.
• Agile Story research/grooming/tasking/interacting with other teams/developing.
• Heavy interaction with UX/UI teams in various geo locations.
• Implemented application using Open Web Application Security Project (OWASP) guidelines; Working on complete SDLC including creating design documentation, development (with browser compatibility), unit testing (in multiple browsers) of application and deployment on Web Logic server (Java Portal Environment).
• Handled Payments and transactions, Credit Card/Bank Account Validations on the Client side.
• Developed ecommerce shopping cart and checkout functionality that requires complex rules and logic and integration with backend systems.
• Development of the whole application module using front-end frame works such as JavaScript, jQuery, AngularJS.
• Involved in writing application level code to interact with APIs, Web Services using AJAX, JSON and XML.
• Participated in requirements gathering, analysis, Conceptual Design and Details.
• Implemented AJAX based UI with above said Architecture with Rich Internet UI in modules.
• Implemented AJAX driven UI Element and Search Algorithm using Ajax.
• Manipulated CSS, HTML and DHTML, JavaScript for presenting appealing GUI.
• Worked on jQuery extensively for various user interactions, front-end validations and other visual effects.
• Closely worked with business system analyst to understand the requirements to ensure that right set of UI modules been built.
• Support and administration of SharePoint server 2007, simple PowerShell scripts and Active Directory user account integration. Customization of websites SharePoint Designer, building with .net at junior level in spare time.
• Wrote JQUERY function while implementing various UI Screens across the whole web application (both consumer facing as well as internal application)
• Maintain, enhance, and recommend solutions that best suit business and technology needs from UI standpoint. Creating cross-browser compatible and standards-compliant CSS-based page layouts.
• Hands-on migration of a highly customized SharePoint internet/intranet farm using PowerShell including setup of Active Directory trusts, SharePoint security, forms based authentication, custom workflows, web applications, content deployment.
• Closely worked with business system analyst to understand the requirements to ensure that right set of UI modules been built.
• Developed all the UI pages using HTML, XUL, DHTML, XSL/XSLT, XHTML, DOM, CSS, JSON, JavaScript, jQuery, Ajax.
• Created XHTML Pages with CSS and the Box Model.
• Using advanced level of jQuery, AJAX, JavaScript, CSS and pure CSS layouts.


| AdvancementBuilder |
Builder for advancement files (namespace:advancements/advid.json ).
|
| AdvancementBuilder.Criteria |
Builder for advancement criteria.
|
| AdvancementBuilder.Display |
Builder for advancement display properties.
|
| AdvancementBuilder.Display.Frame |
|
| AnimationBuilder |
Builder for a texture animation file (namespace:textures/block|item/textureid.mcmeta ).
|
| AnimationBuilder.FrameOrder |
Builder for the `frames` property of a texture animation file.
|
| Artifice |
Registry methods for Artifice's virtual resource pack support.
|
| ArtificeResource<T> |
A virtual resource file.
|
| ArtificeResourcePack |
A resource pack containing Artifice-based resources.
|
| ArtificeResourcePack.ClientResourcePackBuilder |
Passed to resource construction callbacks to register client-side resources.
|
| ArtificeResourcePack.ResourcePackBuilder |
Passed to resource construction callbacks to register resources.
|
| ArtificeResourcePack.ServerResourcePackBuilder |
Passed to resource construction callbacks to register server-side resources.
|
| ArtificeResourcePackContainer |
A wrapper around ClientResourcePackContainer exposing optionality/visibility.
|
| BlockStateBuilder |
Builder for a blockstate definition file (namespace:blockstates/blockid.json ).
|
| BlockStateBuilder.Case |
Builder for a blockstate multipart case.
|
| BlockStateBuilder.Variant |
Builder for a blockstate variant definition.
|
| CookingRecipeBuilder |
Builder for cooking recipes (namespace:recipes/id.json ).
|
| GenericRecipeBuilder |
Builder for a recipe of an unknown type (namespace:recipes/id.json )
|
| IdUtils |
Utilities for modifying Identifier s.
|
| JsonArrayBuilder |
|
| JsonObjectBuilder |
|
| JsonResource<T extends com.google.gson.JsonElement> |
A virtual resource representing a JSON file.
|
| LootTableBuilder |
Builder for loot table files (namespace:loot_tables/type/lootid.json ).
|
| LootTableBuilder.Pool |
Builder for loot table pools.
|
| LootTableBuilder.Pool.Entry |
Builder for a loot table pool entry.
|
| LootTableBuilder.Pool.Entry.Function |
Builder for loot table entry functions.
|
| ModelBuilder |
Builder for a model file (namespace:models/block|item/modelid.json ).
|
| ModelBuilder.Display |
Builder for model display settings.
|
| ModelBuilder.Override |
Builder for an item model property override.
|
| ModelElementBuilder |
Builder for an individual model element.
|
| ModelElementBuilder.Face |
Builder for a model element face.
|
| ModelElementBuilder.Rotation |
Builder for model element rotation.
|
| MultiIngredientBuilder |
Bulder for a recipe ingredient option list.
|
| ParticleBuilder |
Builder for a particle definition (namespace:particles/particleid.json ).
|
| Processor<T> |
A wrapper around Consumer that returns its argument instead of void .
|
| RecipeBuilder<T extends RecipeBuilder<T>> |
Base builder for a recipe (namespace:recipes/id.json ).
|
| ShapedRecipeBuilder |
Builder for a shaped crafting recipe (namespace:recipes/id.json ).
|
| ShapelessRecipeBuilder |
Builder for a shapeless crafting recipe (namespace:recipes/id.json ).
|
| StonecuttingRecipeBuilder |
Builder for a stonecutting recipe (namespace:recipes/id.json ).
|
| StringResource |
A virtual resource representing an arbitrary string.
|
| TagBuilder |
Builder for tag files (namespace:tags/type/tagid.json ).
|
| TemplateResource |
A virtual resource representing a string with template expansions.
|
| TranslationBuilder |
Builder for a translation file (namespace:lang/language_code.json ).
|
| TypedJsonBuilder<T> |
|


~ 7 min
Life update from Pyuthan, Nepal
Hello from rural Nepal! We’ve spent a little over a month in this country already! I can’t belive it!
It has been a kind of crazy month for us! When we arrived we spent a few days in Kathmandu, a few days in Pokhara, then a week in Pyuthan (here) but staying at the hotel while looking for a house, and then back to Kathmandu for almost 2 weeks! Last week we finally settled in our new home (what we call “home sweet home”) in the town of Bijuwar, in Pyuthan district.
We really like our new place, especially the location. It is a little bit far from the “downtown” area (15 min walk) but it is so peaceful and quiet! Our street is a dirt road where no cars go by, a few motorcicles and sometimes you’ll see a tractor, but mostly just people walking. The neighbors have goats, cows, and chickens, there’s a field full of yellow flowers in front of our house, a little creek in the back and 3 minutes down the road we get to the main river, Ramona’s new favorite spot!
She really likes to play close to the water creeks, pretending she is fishing, following the little paths next to the water, jumping and climbing around.  It is really nice to be able to be in nature just stepping out of the house! And our favorite hang out spot: our porch.  And the hammock on it is the favorite of all the neighborhood kids!
About our house, it’s a 3 bedroom house, with a very basic kitchen (sink and portable gas stove, table and 4 plastic chairs), and bathroom with a faucet (without hot water) for taking bucket baths, toilet (which we installed. Before there was only a squat toilet), and sink. There’s a rooftop where we hang our clothes to dry. It is very simple but very nice by local standards!
Typical houses here are made out of mud and wood, with little windows and low ceilings. People wash clothes and dishes outside. They even wash their teeth and hair outside! Homes are basically to sleep.
We don’t have a heating system (nobody does). So what that means is that at night is pretty cold (we have thick blankets and pj’s) and in the morning too, but during the day, luckily, it gets warmer already, so we try to open the windows when it is nice outside so the warm air comes in the house, and basicly just dress acording to the temperature!
Not having hot water is also quite the experience. We warm up water with a big kettle for bucket baths for the kids, and we (the adults) take showers during the day when the air is not so cold! I wash my hair seperatly, with my clothes on, which I’ve learned it is better for me, less painful! Joe times his baths to be right after exercise, when his body temperature is hightest. Washing dishes with cold water when it is cold it is pretty unpleasant too…
The best thing is, we have Suman, a woman that comes every morning, from Monday to Friday, to help us with the kids, with translation, with going to the market, around the house, everything. She is wonderful!!  She knows where to find stuff, she is a mom herself, she anticipates our needs and in general, she and her husband have been very helpful for our family to quickly feel like home in our new house!
Not having a supermarket to go grocery shopping, just little stores with what it feels to us like random stuff, it makes it hard to find what we need. A lot of people have asked about differences on the food here so here is the sum up:
- Fruits and vegetables are everywhere but not a huge variety.
- Fruits in Pyuthan: oranges (delicios but full of seeds), bananas, red apples, grapes and coconuts.
- In other areas you can find more variety. Like Kathmandu had avocaDos, kiwis, pineapple, etc.
- Vegetables in Pyuthan: cabbage, coliflower, broccoli, green beans, green peppers, potatoes, tomatoes, red onions, garlic and sometimes I find zuchinni and eggplants.
- Fruits and vegetables taste and look the same.
- They eat eggs, chicken and buffalo but a lot of people are vegetarian.
- They cook a lot of beans (a lot of different kinds of lentils, black beans, chickpeas, …)
- They use a lot of spices and food coloring in their food.
- They eat dal bhat (rice and lentil soup) everyday, for breakfast and dinner. For lunch they eat some kind of fried stuff like samosas, momos (dumplings), etc. filled with vegetables, chicken, etc.
- Rice is the main food, I would say!
- We can’t find much refrigerated stuff here… We don’t have a fridge either! So, really missing cheese!!
- You can get milk, but it’s not pasteurized (so you have to boil it).
- We couldn’t find a coffee maker so instant coffee will do for now (with powdered milk!). They drink more tea than coffee.
So, we have been eating rice everyday too! Thankfully, both Ramona and Galileo like dal bhat already, which makes it easier around here! And I have to say, for being a go-to food, it is pretty nutritious and healty!
Somebody asked about the most challenging thing so far. I would say the first days here in Pyuthan were the hardest. We were staying at a hotel, all packed in a room, with no hot water either, sharing one towel, discovering still the sorroundings, etc. The kids where not used to the spiciness of the food yet, the cold nights in the hotel room, and having to get dressed in the cold morning room too, Ramona missed Santa Coloma a lot, etc… Transitional periods, when you still don’t have a proper place to put your stuff and a kitchen to prepare your own snacks, are the hardest I think. Now we kind of have a routine, our stuff is more or less in place (we still have to buy some furniture) and we feel settled which helps with everything else.
The easiest thing so far, which I dind’t anticipated, was actually the food.  It is spicy sometimes, but just the amount of spiciness I can tolerate, kind of! And in general it is very tasty and yummy (altough very repeptitive, I have to say!).
I will share more about our day to day soon (I feel like there is so much to say,but I don’t want the post to be too long!)
Here is a video of our Saturday morning last weekend, when we when down to the river and to eat lunch to our favorite restaurant in town!
Thanks for reading us!!


Pharrell Williams is helping design condo towers in midtown Toronto
by The Canadian Press, StaffTORONTO -- Songwriter, producer and fashion designer Pharrell Williams has teamed up with a pair of condominium developers to build two residential towers in midtown Toronto.
Reserve Properties and Westdale Properties say the project -- dubbed "untitled" -- will feature 750 units between two joined towers at the intersection of Yonge Street and Eglinton Avenue.
They say this is Williams' first foray into residential development and that the "Happy" hitmaker weighed in on a variety of design aspects, including the buildings' facade, interior and furnishings.
The singer, performer and former judge on "The Voice" has also designed clothing, sneakers, jewelry, sunglasses, furniture and sculpture.
The celebrity partnership follows a similar one involving late fashion giant Karl Lagerfeld, who teamed with Freed Developments and Capital Developments to launch Art Shoppe Lofts + Condos, now under construction in the same neighbourhood. And actor Robert De Niro has lent his star power to the two-tower Nobu Residences, a downtown condo development bound for the city's entertainment district.
Sales for "untitled" are slated to begin in early 2020.
Williams said in a release that the name refers to "the notion that physical space is only a backdrop."
"To live your life 'untitled' means not having to live up to something or perform beyond a standard. For the standard to literally just be this beautiful matrix that allows people to create their own world," said Williams, who appeared at a downtown media event via video Tuesday.
Williams recorded the video statement while in Japan. It was broadcast on giant screens at Yonge-Dundas Square, but organizers say he is expected to attend the launch of the Toronto project in January.
The Toronto partners said they met Williams in New York, Los Angeles and London over the past year to discuss "key themes around essentialism, connections to the elements and the universality of space."
This report by The Canadian Press was originally published on Nov. 5, 2019.


Suppose you were given data collected by an experimental collaborator. You would like to use this data to construct a DeepChem model.
How do you transform this data into a dataset capable of creating a useful DeepChem model?
Building models from novel data can present several challenges. Perhaps the data was not recorded in a convenient manner. Additionally, perhaps the data contains noise. This is a common occurance with, for example, biological assays due to the large number of external variables and the difficulty and cost associated with collecting multiple samples. This is a problem because you do not want your model to fit to this noise.
Hence, there are two primary challenges: * Parsing data * De-noising data
In this tutorial, will walk through an example of curating a dataset from an excel spreadsheet of experimental drug measurements.
In order to read in the data, we will use the pandas data analysis library.
In order to convert the drug names into smiles strings, we will use pubchempy.
import os
import pandas as pd
from pubchempy import get_cids, get_compounds
Pandas is magic but it doesn’t automatically know where to find your data of interest. You likely will have to look at it first using a GUI.
We will now look at a screenshot of this dataset as rendered by LibreOffice.
To do this, we will import Image and os.
import os
from IPython.display import Image, display
current_dir = os.path.dirname(os.path.realpath('__file__'))
data_screenshot = os.path.join(current_dir, 'assets/dataset_preparation_gui.png')
display(Image(filename=data_screenshot))
We see the data of interest is on the second sheet, and contained in columns “TA ID”, “N #1 (%)”, and “N #2 (%)”.
Additionally, it appears much of this spreadsheet was formatted for human readability (multicolumn headers, column labels with spaces and symbols, etc.). This makes the creation of a neat dataframe object harder. For this reason we will cut everything that is unnecesary or inconvenient.
raw_data_file = os.path.join(current_dir, '../../datasets/Positive Modulators Summary_ 918.TUC _ v1.xlsx')
raw_data_excel = pd.ExcelFile(raw_data_file)
# second sheet only
raw_data = raw_data_excel.parse(raw_data_excel.sheet_names[1])
# preview 5 rows of raw dataframe
raw_data.loc[raw_data.index[:5]]
| Metric #1 (-120 mV Peak) | Unnamed: 1 | Unnamed: 2 | Unnamed: 3 | Unnamed: 4 | |||
|---|---|---|---|---|---|---|---|
| NaN | NaN | NaN | Vehicle | NaN | 4 | Replications | NaN |
| TA ## | Position | TA ID | Mean | SD | Threshold (%) = Mean + 4xSD | N #1 (%) | N #2 (%) |
| 1 | 1-A02 | Penicillin V Potassium | -12.8689 | 6.74705 | 14.1193 | -10.404 | -18.1929 |
| 2 | 1-A03 | Mycophenolate Mofetil | -12.8689 | 6.74705 | 14.1193 | -12.4453 | -11.7175 |
| 3 | 1-A04 | Metaxalone | -12.8689 | 6.74705 | 14.1193 | -8.65572 | -17.7753 |
# remove column labels (rows 0 and 1), as we will replace them
# only take data given in columns "N #1 (%)" (3) and "N #2 (%)" (4)
raw_data = raw_data.iloc[2:, [3, 4]]
# collapse multiindex so that drug names and number indexes are columns
raw_data.reset_index(level=[1, 2], inplace=True)
# rename columns
raw_data.columns = ['label', 'drug', 'n1', 'n2']
# preview cleaner dataframe
raw_data.loc[raw_data.index[:5]]
| label | drug | n1 | n2 | |
|---|---|---|---|---|
| 1 | 1-A02 | Penicillin V Potassium | -10.404 | -18.1929 |
| 2 | 1-A03 | Mycophenolate Mofetil | -12.4453 | -11.7175 |
| 3 | 1-A04 | Metaxalone | -8.65572 | -17.7753 |
| 4 | 1-A05 | Terazosin·HCl | -11.5048 | 16.0825 |
| 5 | 1-A06 | Fluvastatin·Na | -11.1354 | -14.553 |
This formatting is closer to what we need.
Now, let’s take the drug names and get smiles strings for them (format needed for DeepChem).
drugs = raw_data['drug'].values
For many of these, we can retreive the smiles string via the canonical_smiles attribute of the get_compounds object
get_compounds(drugs[1], 'name')
[Compound(5281078)]
get_compounds(drugs[1], 'name')[0].canonical_smiles
u'CC1=C(C(=C(C2=C1COC2=O)O)CC=C(C)CCC(=O)OCCN3CCOCC3)OC'
However, some of these drug names have variables spaces and symbols (·, (±), etc.), and names that may not be readable by pubchempy.
For this task, we will do a bit of hacking via regular expressions. Also, we notice that all ions are written in a shortened form that will need to be expanded. For this reason we use a dictionary, mapping the shortened ion names to versions recognizable to pubchempy.
Unfortunately you may have several corner cases that will require more hacking.
ion_replacements = {
'HBr': ' hydrobromide',
'2Br': ' dibromide',
'Br': ' bromide',
'HCl': ' hydrochloride',
'2H2O': ' dihydrate',
'H20': ' hydrate',
'Na': ' sodium'
}
ion_keys = ['H20', 'HBr', 'HCl', '2Br', '2H2O', 'Br', 'Na']
import re
def compound_to_smiles(cmpd):
# remove spaces and irregular characters
compound = re.sub(r'([^\s\w]|_)+', '', cmpd)
# replace ion names if needed
for ion in ion_keys:
if ion in compound:
compound = compound.replace(ion, ion_replacements[ion])
# query for cid first in order to avoid timeouterror
cid = get_cids(compound, 'name')[0]
smiles = get_compounds(cid)[0].canonical_smiles
return smiles
smiles_map = {}
for i in drugs:
smiles_map[i] = compound_to_smiles(i)
smiles_data = raw_data
# map drug name to smiles string
smiles_data['drug'] = smiles_data['drug'].apply(lambda x: smiles_map[x])
# preview smiles data
smiles_data.loc[smiles_data.index[:5]]
| label | drug | n1 | n2 | |
|---|---|---|---|---|
| 1 | 1-A02 | CC1(C(N2C(S1)C(C2=O)NC(=O)COC3=CC=CC=C3)C(=O)[... | -10.404 | -18.1929 |
| 2 | 1-A03 | CC1=C(C(=C(C2=C1COC2=O)O)CC=C(C)CCC(=O)OCCN3CC... | -12.4453 | -11.7175 |
| 3 | 1-A04 | CC1=CC(=CC(=C1)OCC2CNC(=O)O2)C | -8.65572 | -17.7753 |
| 4 | 1-A05 | COC1=C(C=C2C(=C1)C(=NC(=N2)N3CCN(CC3)C(=O)C4CC... | -11.5048 | 16.0825 |
| 5 | 1-A06 | CC(C)N1C2=CC=CC=C2C(=C1C=CC(CC(CC(=O)[O-])O)O)... | -11.1354 | -14.553 |
Hooray, we have mapped each drug name to its corresponding smiles code.
Now, we need to look at the data and remove as much noise as possible.
In machine learning, we know that there is no free lunch. You will need to spend time analyzing and understanding your data in order to frame your problem and determine the appropriate model framework. Treatment of your data will depend on the conclusions you gather from this process.
Questions to ask yourself: * What are you trying to accomplish? * What is your assay? * What is the structure of the data? * Does the data make sense? * What has been tried previously?
For this project (respectively): * I would like to build a model capable of predicting the affinity of an arbitrary small molecule drug to a particular ion channel protein * For an input drug, data describing channel inhibition * A few hundred drugs, with n=2 * Will need to look more closely at the dataset* * Nothing on this particular protein
*This will involve plotting, so we will import matplotlib and seaborn. We will also need to look at molecular structures, so we will import rdkit.
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set_style('white')
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit.Chem import Draw, PyMol, rdFMCS
from rdkit.Chem.Draw import IPythonConsole
from rdkit import rdBase
# i will use numpy on occasion for manipulating arrays
import numpy as np
Our goal is to build a small molecule model, so let’s make sure our molecules are all small. This can be approximated by the length of each smiles string.
smiles_data['len'] = [len(i) for i in smiles_data['drug']]
smiles_lens = [len(i) for i in smiles_data['drug']]
sns.distplot(smiles_lens)
plt.xlabel('len(smiles)')
plt.ylabel('probability')
<matplotlib.text.Text at 0x7f7c64a92450>
Some of these look rather large, len(smiles) > 150. Let’s see what they look like.
# indices of large looking molecules
suspiciously_large = np.where(np.array(smiles_lens) > 150)[0]
# corresponding smiles string
long_smiles = smiles_data.loc[smiles_data.index[suspiciously_large]]['drug'].values
# look
Draw._MolsToGridImage([Chem.MolFromSmiles(i) for i in long_smiles], molsPerRow=6)
As suspected, these are not small molecules, so we will remove them from the dataset. The argument here is that these molecules could register as inhibitors simply because they are large. They are more likely to sterically blocks the channel, rather than diffuse inside and bind (which is what we are interested in).
The lesson here is to remove data that does not fit your use case.
# drop large molecules
smiles_data = smiles_data[~smiles_data['drug'].isin(long_smiles)]
Now, let’s look at the numerical structure of the dataset.
First, check for NaNs.
nan_rows = smiles_data[smiles_data.isnull().T.any().T]
nan_rows[['n1', 'n2']]
| n1 | n2 | |
|---|---|---|
| 63 | NaN | -7.8266 |
| 176 | NaN | -6.61225 |
| 188 | NaN | -8.23326 |
| 234 | -8.21781 | NaN |
| 263 | NaN | -12.8788 |
| 289 | NaN | -2.34264 |
| 301 | NaN | -8.19936 |
| 302 | NaN | -10.4633 |
| 312 | NaN | -8.78722 |
| 396 | -5.32572 | -1.7599 |
| 400 | -1.45559 | -6.47666 |
I don’t trust n=1, so I will throw these out.
Then, let’s examine the distribution of n1 and n2.
df = smiles_data.dropna(axis=0, how='any')
# seaborn jointplot will allow us to compare n1 and n2, and plot each marginal
sns.jointplot('n1', 'n2', data=smiles_data)
<seaborn.axisgrid.JointGrid at 0x7f7c6187c3d0>
We see that most of the data is contained in the gaussian-ish blob centered a bit below zero. We see that there are a few clearly active datapoints located in the bottom left, and one on the top right. These are all distinguished from the majority of the data. How do we handle the data in the blob?
Because n1 and n2 represent the same measurement, ideally they would be of the same value. This plot should be tightly aligned to the diagonal, and the pearson correlation coefficient should be 1. We see this is not the case. This helps gives us an idea of the error of our assay.
Let’s look at the error more closely, plotting in the distribution of (n1-n2).
diff_df = df['n1'] - df['n2']
sns.distplot(diff_df)
plt.xlabel('difference in n')
plt.ylabel('probability')
<matplotlib.text.Text at 0x7f7c5b951150>
This looks pretty gaussian, let’s get the 95% confidence interval by fitting a gaussian via scipy, and taking 2*the standard deviation
from scipy import stats
mean, std = stats.norm.fit(diff_df)
ci_95 = std*2
ci_95
17.803505462981775
Now, I don’t trust the data outside of the confidence interval, and will therefore drop these datapoints from df.
For example, in the plot above, at least one datapoint has n1-n2 > 60. This is disconcerting.
noisy = diff_df[abs(diff_df) > ci_95]
df = df.drop(noisy.index)
sns.jointplot('n1', 'n2', data=df)
<seaborn.axisgrid.JointGrid at 0x7f7c5b7bbb10>
Now that data looks much better!
So, let’s average n1 and n2, and take the error bar to be ci_95.
avg_df = df[['label', 'drug']]
n_avg = df[['n1', 'n2']].mean(axis=1)
avg_df['n'] = n_avg
avg_df.sort_values('n', inplace=True)
/home/kmckiern/miniconda2/lib/python2.7/site-packages/ipykernel_launcher.py:3: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
This is separate from the ipykernel package so we can avoid doing imports until
/home/kmckiern/miniconda2/lib/python2.7/site-packages/ipykernel_launcher.py:4: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
after removing the cwd from sys.path.
Now, let’s look at the sorted data with error bars.
plt.errorbar(np.arange(avg_df.shape[0]), avg_df['n'], yerr=ci_95, fmt='o')
plt.xlabel('drug, sorted')
plt.ylabel('activity')
<matplotlib.text.Text at 0x7f7c5b3aa590>
Now, let’s identify our active compounds.
In my case, this required domain knowledge. Having worked in this area, and having consulted with professors specializing on this channel, I am interested in compounds where the absolute value of the activity is greater than 25. This relates to the desired drug potency we would like to model.
If you are not certain how to draw the line between active and inactive, this cutoff could potentially be treated as a hyperparameter.
actives = avg_df[abs(avg_df['n'])-ci_95 > 25]['n']
plt.errorbar(np.arange(actives.shape[0]), actives, yerr=ci_95, fmt='o')
<Container object of 3 artists>
# summary
print (raw_data.shape, avg_df.shape, len(actives.index))
((430, 5), (392, 3), 6)
In summary, we have: * Removed data that did not address the question we hope to answer (small molecules only) * Dropped NaNs * Determined the noise of our measurements * Removed exceptionally noisy datapoints * Identified actives (using domain knowledge to determine a threshold)
Now, what model framework should we use?
Given that we have 392 datapoints and 6 actives, this data will be used to build a low data one-shot classifier (10.1021/acscentsci.6b00367). If there were datasets of similar character, transfer learning could potentially be used, but this is not the case at the moment.
Let’s apply logic to our dataframe in order to cast it into a binary format, suitable for classification.
# 1 if condition for active is met, 0 otherwise
avg_df['active'] = (abs(avg_df['n'])-ci_95 > 25).astype(int)
/home/kmckiern/miniconda2/lib/python2.7/site-packages/ipykernel_launcher.py:2: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
Now, save this to file.
avg_df.to_csv('modulators.csv', index=False)
Now, we will convert this dataframe to a DeepChem dataset.
import deepchem as dc
dataset_file = 'modulators.csv'
task = ['active']
featurizer_func = dc.feat.ConvMolFeaturizer()
loader = dc.data.CSVLoader(tasks=task, smiles_field='drug', featurizer=featurizer_func)
dataset = loader.featurize(dataset_file)
Loading raw samples now.
shard_size: 8192
About to start loading CSV from modulators.csv
Loading shard 1 of size 8192.
Featurizing sample 0
TIMING: featurizing shard 0 took 0.897 s
TIMING: dataset construction took 1.621 s
Loading dataset from disk.
Lastly, it is often advantageous to numerically transform the data in some way. For example, sometimes it is useful to normalize the data, or to zero the mean. This depends in the task at hand.
Built into DeepChem are many useful transformers, located in the deepchem.transformers.transformers base class.
Because this is a classification model, and the number of actives is low, I will apply a balancing transformer. I treated this transformer as a hyperparameter when I began training models. It proved to unambiguously improve model performance.
transformer = dc.trans.BalancingTransformer(transform_w=True, dataset=dataset)
dataset = transformer.transform(dataset)
TIMING: dataset construction took 1.066 s
Loading dataset from disk.
Now let’s save the balanced dataset object to disk, and then reload it as a sanity check.
dc.utils.save.save_to_disk(dataset, 'balanced_dataset.joblib')
balanced_dataset = dc.utils.save.load_from_disk('balanced_dataset.joblib')
Tutorial written by Keri McKiernan (github.com/kmckiern) on September 8, 2016


Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
const N = 4000000; let sum = 0; let a = 0; let b = 1; while (b < N) { if(b % 2 === 0) sum += b; const t = b; b = a + b; a = t; } console.log('sum', sum);


KIDS A film review by Christopher Null Copyright 1995 Christopher Null
So much hype has surrounded KIDS, the gritty, "not rated" feature about New York teens, that it was almost impossible to go into the film objectively. I was expecting an ultra-graphic film about sex, drugs, and life on the mean city streets. That's about what I got.
The film follows a few characters through one day in New York City.  On their trail is Jennie (Chloe Sevigny), a prior virginal conquest of Telly's, who discovers she is HIV-positive that morning and is on the verge of a nervous breakdown.
When the boys aren't wandering, they're talking. And when they're talking, it is *always* about sex. Written by 19-year old Harmony Korine, the dialogue is completely on the mark yet is totally disgusting. Too bad there's no one around to wash some mouths out with soap.
The film is shocking, not because the subject matter is foreign to us, but rather, because for all intents and purposes, these really are KIDS, barely into puberty. The movie is shot almost like a documentary, and the sheer "realness" of the picture is what has parents, teens, Bob Dole, and the MPAA staring with their mouths agape.
 The cast assembled here is rough and unpolished--perfect for the subject matter. Director Larry Clark brings his skill at photography to brilliant use, showing the underbelly of New York in all its seamy squalor.
"There's nothing in the world to worry about." This is one of the many lines in Telly's arsenal when soothing his virgins during their initiation. It's also the most frightening statement in the film, showing just how sad the state of youth in America really is these days. Deeply shocking and disturbing, this film's hype exists for a reason.
RATING: ****
|* Unquestionably awful | |** Sub-par on many levels | |*** Average, hits and misses | |**** Good, memorable film | |***** Perfection |
-Christopher Null /<EMAIL_ADDRESS>-Film Critic, Screenwriter, Novelist (Mailing list available)
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Discover how we are using the latest technologies to build your next store with our API first e-commerce platform
This app is built entirely using the MEAN stack and helps you to understand the different elements
We use small customizable apps and avoid monolithic architechture
We want to reach your customers on all channels
We work with many great customers and partners to utlize the platform and create revolutionary e-commerce sites


| 1 | package fr.sii.ogham.core.resource.path; | |
| 2 | ||
| 3 | import fr.sii.ogham.core.util.EqualsBuilder; | |
| 4 | import fr.sii.ogham.core.util.HashCodeBuilder; | |
| 5 | ||
| 6 | /** | |
| 7 | * Provides a link between a resource path, its recognized lookup and its | |
| 8 | * resolved value. | |
| 9 | * | |
| 10 | * @author Cyril Dejonghe | |
| 11 | * | |
| 12 | */ | |
| 13 | public class ResolvedResourcePath implements ResolvedPath { | |
| 14 | /** | |
| 15 | * The entire path of the resource, OGHAM style, lookup included. | |
| 16 | */ | |
| 17 | private final ResourcePath originalPath; | |
| 18 | ||
| 19 | /** | |
| 20 | * The lookup corresponding to the resource type / protocol.. | |
| 21 | */ | |
| 22 | private final String lookup; | |
| 23 | ||
| 24 | /** | |
| 25 | * The resolved path of the resource. Used by the resolver. | |
| 26 | */ | |
| 27 | private final String resolvedPath; | |
| 28 | ||
| 29 | public ResolvedResourcePath(ResourcePath originalPath, String lookup, String resolvedPath) { | |
| 30 | super(); | |
| 31 | this.originalPath = originalPath; | |
| 32 | this.lookup = lookup; | |
| 33 | this.resolvedPath = resolvedPath; | |
| 34 | } | |
| 35 | ||
| 36 | public String getOriginalPath() { | |
| 37 |
1
1. getOriginalPath : replaced return value with "" for fr/sii/ogham/core/resource/path/ResolvedResourcePath::getOriginalPath → NO_COVERAGE |
return originalPath.getOriginalPath(); |
| 38 | } | |
| 39 | ||
| 40 | public String getLookup() { | |
| 41 |
1
1. getLookup : replaced return value with "" for fr/sii/ogham/core/resource/path/ResolvedResourcePath::getLookup → NO_COVERAGE |
return lookup; |
| 42 | } | |
| 43 | ||
| 44 | public String getResolvedPath() { | |
| 45 |
1
1. getResolvedPath : replaced return value with "" for fr/sii/ogham/core/resource/path/ResolvedResourcePath::getResolvedPath → RUN_ERROR |
return resolvedPath; |
| 46 | } | |
| 47 | ||
| 48 | ||
| 49 | @Override | |
| 50 | public int hashCode() { | |
| 51 |
1
1. hashCode : replaced int return with 0 for fr/sii/ogham/core/resource/path/ResolvedResourcePath::hashCode → NO_COVERAGE |
return new HashCodeBuilder().append(originalPath, lookup, resolvedPath).hashCode(); |
| 52 | } | |
| 53 | ||
| 54 | @Override | |
| 55 | public boolean equals(Object obj) { | |
| 56 |
2
1. equals : replaced boolean return with false for fr/sii/ogham/core/resource/path/ResolvedResourcePath::equals → NO_COVERAGE 2. equals : replaced boolean return with true for fr/sii/ogham/core/resource/path/ResolvedResourcePath::equals → NO_COVERAGE |
return new EqualsBuilder(this, obj).appendFields("originalPath", "lookup", "resolvedPath").isEqual(); |
| 57 | } | |
| 58 | | |
| 59 | ||
| 60 | @Override | |
| 61 | public String toString() { | |
| 62 | StringBuilder builder = new StringBuilder(); | |
| 63 | builder.append("'").append(resolvedPath).append("' (resolved from ").append(originalPath).append(")"); | |
| 64 |
1
1. toString : replaced return value with "" for fr/sii/ogham/core/resource/path/ResolvedResourcePath::toString → RUN_ERROR |
return builder.toString(); |
| 65 | } | |
| 66 | } | |
Mutations | ||
| 37 |
1.1 |
|
| 41 |
1.1 |
|
| 45 |
1.1 |
|
| 51 |
1.1 |
|
| 56 |
1.1 2.2 |
|
| 64 |
1.1 |


|
NeuralSharp
1.0
NeuralSharp is a FOSS C# library for neural networks.
|
Represents a connection matrix. More...
Inherits NeuralSharp.IArraysLayer.
Inherited by NeuralSharp.BiasedConnectionMatrix.
Public Member Functions | |
| ConnectionMatrix (int inputSize, int outputSize, bool createIO=false) | |
| Creates an instance of the More... | |
| virtual void | Feed (bool learning=false) |
| Feeds the layer forward. More... | |
| virtual void | BackPropagate (float[] outputErrorArray, int outputErrorSkip, float[] inputErrorArray, int inputErrorSkip, bool learning) |
| Backpropagates the given error trough the layer. More... | |
| void | BackPropagate (float[] outputError, float[] inputError, bool learning) |
| Backpropagates the given error trough the layer. More... | |
| void | SetInputAndOutput (float[] inputArray, int inputSkip, float[] outputArray, int outputSkip) |
| Sets the input array and the output array of this layer. More... | |
| void | SetInputAndOutput (float[] input, float[] output) |
| Sets the input array and the ouptut array of this layer. More... | |
| float [] | SetInputGetOutput (float[] inputArray, int inputSkip) |
| Sets the input array of this layer and creates and sets an output array. More... | |
| float [] | SetInputGetOutput (float[] input) |
| Sets the input array of this layer and creates and sets an output array. More... | |
| virtual void | UpdateWeights (float rate, float momentum=0.0F) |
| Updates the weights of the layer. More... | |
| virtual ILayer< float[], float[]> | CreateSiamese () |
| Creates a siamese of the layer. More... | |
| virtual ILayer< float[], float[]> | Clone () |
| Creates a clone of the layer. More... | |
| int | CountParameters (List< object > siameseIDs) |
| Counts the amount of parameters of the layer. More... | |
| Public Member Functions inherited from NeuralSharp.ILayer< float[], float[]> | |
| int | CountParameters (List< object > siameseIDs) |
| Counts the amount of parameters of the layer. More... | |
| void | Feed (bool learning=false) |
| Feeds the layer forward. More... | |
| void | UpdateWeights (float rate, float momentum=0.0F) |
| Updates the weights of the layer. More... | |
| void | BackPropagate (TOut outputError, TIn inputError, bool learning) |
| Backpropagates the given error trough the layer. More... | |
| void | SetInputAndOutput (TIn input, TOut output) |
| Sets the input object and the output object of the layer. More... | |
| TOut | SetInputGetOutput (TIn input) |
| Sets the input object of the layer and creates and sets the output object. More... | |
| ILayer< TIn, TOut > | CreateSiamese () |
| Creates a siamese of the layer. More... | |
| ILayer< TIn, TOut > | Clone () |
| Clones the layer. More... | |
Protected Member Functions | |
| ConnectionMatrix (ConnectionMatrix original, bool siamese) | |
| Either creates a siamese of the given More... | |
Properties | |
| float [] | Input [get] |
| The input array of the layer. More... | |
| float [] | Output [get] |
| The output array of the layer. More... | |
| int | InputSkip [get] |
| The index of the first used entry of the input array. More... | |
| int | OutputSkip [get] |
| The index of the first used entry of the output array. More... | |
| int | InputSize [get] |
| The size of the output of the layer. More... | |
| int | OutputSize [get] |
| The size of the output of the layer. More... | |
| float [,] | Weights [get] |
| The weights of the layer. More... | |
| float [,] | Gradients [get] |
| The gradients of the layer. More... | |
| float [,] | Momentum [get] |
| The previous updates of the layer. More... | |
| virtual int | Parameters [get] |
| The amount of parameters of the layer. More... | |
| object | SiameseID [get] |
| The siamese identifier of the layer. More... | |
| Properties inherited from NeuralSharp.IArraysLayer | |
| int | InputSize [get] |
| The length of the input of the layer. More... | |
| int | InputSkip [get] |
| The index of the first used entry of the input array. More... | |
| int | OutputSize [get] |
| The length of the output of the layer. More... | |
| int | OutputSkip [get] |
| The index of the first used entry of the output array. More... | |
| Properties inherited from NeuralSharp.ILayer< float[], float[]> | |
| TIn | Input [get] |
| The input object of the layer. More... | |
| TOut | Output [get] |
| The output object. More... | |
| int | Parameters [get] |
| The amount of parameters of the layer. More... | |
| object | SiameseID [get] |
| The siamese identifier of the layer. More... | |
Represents a connection matrix.
|
protected |
Either creates a siamese of the given
ConnectionMatrix
instance or clones it.
| original | The original instance to be created a siamese of or cloned. |
| siamese | true false |
| NeuralSharp.ConnectionMatrix.ConnectionMatrix | ( | int | inputSize, |
| int | outputSize, | ||
| bool | createIO = false |
||
| ) |
Creates an instance of the
ConnectionMatrix
class.
| inputSize | The size of the input of the layer. |
| outputSize | The size of the output of the layer. |
| createIO | Whether the input array and the output array of the layer are to be created. |
|
virtual |
Backpropagates the given error trough the layer.
| outputErrorArray | The output error to be backpropagated. |
| outputErrorSkip | The index of the first entry of the ouptut error array to be used. |
| inputErrorArray | The array to be written the input entry into. |
| inputErrorSkip | The index of the first entry of the input error array to be used. |
| learning | Whether the array is being used in a training session. |
Implements NeuralSharp.IArraysLayer.
Reimplemented in NeuralSharp.BiasedConnectionMatrix.
| void NeuralSharp.ConnectionMatrix.BackPropagate | ( | float [] | outputError, |
| float [] | inputError, | ||
| bool | learning | ||
| ) |
Backpropagates the given error trough the layer.
| outputError | The output error to be backpropagated. |
| inputError | The array to be written the input error into. |
| learning | Whether the array is being used in a training session. |
|
virtual |
Creates a clone of the layer.
Reimplemented in NeuralSharp.BiasedConnectionMatrix.
| int NeuralSharp.ConnectionMatrix.CountParameters | ( | List< object > | siameseIDs | ) |
Counts the amount of parameters of the layer.
| siameseIDs | The siamese identifiers to be excluded. The siamese identifiers of the layer will be added to the list. |
|
virtual |
Creates a siamese of the layer.
Reimplemented in NeuralSharp.BiasedConnectionMatrix.
|
virtual |
Feeds the layer forward.
| learning | Whether the layer is being used in a training session. Unused. |
Reimplemented in NeuralSharp.BiasedConnectionMatrix.
| void NeuralSharp.ConnectionMatrix.SetInputAndOutput | ( | float [] | inputArray, |
| int | inputSkip, | ||
| float [] | outputArray, | ||
| int | outputSkip | ||
| ) |
Sets the input array and the output array of this layer.
| inputArray | The input array to be set. |
| inputSkip | The index of the first entry of the input array to be used. |
| outputArray | The output array to be set. |
| outputSkip | The index of the first entry of the output array to be used. |
Implements NeuralSharp.IArraysLayer.
| void NeuralSharp.ConnectionMatrix.SetInputAndOutput | ( | float [] | input, |
| float [] | output | ||
| ) |
Sets the input array and the ouptut array of this layer.
| input | The input array to be set. |
| output | The output array to be set. |
| float [] NeuralSharp.ConnectionMatrix.SetInputGetOutput | ( | float [] | inputArray, |
| int | inputSkip | ||
| ) |
Sets the input array of this layer and creates and sets an output array.
| inputArray | The input array to be set. |
| inputSkip | The index of the first entry of the input array to be used. |
Implements NeuralSharp.IArraysLayer.
| float [] NeuralSharp.ConnectionMatrix.SetInputGetOutput | ( | float [] | input | ) |
Sets the input array of this layer and creates and sets an output array.
| input | The input array to be set. |
|
virtual |
Updates the weights of the layer.
| rate | The learning rate to be used. |
| momentum | The momentum to be used. |
Reimplemented in NeuralSharp.BiasedConnectionMatrix.
|
getprotected |
The gradients of the layer.
|
get |
The input array of the layer.
|
get |
The size of the output of the layer.
|
get |
The index of the first used entry of the input array.
|
getprotected |
The previous updates of the layer.
|
get |
The output array of the layer.
|
get |
The size of the output of the layer.
|
get |
The index of the first used entry of the output array.
|
get |
The amount of parameters of the layer.
|
get |
The siamese identifier of the layer.
|
getprotected |
The weights of the layer.


ARMAGEDDON A film review by Mark R. Leeper
Capsule: A group of working-class heroes is humanity's only hope to destroy a meteor headed straight for Earth. This is a very heavily cliched film. It uses comic-book-style editing, too many melodramatic plots, and too much over-ripe camerawork. Some of the visuals are undeniably impressive, but the script is aimed at twelve- year-old boys. Rating: 4 (0 to 10), 0 (-4 to +4). Spoiler: warning: I list some of the cliches that are used in this script.
They say that any film that opens with an overhead view of a city has got to be bad. Another bad opening is the words "A Jerry Bruckheimer Film." Bruckheimer's name indicates that it will likely have more action than sense. ARMAGEDDON is our second film of the season to deal with a possible meteor impact on the Earth and it out- Bruckheimers Bruckheimer.
What is there to say about the plot? An asteroid knocked from orbit is on a collision course with Earth. Such a collision, we are told in the pre-credit narration by Charlton Heston, destroyed the dinosaurs. (Curiously, the president of the NRA resists suggesting we could prevent collisions if only we were all armed with large rocks.) The film gets off with a bang as in the first minutes we see the first of the mini-meteor showers, all of which seem predominantly to target land masses and major cities. (Being fair, there is a line in the dialog saying that they are hitting a wider area.) Later in the film we see the destruction of three cities including Shanghai. The latter looks like the Aberdeen area of Hong Kong. (Jerry, there are no junks in Shanghai any more. It's a propaganda thing. They got rid of the junks.)
The survival plan is to place a nuclear bomb in the core of the asteroid. NASA, in an effort headed by Dan Truman (Billy Bob Thornton) needs to train its astronauts to drill to the core of the asteroid. Truman calls in foremost drilling expert Harry Stamper (Bruce Willis) to train the astronauts and Stamper convinces Truman it would be easier to train drillers to be astronauts. With the fate of the Earth in the balance Truman makes this dubious concession. Astronauts, it seems, can be trained to know all they need to know in two weeks, but it takes a lifetime to know how to be a good driller. So Stamper's drilling crew are on their way to space. Of course, first comes the training, with our high-spirited drilling team making life miserable for the NASA trainers. Then after the training comes the even more riotous R&R, and these drillers are really wild by NASA standards. At no point does it seem to dawn on our happy drill team that losing the whole Earth with its Michelangelos and its Pizza Huts could be a real bummer for all of them. Finally comes the dramatic cliche-ridden space mission, complete with gun threats, a "which-wire-to-clip?" ticking bomb threat, and a "success-with-two-seconds-to-spare" climax. It is amazing how much of GOLDFINGER they could shoehorn into this film.
That ARMAGEDDON should follow so closely on the heels of the similar but far more intelligent DEEP IMPACT is a near ironclad guarantee that ARMAGEDDON will suffer by comparison. Even so the difference in quality beats the point spread by a gap as big as the state of Texas. This film is a sort of THE DIRTY DOZEN IN SPACE, and if nothing else it proves you can get into space piecing together nothing but off-the-shelf cliches. It fact apparently it took six writers or more to find all the cliches necessary. The main character and his crew, for example, are based on the old John Wayne film, THE HELLFIGHTERS. There are some scenes of the astronaut training in which the viewer may not know what is happening or why it is funny without having seen THE RIGHT STUFF. ARMAGEDDON, it seems, was not so much written as assembled after a scavenger hunt. Then there are the in- jokes. Without knowing what films have been released this summer the viewer may not realize why one character is named Truman and or why the visual joke with the toy Godzillas. It is a pity that the film did not come out next year when the scavengers could have raided DEEP IMPACT to at least get some idea how Earth people react to impending world- destruction. The "we-all-wait-and-pray" reaction shown in this film seemed hokey when George Pal used it in WHEN WORLDS COLLIDE. And Pal's street riots in WAR OF THE WORLDS were more realistic than what we see in ARMAGEDDON.
Bruce Willis plays an unflappable expert, always keeping things on an even keel even in the face of trouble like the world as we know it possibly coming to an end. This means that he never has to do much in the way of acting. He just plays his usual bland character. Will Patton made a memorable Civil-War-esque villain in THE POSTMAN. Here as the second in command on the team he does not play so flamboyant a character, but he is always watchable. Steve Buscemi and Peter Stormare who were the mismatched partners in crime in FARGO are reunited as a wisecracking American driller-astronaut and a burned-out (in more ways than one) Russian Cosmonaut. Together the two of them account for about 87% of the interest value of the crew in space. Liv Tyler, playing Stamper's daughter and the lover of another of the flying drillers, seems to dissolve into a one- woman Greek chorus in the second half of the film. She silently looks on, watching the action from Mission Control and strikes poses.
More and more we are seeing a style of film editing based on the comic book. It made sense for films like THE CROW that were based on comic books. Here we have in the action sequences many short cuts, each showing about what you would see in one panel of a comic. Sometimes the camera lingers over a single static and over-composed or melodramatic image, as if one is to pause over the composition. For example, Liv Tyler may be standing at attention in front of an American flag watching her father and her lover blast off. In another scene we see just her hand touching a television screen that a moment before showed what was happening in space and now has only static. Buried deep in the film are about fifteen minutes of beautiful state-of-the- art special effects. These at times reach the level of breathtaking. But everything else about this film is formula. The action cliches do generate the same suspense they always do. But the thought that went into DEEP IMPACT only points up the total cynicism about what the audience wants that went into making this overly familiar mess. As a science fiction movie, it has more action than thought. I give it a 4 on the 0 to 10 scale and a 0 on the -4 to +4 scale.
Nobody seemed to care much about my comment that the angle of tipping seemed to vary erratically from scene to scene in TITANIC, but I will make another comment about the geometry of the action. When cities are shown being hit by smaller meteor showers in ARMAGEDDON, the meteors should be coming in on parallel or near parallel courses. They come in from different directions. Is the idea that they blew apart and just happen to be converging again?
Mark R. Leeper<EMAIL_ADDRESS>Copyright 1998 Mark R. Leeper
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


ITCH-X- pramoxine hydrochloride and benzyl alcohol spray
BF ASCHER AND CO INC
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredients.............. Purpose
(in solution)
Benzyl alcohol 10%............Topical analgesic
Pramoxine HCl 1%..............Topical analgesic
Uses temporarily relieves pain and itching associ- ated with insect bites, minor burns, sunburn, minor cuts, scrapes, minor skin irritations, hives and rashes due to poison ivy, poison oak, or poison sumac.
Uses temporarily relieves pain and itching associ- ated with insect bites, minor burns, sunburn, minor cuts, scrapes, minor skin irritations, hives and rashes due to poison ivy, poison oak, or poison sumac.
If condition worsens, or if symptoms persist for more than 7 days or clear up and occur again within a few days, discontinue use and consult a physician.
Do not apply to open wounds, damaged, or blistered skin.
Do not use for vaginal, genital, or rectal itching.
Do not use on children under 2 years of age unless under the advice and supervision of a physician.
Keep this and all drugs out of reach of children. In case of overdose or ingestion of contents, get medical help or contact a poison control center immediately.
|
ITCH-X
pramoxine hcl/benzyl alcohol spray | |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
|
| Labeler - BF ASCHER AND CO INC (003854403) |


--- layout: default title: Videography excerpt: "This is my videography portfolio." ---
Our dear friends Doug and Amanda asked their daughter Charly what she wanted for her 11th birthday and she said, "I wanna go rollerskating and I want Hot Won't Quit to play." We couldn't have been more honored, so I stitched together some cellphone videos of that day in Charly's honor. What a dream!
My 4th season in Antarctica took me from my normal situation at McMurdo Station to the South Pole Station for my last month. I had been filming little time lapses all season at McMurdo, but then I ended up at the South Pole just in time for their yearly film festival. This video was the only submission from McMurdo, and people jokingly boo'ed with South Pole pride.
The Washougal River is one of my most favorite places in the whole world, and Luna Sandals are perfect way to enjoy it. I go out there at least a half dozen times each summer and I decided to bring my camera along for the ride.
During my time working with Luna Sandals (remotely from Portland), I would occassionally go up to Seattle for a week or a long weekend and help out in the factory. One of the biggest spikes in sales happen just after Christopher McDougall mentioned Luna Sandals on the Don Imus show. Strange, but awesome. Anyhoo, during my time in the factory I filmed different moments and different angles and it came together nicely. They have since moved into a different factory and the process is quite a bit different now. Maybe it's time for me to go up to Seattle again and put in some quality time at the factory.
In my humble opinion, this is one of the best music videos ever made. Being the creator of this video and being friends with Bling Theatre, I realize that you must think I am biased. Trust me, I'm not. This is just pure genius, simple as that. I call it like I see it, man.
My homies Lamprey in their practice space at AudioCinema in Portland, OR. In this single, continuous shot, you can really experience the progression of the music. It was one of many tests with the new filming rig in preparation for the 3rd Annual Ceremony of Sludge. I had a great time being part of the video crew.
This is what I came home to one night. I didn't start filming until at least a minute into the charade.


×
Home
MyList
My Orders
SignOut
About Us
☰
Categories
DairyProducts
Vegetables
Chocolates
Fruits
Eggs,Meat,Fish
Beverages
Candies
BakedGoods
Pulses
FoodGrains
Oil
Spices
Snacks
DryFruits
Desserts


ODK Scan
Filter Your Search
Select Month:
All
April
May
June
July
August
September
December
Select Age:
All
< 5
>5
Select Sex:
Both
Male
Female
Select Test:
Screened TB
Screened STIs
Adherence to care?
Submit


Recipe 11.10. Using IDLE's Tree Widget in TkinterCredit: Sanghyeon Seo ProblemYou need to use a Tree widget in your Tkinter application, and you know that such a widget comes with IDLE, the Integrated Development Environment that comes with Python. SolutionIDLE's functionality is available in the Python Standard Library in package idlelib, so it is easy to import and use in your applications. The Tree widget is in idlelib.TreeWidget. Here, as an example, is how to use that widget to display an XML document's DOM as a tree: from Tkinter import Tk, Canvas from xml.dom.minidom import parseString from idlelib.TreeWidget import TreeItem, TreeNode class DomTreeItem(TreeItem): def _ _init_ _(self, node): self.node = node def GetText(self): node = self.node if node.nodeType == node.ELEMENT_NODE: return node.nodeName elif node.nodeType == node.TEXT_NODE: return node.nodeValue def IsExpandable(self): node = self.node return node.hasChildNodes( ) def GetSubList(self): parent = self.node children = parent.childNodes prelist = [DomTreeItem(node) for node in children] itemlist = [item for item in prelist if item.GetText( ).strip( )] return itemlist if _ _name_ _ == '_ _main_ _': example_data = ''' <A> <B> <C>d</C> <C>e</C> </B> <B> <C>f</C> </B> </A> ''' root = Tk( ) canvas = Canvas(root) canvas.config(bg='white') canvas.pack( ) dom = parseString(data) item = DomTreeItem(dom.documentElement) node = TreeNode(canvas, None, item) node.update( ) node.expand( ) root.mainloop( ) DiscussionMy applications needed Tree widgets, and Tkinter does not have such a widget among its built-in ones. So I started looking around the Internet to see the Tree widgets that had been implemented for Tkinter. After a while, I was pleasantly surprised to learn that quite a useful one was already installed and working on my computer! Specifically, I had IDLE, the free Integrated DeveLopment Environment that comes with Python, and therefore I had idlelib, the package within the standard Python library that contains just about all of the functionality of IDLE. A Tree widget is among the widgets that IDLE uses for its own GUI, so idlelib.TreeWidget is just sitting there in the standard Python library, quite usable and useful. The only problem with idlelib is that it is not well documented as a part of the Python Standard Library documentation, nor elsewhere. The best documentation I could find is the pydoc-generated one at http://pydoc.org/2.3/idlelib.html. treeWidget is one of the modules documented there. I suggest reading the sources on your disk, which include the docstrings that pydoc is using to build the useful documentation site. Between sources and pydoc, it is quite possible to reuse some of the rich functionality that's included in idlelib, although having real docs about it would definitely not hurt. Python is known as the language that comes "with batteries included." When you consider, not just the hundreds of library modules that are fully documented in Python's official docs, but also the many additional library modules that aren't (such as those in idlelib), it's hard to deny this characterization. This recipe shows how to implement a simple GUI Tree: define a node-item class by subclassing idlelib.TreeWidget.TreeItem, and override some methods. You may want to override ten methods (http://pydoc.org/2.3/idlelib.TreeWidget.html#TreeItem has the complete list), and this recipe only needs three: GetText to define how the item is displayed (textually), IsExpandable to tell the Tree whether to put a clickable + character next to the node to allow expansion, GetSubList to return a list of children items in case expansion is required. Other optional methods, which this recipe does not need, allow iconic rather than textual display, double-clicking on nodes, and even editing of Tree items. See Alsoidlelib docs at http://pydoc.org/2.3/idlelib.html. |


menu
Home
About us
Contact
Help
Home
About us
Contact
Help
Profile
Account Setting
Library
History
Logout
History


ISBN Search
ISBN-13:<PHONE_NUMBER>637
ISBN-10:<PHONE_NUMBER>
Author: John Hearty
Binding: Paperback
Publisher: Packt Publishing - ebooks Account
Published: July 2016
List Price: $44.99
$34.78
+3.99 shipping
Pre Order
Notes
$44.99
Free shipping
Ready to ship
$42.38
+3.95 shipping
$45.66
Ships 2-3 days
$45.53
+4.96 shipping
$52.26
Ships 3+ Days
$53.60
$53.93
$68.41
$76.73
+2.99 shipping
$133.22
$40.99
+5.99 shipping


|
Monster's Ball
by Rob Waring
This film examines whether redemption and forgiveness are possible
in some circumstances. It presents two characters guilty of abhorrent
behavior and shows the different outcomes they experience. The
two characters' stories are interwoven beautifully on the screen;
some of the editing and scene transitions are alone worth the
price of admission. The film also suggests that great sex can
assist in the redemption of lost souls. (This commentary reveals
key plot details that may spoil the film if you have yet to see
it.)
Monster's Ball
appears set in the present day, but the film makers apparently
made great effort to avoid references (technological or otherwise)
that would place the film at any particular time over the past
thirty years. The effect is to suggest that certain parts of
the rural South have not changed much: blacks are still having
a hard time getting respect. (The plot floats in this time indefiniteness
despite a large number of product placements. A multiple page
list during the closing credits detracts from the lingering beauty
of the film's final scene.)
Sean "Puffy" Combs plays a death row inmate named Lawrence.
We never learn about the crimes that earned him his place at
the head of the line for execution in Georgia's electric chair.
(Georgia only recently abandoned this form of execution.) His
wife, Leticia, played by Halle Barry, visits the prison weekly,
but only for the benefit of their son, an obese and disturbed
teenager. Lawrence tries to be a good father, considering his
circumstances, and his eleventh hour apology to Leticia for the
bad things he has done, and his admonition to his son not to
be like him, illustrate that he sees himself as a different person
from his former self.
In graphic detail, the film shows preparations for the execution,
presided over with mechanistic precision by Hank, played by Billy
Bob Thornton, a misogynist and racist colonel in the Georgia
prison system. In contrast to Lawrence, we learn quite a bit
about Hank's misdeeds. Thornton never has to act very hard when
he's playing a redneck, but Hank is not your average cracker,
and Hank employs all of Thornton's ample talent. He lives with
his father, a retired career officer in the Georgia prison system
and an even worse monster than he is, and his son, Sonny, whom
both are trying unsuccessfully to raise in their own image. The
problem is that Sonny has a sensitive side, and doesn't seem
cut out for the executioner's trade.
Although Hank despises Lawrence, a black man, he seems determined
to provide Lawrence with a dignified execution. This perverse
form of customer service, in a proceeding that involves shaving
all of Lawrence's head and body hair and then watching him shake
violently while his bodily fluids boil during the electrical
surges, doesn't tolerate any error. When Sonny vomits during
the "final walk," Hank comes unhinged and disowns his
only son, causing his violent death. When you are in the execution
business, sudden death doesn't have much of an impact, and Sonny
doesn't get much of funeral. Grandpa's eulogy is simply, "He
was weak."
 He resigns
his prison post, and burns his uniform. Eventually, he crosses
paths with Leticia, whom he meets while she is mourning the loss
of her son, not realizing that she is Lawrence's wife. His own
redemptive need to be kind to another human being, whom he eventually
realizes is in much worse circumstances than he is, combined
with his sexual attraction for Leticia, begin to dismantle his
racial hatred. At her initiative, he has the first face-to-face
intercourse he has probably had in some time, and then he is
hooked. His secret discovery of her connection to Lawrence, when
he utters one of the most awkward post-coital apologies ever
to grace the screen, only seems to spur him on. He falls all
over himself to be nice to her, as if making up for a lifetime
of meanness.
Anyone who sees the first thirty minutes of this film will probably
judge Hank to be evil, someone who should be punished for his
actions and probably segregated from the rest of society for
our protection. Yet, Hank never confesses the contents of his
closet to Leticia. He never tells her that he executed her husband,
never explains that he caused his own son's death. She manages
to transcend her discovery of this first fact, perhaps realizing
that she is now part of a miraculous transformation. At least
Lawrence, the convicted murderer, had the courage to admit he
was wrong. But Hank seems inclined to brush it all under the
table and move on.
The only thing that separates them, given that we don't know
the details of Lawrence's crime, is the criminal justice system.
Lawrence, having been convicted, is precluded from transcending
his circumstances and earning forgiveness.  Hank, by contrast, on
the other side of the bars, can simply walk away from his past
and start over. Both situations seem wrong. Hank has no accountability
for his actions; Lawrence has no chance. This reality makes the
system seem frighteningly arbitrary. Although the monster in
the title of the film refers to Lawrence and others like him,
it appears the real monster is the system itself.
(All this is an ironic case of art imitating life: Puffy Combs,
rap music star, walked away from charges relating to a night
club shooting that led conviction of a protege. Some believe
Combs' wealth and fame played a part in his "beating the
rap.")
One other aspect of the death penalty is implicitly criticized
by the film-the execution's effect on others. It is true that
many good soldiers or prison guards are personality types that
are themselves but one step away from the wrong side of the law,
but we need to ask ourselves whether the psychological damage
done by the execution business is worth the cost. What mayhem
do we foster by training thousands of prison guards to be efficient
executioners? If the death penalty is a significant factor in
the greater propensity of the sons of death row inmates to follow
in their fathers' footsteps, is the death penalty worth the cost
of the wasted lives and additional murders it may foster? See
Monster's Ball and decide for yourself.
Posted February 21, 2002
|


loading...
Calculating BIP38 encrypted private key. This may take a while...
Below is your encrypted private key in BIP38 format. DO NOT FORGET YOUR PASSWORD. You will need both your password and encrypted private key to spend your Bitcoin.
Coin Pocket Bitcoin in your browser
Thanks for trying Coin Pocket!
Your Bitcoin address is:
Getting Started
Before you jump in, please follow the steps below.
- Backup your private key. See below.
- Read more detail on backups and general safety tips for iOS users on the wiki
- To scan QR Codes, download Scan Code from the App Store
- Bookmark this page.
- Send some Bitcoin to this wallet's address located on the Receive link above.
About
Coin Pocket is an open source project created by Mike Enriquez. It is officially hosted and maintained at https://btc.coinpocketapp.com.
Backup your private key
Coin Pocket stores your private key in this browser. Keep a copy of your encrypted private key somewhere safe in case something happens to your browser's data. Coin Pocket is a single address wallet, therefore you only need to make one backup for that address.
Press the button below to view your encrypted private key. You can also do this from settings.
View Encrypted Private Key


Toggle navigation
ReproNIm
Sign In
Settings
Profile
Help
BrainVerse
Overview
Projects
Workflows
Executions
Project Name Here
Project description
Funding Sources
Collaborators
Publications
Save
Create an Experiment


{% extends 'base.html' %} {% block header %} {% include 'navbar.html' %} {% endblock %} {% block content %}
Upload data CSVs to existing data tables. To add new data tables, you'll have to run the app in development mode using the setup wizard.