Type Function Library system.* Return value Object (notification Id) Revision Current Public Release (2013.2076) Keywords notification See also Local/Push Notifications
system.cancelNotification()
native.setProperty()
Schedule a local notification event to be delivered in the future. Returns a reference ID that can be used to cancel the notification.
system.scheduleNotification( secondsFromNow [, options] )
system.scheduleNotification( coordinatedUniversalTime [, options] )
The first argument must be either be one of the following:
Number. Number of seconds from now when the notification should be delivered.
Table. Table containing same properties as returned by os.date( "!*t" )
. A common pitfall is to pass "*t"
(instead of "!*t"
) resulting in a time given in your current time zone instead of a UTC time.
The second argument is optional:
Table. Table specifying details about the notification to be delivered (See Format for options below)
options
The following keys can be specified:
String The notification message to be displayed to the user. If the application is not currently running, a system alert will display this message.
Number The badge number to be displayed on the application icon when the scheduled notification triggers. Replaces the last badge number that was applied. Set to zero to not show a badge number. (This is not supported on Android.)
String Name of the sound file in the Resource directory to be played when the scheduled notification triggers. This sound is only played if the app is not currently in the foreground. On iOS, there are limitations on the kinds of sound that can be played (consult Apple's documentation for more details).
Table. A table that will be delivered with the notification event to pass custom information with it.
Unlike iOS, local notifications on Android are managed by the application and not by the operating system. This means that all scheduled notifications and status bar notifications will be cleared when the application process terminates. However, pressing the Back key to exit the application window will not terminate the application process. This only destroys the application window that hosts the Corona runtime, which runs your project's Lua scripts and will receive the "applicationExit"
system event just before being destroyed. The application process will continue to run in the background. This is standard Android application behavior and allows its notifications to continue to be available. If the application process does get terminated, then Corona will automatically restore all pending notifications when the application restarts.
That said, calling os.exit() will terminate the application process and clear all notifications. If you need to close the application window, then you should call native.requestExit() instead, which only exits the application window and keeps the application process alive, which in turn keeps your notifications alive.
Also note that all scheduled notifications and status bar notifications will be cleared after rebooting the Android device. In order to restore all notifications, you must set the following permission in your build.settings
file to set up your application to be started in the background after the Android device boots up.
settings =
{
android =
{
usesPermissions =
{
"android.permission.RECEIVE_BOOT_COMPLETED",
},
},
}
-- Get the app's launch arguments in case it was started when the user tapped on a notification.
local launchArgs = ...
-- Set up notification options.
local options = {
alert = "Wake up!",
badge = 2,
sound = "alarm.caf",
custom = { foo = "bar" }
}
-- Schedule a notification to occur 60 seconds from now.
local notificationId = system.scheduleNotification( 60, options )
-- Schedule a notification using UTC (Coordinated Universal Time).
local utcTime = os.date( "!*t", os.time() + 60 )
notificationId = system.scheduleNotification( utcTime, options )
-- Listen for notifications.
local onNotification = function( event )
print( event.name ) -- ==> "notification"
if event.custom then
print( event.custom.foo ) -- ==> "bar"
end
end
Runtime:addEventListener( "notification", onNotification )
-- The app's launch arguments will provide a notification event if this app was started
-- when the user tapped on a notification. You must call the notification listener manually.
if launchArgs and launchArgs.notification then
onNotification( launchArgs.notification )
end


Stefani Joanne Angelina Germanotta, known professionally as Lady Gaga, is an American singer, songwriter, and actress. She is known for her unconventionality and provocative work, as well as visual experimentation. Gaga began performing as a teenager, singing at open mic nights and acting in school plays. Stefani Joanne Angelina Germanotta, known professionally as Lady Gaga, is an American singer, songwriter, and actress. She is known for her unconventionality and provocative work, as well as visual experimentation. Gaga began performing as a teenager, singing at open mic nights and acting in school plays. Stefani Joanne Angelina Germanotta, known professionally as Lady Gaga, is an American singer, songwriter, and actress. She is known for her unconventionality and provocative work, as well as visual experimentation. Gaga began performing as a teenager, singing at open mic nights and acting in school plays.
Lady Gaga at the basketball game.
The damaged denizens of Sin City return for another round of stories from the mind of Frank Miller. In "Just Another Saturday Night," Marv (Mickey Rourke) struggles to recall a nasty run-in with some frat boys.
Lady Gaga at the Oskar 2017.


--- layout: page # individual pages for each gallery header: title: Some Title background-color: "#6B8A78" ---


I have created and setup a decent rough outline of my tutoring website (along with buying ritutoring.com and wlhood.com), but I want to edit the theme files to make it look better. I beleive the edits I want to make would be done through CSS, but the two go hand in hand and I’d rather just start with the foundations and learn HTML and CSS and get into good habits before I jump into the weeds more with Java and whatever else I want to get into.
I’m rationalizing this by thinking of the value of having a professional website as a portfolio to show off my skills, and also to force myself in this self-study journey to take notes I can come back to.
Basic HTML
HTML is a tag-based language, it is built with elements. Elements have start and end tags, the end tag being identical except it starts with a forward slash. Elements can be within elements. Some tags like img or br are empty tags, there is only one (see below examples).
- !DOCTYPE
- Structure
- Text & Images
- Lists
- Style
- Formatting
!DOCTYPE
The top line of the html file has this code
<!DOCTYPE html>
Signals that the file is written in HTML5 code. The entire body of the html document is surround by the tag html.
<!DOCTYPE html>

Structure
The actual page is split into the head, the meta data of the page, and the body, the actual body of the page. Metadata is information about the page that isnt displayed.
<!DOCTYPE html>

Text & Images
Within the header you can set the title, the text displayed on the browser tab. Within the body, titles and subtitles can be made with h1 through h6, largest to smallest. Regular text can be written within paragraphs, p. A line break can be inserted anywhere with br. Images in the same folder as the html document can be inserted with img. A horizontal rule (horizontal line to speerate content) can be inserted with hr.
<!DOCTYPE html>

<title> Title </title>

 Biggest Header

 Smallest Header

 Regular paragraph text

 Broken
 Paragraph

Within the img tag, src signifies the image file name, alt represents the text that will show if for some reason the image cannot be displayed. Width and height set the width and height of the image.
Text within p tags cannot be formamted with spaces and line breaks without tags. Pre tags can be used to retain line breaks and extra spaces between words.
<!DOCTYPE html>

Line breaks
and spaces maintained

Line breaks
and spaces NOT maintained

Lists
You can make two types of simple lists, ordered and unordered. Unordered lists are marked with bullet points, ordered lists are marked with increasing numbers. ul and ol determine unordered/ordered, and every list item is denoted with li.
<!DOCTYPE html>

 Ex List Item

 Ex List Item

####Style Color, font, and size can be set with the style attribute. Attributes go within the start tag of an element, and effect only that element. Other attributes are img.
Style’s use CSS to change color, size, etc.
lang: Attribute for html to set language title: Attribute for p to create tooltip background-color: Attribute for body to set background color
Attribute text should be in double quotes, or single quotes if neccesary.

 Colored Text

 Paragraph

Formatting
Text can be further formatted with tags within text elements.


| Parameters: |
- evokeds : instance of mne.Evoked | list | dict
If a single Evoked instance, it is plotted as a time series.
If a dict whose values are Evoked objects, the contents are plotted as
single time series each and the keys are used as condition labels.
If a list of Evokeds, the contents are plotted with indices as labels.
If a [dict/list] of lists, the unweighted mean is plotted as a time
series and the parametric confidence interval is plotted as a shaded
area. All instances must have the same shape - channel numbers, time
points etc.
If dict, keys must be of type str.
- picks : None | int | list of int
If int or list of int, the indices of the sensors to average and plot.
If multiple channel types are selected, one figure will be returned for
each channel type.
If the selected channels are gradiometers, the signal from
corresponding (gradiometer) pairs will be combined.
If None, it defaults to all data channels, in which case the global
field power will be plotted for all channel type available.
- gfp : bool
If True, the channel type wise GFP is plotted.
If picks is an empty list (default), this is set to True.
- colors : list | dict | None
If a list, will be sequentially used for line colors.
If a dict, can map evoked keys or ‘/’-separated (HED) tags to
conditions.
For example, if evokeds is a dict with the keys “Aud/L”, “Aud/R”,
“Vis/L”, “Vis/R”, colors can be dict(Aud=’r’, Vis=’b’) to map both
Aud/L and Aud/R to the color red and both Visual conditions to blue.
If None (default), a sequence of desaturated colors is used.
If cmap is None, colors will indicate how each condition is
colored with reference to its position on the colormap - see cmap
below. In that case, the values of colors must be either integers,
in which case they will be mapped to colors in rank order; or floats
between 0 and 1, in which case they will be mapped to percentiles of
the colormap.
- linestyles : list | dict
If a list, will be sequentially and repeatedly used for evoked plot
linestyles.
If a dict, can map the evoked keys or ‘/’-separated (HED) tags to
conditions.
For example, if evokeds is a dict with the keys “Aud/L”, “Aud/R”,
“Vis/L”, “Vis/R”, linestyles can be dict(L=’–’, R=’-‘) to map both
Aud/L and Vis/L to dashed lines and both Right-side conditions to
straight lines.
- styles : dict | None
If a dict, keys must map to evoked keys or conditions, and values must
be a dict of legal inputs to matplotlib.pyplot.plot. These
parameters will be passed to the line plot call of the corresponding
condition, overriding defaults.
E.g., if evokeds is a dict with the keys “Aud/L”, “Aud/R”,
“Vis/L”, “Vis/R”, styles can be {“Aud/L”: {“linewidth”: 1}} to set
the linewidth for “Aud/L” to 1. Note that HED (‘/’-separated) tags are
not supported.
- cmap : None | str | tuple
If not None, plot evoked activity with colors from a color gradient
(indicated by a str referencing a matplotlib colormap - e.g., “viridis”
or “Reds”).
If evokeds is a list and colors is None, the color will
depend on the list position. If colors is a list, it must contain
integers where the list positions correspond to evokeds , and the
value corresponds to the position on the colorbar.
If evokeds is a dict, colors should be a dict mapping from
(potentially HED-style) condition tags to numbers corresponding to
positions on the colorbar - rank order for integers, or floats for
percentiles. E.g.,
evokeds={"cond1/A": ev1, "cond2/A": ev2, "cond3/A": ev3, "B": ev4},
cmap='viridis', colors=dict(cond1=1 cond2=2, cond3=3),
linestyles={"A": "-", "B": ":"}
If cmap is a tuple of length 2, the first item must be
a string which will become the colorbar label, and the second one
must indicate a colormap, e.g.
cmap=('conds', 'viridis'), colors=dict(cond1=1 cond2=2, cond3=3),
- vlines : “auto” | list of float
A list in seconds at which to plot dashed vertical lines.
If “auto” and the supplied data includes 0, it is set to [0.]
and a vertical bar is plotted at time 0. If an empty list is passed,
no vertical lines are plotted.
- ci : float | callable | None | bool
If not None and evokeds is a [list/dict] of lists, a shaded
confidence interval is drawn around the individual time series. If
float, a percentile bootstrap method is used to estimate the confidence
interval and this value determines the CI width. E.g., if this value is
.95 (the default), the 95% confidence interval is drawn. If a callable,
it must take as its single argument an array (observations x times) and
return the upper and lower confidence bands.
If None or False, no confidence band is plotted.
If True, a 95% bootstrapped confidence interval is drawn.
- truncate_yaxis : bool | str
If not False, the left y axis spine is truncated to reduce visual
clutter. If ‘max_ticks’, the spine is truncated at the minimum and
maximum ticks. Else, it is truncated to half the max absolute value,
rounded to .25. Defaults to “max_ticks”.
- truncate_xaxis : bool
If True, the x axis is truncated to span from the first to the last.
xtick. Defaults to True.
- ylim : dict | None
ylim for plots (after scaling has been applied). e.g.
ylim = dict(eeg=[-20, 20])
Valid keys are eeg, mag, grad, misc. If None, the ylim parameter
for each channel equals the pyplot default.
- invert_y : bool
If True, negative values are plotted up (as is sometimes done
for ERPs out of tradition). Defaults to False.
- show_sensors: bool | int | str | None
If not False, channel locations are plotted on a small head circle.
If int or str, the position of the axes (forwarded to
mpl_toolkits.axes_grid1.inset_locator.inset_axes ).
If None, defaults to True if gfp is False, else to False.
- show_legend : bool | str | int
If not False, show a legend. If int or str, it is the position of the
legend axes (forwarded to
mpl_toolkits.axes_grid1.inset_locator.inset_axes ).
- split_legend : bool
If True, the legend shows color and linestyle separately; colors must
not be None. Defaults to True if cmap is not None, else defaults to
False.
- axes : None | matplotlib.axes.Axes instance | list of axes
What axes to plot to. If None, a new axes is created.
When plotting multiple channel types, can also be a list of axes, one
per channel type.
- title : None | str
If str, will be plotted as figure title. If None, the channel names
will be shown.
- show : bool
If True, show the figure.
|


Create Student
ID:
First Name:
Last Name:
FacultyNumber:
Grade:
Create Student
ID
First Name
Last Name
Faculty Number
Grade


Chocolate Pizza
Posted on 15Dec2013/Desserts
For the fig-swirl: Melt butter over medium heat in a saucepan. Add brown sugar and stir to dissolve. Halve all
of the figs and toss in the saucepan with water and lemon juice. Cook over medium heat, stirring frequently,
until you have a chunky-jammy mixture. Add salt with one or two stirs, set aside and let cool completely.
cream: In a small pot over medium heat, combine milk, and granulated sugar until sugar is completely dissolved
and the milk is just barely lukewarm. Whisk in the egg yolks. Set mixture in the fridge and wait until the fig
mixture is cooled.
an ice cream machine, pour liquids into the frozen basin and process according to manufacturer instructions,
i.e., let spin and thicken for 20 minutes before adding mascarpone, fig jam mixture, and the nuts. Continue to
process for +/- 10 minutes. Pour semi-frozen mixture into a pyrex dish or glass Tupperware. Freeze for at least
two hours before serving.
1 1/2 cups milk


"x" "1" "SUTER,W AND ROMAGNA,F, DNA REPAIR INDUCED BY VARIOUS MUTAGENS IN RATHEPATOCYTE PRIMARY CULTURES MEASURED IN THE PRESENCE OF HYDROXYUREA, GUANAZOLEOR APHIDICOLIN, MUTAT. RES. 231(2):251-64, 1990"


- So this is my website with explanations of different sexualities and genders and a couple of definitions of the ace spectrum. Do be reminded that I'm not a rocket scientist and that this assignement wasn't abt the content but code. So please enjoy!!!


Composition Structure
A Composition contains Loops and loops contain the Bols (Recorded Samples). To compose, you have to create one or more Loops and create one or more Bols in each Loop. When you click the Play button, the Bols in the Loops are played in a sequence and the loops are also played in a sequence.
|
Composition |
|||||||||||
|
|
Sequence of Play --> |
|
|||||||||
|
Loop 1 |
Loop 2 |
Loop n |
|||||||||
|
Bol 1 |
Bol 2 |
... |
Bol n |
Bol 1 |
Bol 2 |
... |
Bol n |
Bol 1 |
Bol 2 |
... |
Bol n |
Naad presents two kinds of views on the same grid:
Composition View : Here you can see the layout of the Loops, their names and other info. Each loop is shown in a box. The sequence of playing the loops is from left to right and top to bottom. Any blank boxes are ignored, so you can put your loops anywhere you want. This view opens by default when you click on the menu File->New Composition.
Loop View : Click on a loop and click Open on the context menu which pops up, you are now in the Loop View. Here you can see the Bols. To go back to Composition View, click anywhere on the grid and click View Composition from the menu.
Bols
A Bol is the basic sound produced by Tabla (or any other Indian percussion instrument), when struck in a particular way. Tabla can produce hundreds of different Bols, depending on the drum and where it is struck. Naad uses 120 varieties of Bols, categorized in 12 species. This means there are 10 varieties of Bols for each species. The species are shown below. (These are nothing but the traditional names of the Bols).
Out of these 1-5 are produced on the small drum of Tabla (Dayan), 10-12 are produced on the big drum or the bass drum (Bayan) and 6-9 are produced by simultaneous hits of Dayan and Bayan. The variations of the Na species are named as Na01, Na02...Na10, and so on. Each variation is a wav file having actual recorded Bol of that type. Naad does not use any synthetic sounds, you hear the pure authentic Tabla. You can find these wav samples in the folder named Bol. Naad loads these samples from here.
Specifying a Bol in your composition
The Bol Folder
This folder has the wav samples, which are used to render your composition. However, you can specify your own samples simply by changing to another folder where your own samples are located by clicking on menu Options->Bol Folder.
Note that your folder can be of any name but it must have the same file names and subfolder names as the original. The wav files can have different sounds of Tabla or even of different instrument. The effect of changing the Bol folder to your own will be that your composition will be rendered with your samples.
You can hear all the samples in Bol folder by clicking on menu Options->Play All Samples
Loops
A Loop is a string of Bols. In a composition, the loop can be repeated many times or plays only once (e.g. at the start or end or during a change of beat, but it will be still called as a Loop).
In a loop, the Bols are grouped together in a Maatra. The whole Maatra is counted as a single beat. So if a maatra contains 4 Bols, all the 4 Bols shall be played in sequence to complete that beat. Of course, the Maatra can have a single Bol, in which case the number of Maatras in that loop is equal to the number of Bols.
A Maatra can also have nothing (Silence ~o~). So the silence is also treated as a Bol.
Creating a Loop
Context Menu
In the Loop View you will see this context menu whenever you click on a box.
Loop Properties
The loop may be repeated few times in a composition, or it may have many Bols in a Maatra. You can set these behaviours and properties via the Loop Properties Dialog. Click on menu View->Loop Properties to see this dialog.
Compositions
A Composition is a string of Loops. These loops are shown and created on the grid, which is called the Composition View. Click anywhere in this view to pop up the context menu for composition.
|
You can load a Naad version 0.2 file (.nad file) as a loop. Click on the Load Loop and in the file selection dialog set the filter to All Files. Select the Naad v 0.2 file and click Open. This file will be converted to current version and will be loaded as a loop. |
Composition Properties
On menu Click View->Composition Properties. This dialog shows the name of the composition, composer and any notes etc. Edit this to your likeness. When editing or improvising someone else's composition, be sure to keep the original names and notes as they are and append yours to it.


Babylab Homepage
Meet the Researchers
What We Do
For Parents
For Babies
Media Coverage
Babylab on the News
The Babylab studies have been featured in high impact journals and magazines! Have a look below.
Carousel
Previous
Next


{% extends "base.html" %} {% block content %}
Soji is a company dedicated to creating tools and technologies to enable others to stay clean. We currently offer one product, Remora, which is an unconventional and innovative shower caddy that brings both convenience and utility. If you would like to learn more, please click the "Our Products" tab!
We ensure that our products are always reliable.
We ensure that our products will provide you with convenience and utility.
We ensure that our products are easily affordable for any interested consumer.


With this repository I want to show what is possible in Minecraft Bedrock and that the limits are much lower than many think.
Sometimes it is just tricky!
Here you can find a lot of helpfull links an espacially examples (at least in the nearby future 😉).
If you have any questions about how things work feel free to ask through Issues.


RegExp.escape ( S )
`escape` takes a string S and returns a version of it with all control characters escaped. It escapes characters that would otherwise be treated by the regular expressions engine as special meta characters such as `^ $ \ . * + ? ( ) [ ] { } |` using an escape sequence character.
When the `escape` function is called with an argument _S_ the following steps are taken:
1. Let _str_ be ToString(_S_).
1. ReturnIfAbrupt(_str_).
1. Let _cpList_ be a List containing in order the code points as defined in 6.1.4 of _str_, starting at the first element of _str_.
1. Let _cuList_ be a new List
1. For each code point _c_ in _cpList_ in List order, do:
1. If _c_ is a SyntaxCharacter then do:
1. Append code unit 0x005C (REVERSE SOLIDUS) to cuList.
1. Append the elements of the UTF16Encoding (10.1.1) of c to cuList.
1. Let _L_ be a String whose elements are, in order, the elements of _cuList_.
1. Return _L_.
The `length` property of the `escape` method is *1*.
`escape` takes a string and escapes it so it can be literally represented as a pattern. In contrast EscapeRegExpPattern (as the name implies) takes a pattern and escapes it so that it can be represented as a string. While the two are related they do not share the same character escape set or perform similar actions.


D.O.B.
Phone:
Gender:
NHS No.
Video Call
End Call
Close Window
Restart the call
Connected -
00:00:00
Care Service Team
Location
Send
Confirmation
Click
End Call
to close an appointment.


What is JHPCE? JHPCE or the Joint High-Performance Computing Exchange is a computation resource available to members at the Johns Hopkins Medicial Institute (JHMI). Several research groups across the School of Public Health and School of Medicine tap into the power of JHPCE to run computationally expensive analyses - our transplant epidemiology group included.
The JHPCE introduction to new users describes some use cases. This blog will be a brief introduction to getting your system ready to log onto the JHPCE cluster to use Stata-MP.
Would you be surprised to find out that the figures above were made in Stata? I discover the work of Daniel Bischof about a year ago and it has changed the way I think about Stata figures.
I have been a long time user of ggplot2, the graphing R package by R Guru Hadley Wickham. Some of my publication figures using ggplot2 are dozens of lines long. I enjoy fiddling with every aspect of the aesthetic to make a perfectly clear visualization.
I wanted to give a quick shoutout to the Effort Report Podcast hosted by Roger Peng and Elizabeth Matsui. Both hosts are faculty members at Johns Hopkins (School of Public Health & School of Medicine) and they discuss issues that any budding academic should consider.
I’ve listened to every podcast (some multiple times) and I’ve even joined the conversation on Twitter.
I recently discovered that Mintty is a great way to make your Cygwin terminal prettier. Mintty made my conversation from Fedora to Windows 10 and Cygwin more palatable.
Like all Cygwin pacakges/add-ons you’ll have to install it using the Cygwin installer. You can find some quick instructions at HowToGeek.
While there are a number of themes out there, I really like this Base-16 inspired set. I’ve also done some other tweaks to make my Cygwin terminal behave like my Mac Terminal (such as transparency when not in focus).
I prefer to create new log files every time I (fully) run a Stata script. When I’m writing a script or testing code I might stop logging, but in general it’s wise to keep logs of important runs.
I store my logs in their own directory so that they don’t clog up my code directory (see organization). I title them with the scripts name followed by the date and time.


{% extends "layout.html" %} {% block page_title %} Money Claims Prototype {% endblock %} {% block content %} ALPHA This is a new service – your feedback will help us to improve it. Back How do you want to respond? How do you want to respond? I want to suggest a solution to Jan Clark You can try to reach an agreement with Jan Clark. An agreement is a way of preventing a County Court Judgment (CCJ) going ahead, if the claimant is willing to agree to one. I want to explain my side ('defend' the claim) The case will continue to a hearing. You might get a County Court Judgment (CCJ). If you pay within a month a judgment can be cancelled (removed completely). {% endblock %}
ALPHA This is a new service – your feedback will help us to improve it.
You can try to reach an agreement with Jan Clark. An agreement is a way of preventing a County Court Judgment (CCJ) going ahead, if the claimant is willing to agree to one.
The case will continue to a hearing. You might get a County Court Judgment (CCJ). If you pay within a month a judgment can be cancelled (removed completely).


November 19, 2019
Details Note, this month our meetup will be a week earlier to accommodate the Thanksgiving week
Introduction
This month we are lucky to have two of our seasoned speakers presenting. Alan, from RStudio, will give his much-anticipated talk on integrating React.js with Shiny. The reactR package has been updated to allow you to integrate with htmlwidgets and access all the React components. Emil will talk about his experience integrating the textrecipes into an ecosystem of packages and the lessons that he has learnt. This is becoming increasingly more important as the number of packages grows and so does the complexity of the analysis pipeline.
Come early, network, enjoy the food and talks.
Schedule
6:30 - 6:50 Networking 6:50 - 7:00 Welcome & general announcement 7:00 - 7:30 Integrating React.js and Shiny 7:30 - 8:00 Building a package that fits into an evolving ecosystem 8:00 - 8:30 Networking and Clean-up
Talk 1
Title: Integrating React.js and Shiny
Speaker: Alan Dipert
Abstract
React.js is a thriving JavaScript library that eases encapsulating and sharing sophisticated component libraries. The React.js ecosystem is filled with components for doing everything from color selection (react-color) to animation (react-spring). While it’s always been technically possible to integrate React.js components with Shiny applications, it hasn’t always been particularly obvious how. To make it easier, we augmented the excellent reactR package with functions specifically designed to make it easier to create new htmlwidgets, inputs, and outputs based on React.js components. In this talk, I will further motivate and demonstrate these new tools and do my best to empower the audience to try them out.
Talk 2
Title: Building a package that fits into an evolving ecosystem
Speaker: Emil Hvitfeldt
Abstract
With an ever-increasing amount of textual data is available to us, having a well-thought-out toolchain for modelling is crucial. tidymodels is a recent effort to create a modelling framework that shares the underlying design philosophy, grammar, and data structures of the tidyverse. textrecipes joined the roster a year ago and provided an exciting bridge to text preprocessing. This talk tells the tale of the package textrecipes; starting with the Github issue that sparked the idea for the package, go over the trials and challenges associated with building a package that heavily integrates with other packages all the way to the release on CRAN.


{% load static %}
Confirmation
{% if confirmed %}
Your profile is confirmed!
Login
{% else %}
There are errors during confirming your profile
{% endif %}


Useless Information:
My boyfriend had been feeling rather depressed lately. He was generally quite stressed out (financial and emotional stuff on his mind), he was lacking much of an appetite, and, night by night, becoming more of an insomniac. His irregular sleep patterns were making him more and more uncomfortable during the days' waking hours, however he's not one to take sleep-aids. His mom recommended 5-HTP, which she had apparently been taking for quite some time now (with St. Johns' Wort as a 'natural' alternative to anti-depressants), mentioning that 5-HTP made her quite drowsy. He bought a bottle of 80 / 50mg tablets at a local health food store, took them for (no more than) 3 days, and decided to discontinue use.
The Experiences:
I was bored one day and decided to take 300mgs (on an empty stomach), just to see how what this stuff could do. I have previously experimented with shrooms, LSD, crack, pre-cook, opiates, speed, MDMA, MDA, crystal meth... As well as some legal highs.
So, about 30 - 40 minutes after ingesting the pills, I noticed that I began to feel kind of 'off'. That's really the only way to describe it- I wasn't 'high', but I definitely wasn't thinking like myself. I had a barely-there euphoria, and a rather 'space-out' feeling. It was as if I had a cloud over my mind... I had to think about certain tasks, which I shouldn't have had to think about. I was thinking quite slowly. I was talking quite quickly. Sometimes, I would blurt out things before I could think about what I was saying, mixing up words(For Example: I would think 'Cats are cute' but I would say 'Cute cats are'). I was also stuttering, somewhat, which I normally do not. The experience in itself was not really all that interesting.
A couple days later, I upped the dosage to 500mg, on an empty stomach as well. Same effects as before, a little more pronounced. Severe nausea set in not long after I began feeling the initial effects come on. I vomited; it didn't make me feel any better.  Grossest bodily function ever. Eww..
After Effects:
Interestingly enough, although the immediate effects of 5-HTP kinda suck, there was an excellent effect on my quality of sleep, and dreams. I have had previous lucid dreams, though, none quite so realistic as the ones I had during the nights after taking 5-HTP. I can remember being awakened while still in my dream. Usually, soon after this happens, I become a little excited and wake myself up, accidently of course. During this one particular dream, I was awake in a nightmare. Everything was still going on around me, and I could not (seem to) 'control' anything. I became scared and uncomfortable, and began yelling at myself to 'wake up'. I could not wake up! I was literally trapped in this dream... I won't really go into further details regarding the dream itself, but really, it was quite intense. I have also woken up in sleep paralysis after each time in which I took 5-HTP. Not very comfortable!
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


One of the best things about Flight is that it plays well with exisiting apps. This means that you don’t need to migrate your whole app at once. Because flight components can’t communicate directly with the outside world, you can gradually migrate new components without affecting the rest of the application.
For this example we are going to use a Color Raffle application, this app consists of three basic parts:
- Raffle button: Picks a random color whenever it is clicked.
- Color Stats: Each of the color stats will update everytime that given color comes out of the raffle.
- History: Every time a color is selected, it will be added to the history wall.
NOTE: We will not go through the process setting up Flight and its depencencies, but it is a really easy process. For simplicity we are going to use the Flight standalone version.
Intentionally, we use a really badly structured JavaScript app. An easy way to start integrating flight is to select one of the three components mentioned above (Raffle button, Color Stats and History) and convert it into a Flight component.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
Let’s choose the color stats as a starting point. This is just a function that will update the count of the element which its data-color
attribute matches the given color.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
In a new file component/color_stat.js
lets create an empty flight component.
A Component is just a constructor with properties mixed into its prototype. It comes with a set of basic functionality such as event handling and Component registration.
In Flight a component communicates with other components via events, functions are not accessible on the component instance.
1 2 3 4 5 6 |
|
Now that we have our empty component, lets copy the updateColorStat
logic into the component, and update some references
Color Stats with updateColorStat Flight Component
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Great! But how are we going to wire them together? This is the easiest part, we simply want to trigger an event every time the raffle button is clicked.
So, lets replace the call to updateColorStat
and trigger an event, see Flight events naming conventions, uiColorSelected
and remove updateColorStat.
1 2 3 4 5 |
|
Now lets add a listener to our Flight component.
1 2 3 |
|
We are going to attach our component to each of the color stats element and done.
1
|
|
By now we are done migrating our first component, lets continue with the history component. We are going to follow the same steps:
1) Create an empty component.
1 2 3 4 5 |
|
2) Move logic into the component.
1 2 3 4 5 6 7 8 9 |
|
3) Listen to desired event.
1 2 3 |
|
4) Attach component to element
1 2 |
|
5) Remove logic from legacy code.
1 2 3 4 5 6 7 8 |
|
By now we have already moved two of the three components, I will let you do the last one on your own, but it basically the same step.
This is how it might look.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
You can find the full code here.
So, what have we achieved? We have divided the responsibilities across different components that are completely decoupled from each other. Scaling this app is now easier and more maintainable due to the modular nature of Flight.
The three components are UI components, but in the next post we are going to see how to extract a data component that handles all the data logic and provide it to the ui components.
NOTE: English is not my native language, I’ll be more than happy to receive any grammar or spelling corrections :)


The following two forms have the same form name. This should produce a warning note: frmNameNotUnique.
The following two forms are nested. This would produce a warning, however Firefox does not allow the nested form - notes: frmFormIsNested, frmFormContainsForms.
The following two forms have the same form ID. This should produce a warning note: frmNameNotUnique.
The following form has an invalid ID. This should produce a warning note: frmNameNotUnique.


Imagine this simple Silex application:
use Silex\Application;
$app = new Application();
$app->get('/api/info', function (Application $app) {
return $app->json([
'status' => true,
'info' => [
'name' => 'Gonzalo',
'surname' => 'Ayuso'
]]);
});
$app->run();
What happens if we want to use a security layer? We can use sessions. Sessions are the “standard” way to perform authentication in web applications, but when our application is a PhoneGap/Cordova application that uses a Silex server as API server, sessions aren’t the best way. The best way now is a token based authentication. The idea is simple. First we need a valid token. Our API server will give us a valid token if we send valid credentials in a login form. Then we need to send the token with each request (the same way than we send the session cookie with each request).
With Silex we can check this token and validate.
use Silex\Application;
$app = new Application();
$app->get('/api/info', function (Application $app) {
$token = $app->get('_token');
// here we need to validate the token ...
return $app->json([
'status' => true,
'info' => [
'name' => 'Gonzalo',
'surname' => 'Ayuso'
]]);
});
$app->run();
It isn’t an elegant solution. We need to validate the token within all routes and that’s bored. We also can use middlewares and validates the token with $app->before(). We’re going to build something like this, but with a few variations. First I want to keep the main application as clean as possible. Validation logic must be separated from application logic, so we will extend Silex\Application. Our main application will be like this:
use G\Silex\Application;
$app = new Application();
$app->get('/api/info', function (Application $app) {
return $app->json([
'status' => true,
'info' => [
'name' => 'Gonzalo',
'surname' => 'Ayuso'
]]);
});
$app->run();
Instead of Silex\Application we’ll use G\Silex\Application.
namespace G\Silex;
use Silex\Application as SilexApplication;
use G\Silex\Provider\Login\LoginBuilder;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class Application extends SilexApplication
{
public function __construct(array $values = [])
{
parent::__construct($values);
LoginBuilder::mountProviderIntoApplication('/auth', $this);
$this->after(function (Request $request, Response $response) {
$response->headers->set('Access-Control-Allow-Origin', '*');
});
}
}
Our new G\Silex\Application is a Silex\Application enabling CORS. We also mount a Service provider.
The responsibility of our API server will be check the token of every request and to provide one way to get a new token. To get a new token we will create a route “/auth/validateCredentials”. If a valid credentials are given, new token will be send to client.
Our Service provider has two parts: a service provider and a controller provider.
To mount both providers we will use a LoginBuilder class:
namespace G\Silex\Provider\Login;
use Silex\Application;
class LoginBuilder
{
public static function mountProviderIntoApplication($route, Application $app)
{
$app->register(new LoginServiceProvider());
$app->mount($route, (new LoginControllerProvider())->setBaseRoute($route));
}
}
Our Controller provider:
namespace G\Silex\Provider\Login;
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
use Symfony\Component\HttpFoundation\Request;
use Silex\ControllerProviderInterface;
use Silex\Application;
class LoginControllerProvider implements ControllerProviderInterface
{
const VALIDATE_CREDENTIALS = '/validateCredentials';
const TOKEN_HEADER_KEY = 'X-Token';
const TOKEN_REQUEST_KEY = '_token';
private $baseRoute;
public function setBaseRoute($baseRoute)
{
$this->baseRoute = $baseRoute;
return $this;
}
public function connect(Application $app)
{
$this->setUpMiddlewares($app);
return $this->extractControllers($app);
}
private function extractControllers(Application $app)
{
$controllers = $app['controllers_factory'];
$controllers->get(self::VALIDATE_CREDENTIALS, function (Request $request) use ($app) {
$user = $request->get('user');
$pass = $request->get('pass');
$status = $app[LoginServiceProvider::AUTH_VALIDATE_CREDENTIALS]($user, $pass);
return $app->json([
'status' => $status,
'info' => $status ? ['token' => $app[LoginServiceProvider::AUTH_NEW_TOKEN]($user)] : []
]);
});
return $controllers;
}
private function setUpMiddlewares(Application $app)
{
$app->before(function (Request $request) use ($app) {
if (!$this->isAuthRequiredForPath($request->getPathInfo())) {
if (!$this->isValidTokenForApplication($app, $this->getTokenFromRequest($request))) {
throw new AccessDeniedHttpException('Access Denied');
}
}
});
}
private function getTokenFromRequest(Request $request)
{
return $request->headers->get(self::TOKEN_HEADER_KEY, $request->get(self::TOKEN_REQUEST_KEY));
}
private function isAuthRequiredForPath($path)
{
return in_array($path, [$this->baseRoute . self::VALIDATE_CREDENTIALS]);
}
private function isValidTokenForApplication(Application $app, $token)
{
return $app[LoginServiceProvider::AUTH_VALIDATE_TOKEN]($token);
}
}
And our Service provider:
namespace G\Silex\Provider\Login;
use Silex\Application;
use Silex\ServiceProviderInterface;
class LoginServiceProvider implements ServiceProviderInterface
{
const AUTH_VALIDATE_CREDENTIALS = 'auth.validate.credentials';
const AUTH_VALIDATE_TOKEN = 'auth.validate.token';
const AUTH_NEW_TOKEN = 'auth.new.token';
public function register(Application $app)
{
$app[self::AUTH_VALIDATE_CREDENTIALS] = $app->protect(function ($user, $pass) {
return $this->validateCredentials($user, $pass);
});
$app[self::AUTH_VALIDATE_TOKEN] = $app->protect(function ($token) {
return $this->validateToken($token);
});
$app[self::AUTH_NEW_TOKEN] = $app->protect(function ($user) {
return $this->getNewTokenForUser($user);
});
}
public function boot(Application $app)
{
}
private function validateCredentials($user, $pass)
{
return $user == $pass;
}
private function validateToken($token)
{
return $token == 'a';
}
private function getNewTokenForUser($user)
{
return 'a';
}
}
Our Service provider will have the logic to validate credentials, token and it must be able to generate a new token:
private function validateCredentials($user, $pass)
{
return $user == $pass;
}
private function validateToken($token)
{
return $token == 'a';
}
private function getNewTokenForUser($user)
{
return 'a';
}
As we can see the logic of the example is very simple. It’s just an example and here we must to perform our logic. Probably we need to check credentials with our database, and our token must be stored somewhere to be validated later.
You can see the example in my github account. In another post we will see how to build a client application with angularJs to use this API server.


Seamless Server
this is the server application for Seamless.
Getting Started
this section describes common scripts that can be used.
- continuously build and serve:
npm start
. - continuously test:
npm test
. - continuously document:
npm run doc
. - build app:
npm run build
. - test once:
npm run test:once
. - create docs:
npm run doc:once
. - deploy app:
npm run deploy
. - update dependancies:
npm i
.
Source Structure
this section describes the structure we will be using.
main.js
- This is where all endpoints will be registered with the server app.
endpoints
- Each folder in endpoints will encompass its own: router, controller/s (for CRUD), and model.
libs
- any business heavy logic should be lifted from the endpoint and refactored in libs as to keep code clean.
Testing
testing will be conducted using avajs. specs will be placed in the same directory as the code they are testing and will be noted as '/spec.js/'.
Code Style
to maintain code style we will be using es-lint in combination with the airbnb base configurations.
Documentation
to generate documentation we are using esdocs. please see here. Also it is worth looking for a editor plugin to help generate templates for docs (for atom try: atom-easy-jsdoc. it doesnt work perfectly but atleast decent).


The Black Cat is an online multiplayer card game. It consists of two parts: Node.js server and client app written in Kotlin and based on LibGDX game framework.
server.zip
npm install
commandStart server by running npm run launch
command. The default port is 3000. To change it run one of these commands before running npm run launch
.
PORT=REPLACE_WITH_NUMBER
set PORT=REPLACE_WITH_NUMBER
$env:PORT = REPLACE_WITH_NUMBER
If you are using reverse proxy, make sure it has configured WebSockets support correctly. Otherwise, it might not work at all.
Alternatively, you can clone this repo and run npm run start
command.
The server fully supports secured communication, but doesn't care how you provide it. I recommend using reverse proxy to achieve it. Example configuration (nginx):
server {
server_name sr1.theblackcat.club;
listen 80;
listen [::]:80;
return 301 https://$server_name$request_uri;
}
server {
server_name sr1.theblackcat.club;
listen 443 ssl http2;
listen [::]:443 ssl http2;
# SSL certificate and configuration
include snippets/ssl-sr1.theblackcat.club.conf;
include snippets/ssl-params.conf;
location / {
proxy_pass http://localhost:9011;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
MIT
Generated using TypeDoc


Example¶
Below is a simple example demonstrating how to extract all available features.
There are test images provided with this package.
#import libraries
import sys
sys.path.append("../")
import os
from nmco.utils.Run_nuclear_feature_extraction import run_nuclear_chromatin_feat_ext
# initialising paths
labelled_image_path = os.path.join(os.path.dirname(os.getcwd()),'example_data/nuc_labels.tif')
raw_image_path = os.path.join(os.path.dirname(os.getcwd()),'example_data/raw_image.tif')
feature_path = os.path.join(os.path.dirname(os.getcwd()),'example_data/')
# For a quick extraction of all available features for all labelled nuclei given a segmented image with default parameters
features = run_nuclear_chromatin_feat_ext(raw_image_path,labelled_image_path,feature_path)
A more detailed implimenataion can be seen in the jupyter notebook “Nuclear_Features.ipynb”


--- layout: post title: 6 ways to maximize your instagram engagement description: instagram, maximize instagram engagement, medical dictionary, medical terms, instagram story, health, medical words ---
Do you want to grow your following on Instagram? Perhaps you're a social media influencer who wants more engagement and followers. If so, then this blog post is for you! In this post we are going to provide tips that will help increase your Instagram engagements, as well as give strategies for how to gain followers on the app. We'll also discuss the importance of having a bio link in order to convert followers into customers or leads.
We'll start by discussing some general guidelines about using hashtags when posting on Instagram- it can be difficult because there are so many available (you might even wonder why anyone would need that many!). It's important to note that not all hashtags work with every photo;
Your social media feed is an extension of your business. It's how you share the latest company updates, communicate with prospects and customers, promote new products or services-and it can be a powerful tool for driving sales too! Here are six tips to help you maximize engagement on Instagram so that you're getting more followers and increased product or service sales from this platform.


{% extends "base.html" %} {% block body %}
This sample SaaS web app based on Python Flask uses Oauth2.0 to sign-in users from any Azure AD tenant, and calls the Azure AD Graph API.
View From Github »


{{content}}
Are you a Research Software Engineer?People who combine expertise with software and an intricate understanding of research… |
Join us! |
What can I do to help?You can help by joining us, by raising awareness of research software engineering… |
Our ObjectivesWe will create a community for the UK’s Research Software Engineers… |
Why does it matter?If the UK is to continue to be a major research leader, effort and resources must be invested… |
SupportersWho’s helping the community… |


Use multi-stage builds
Estimated reading time: 6 minutesMulti-stage builds are a new feature requiring Docker 17.05 or higher on the daemon and client. Multistage builds are useful to anyone who has struggled to optimize Dockerfiles while keeping them easy to read and maintain.
Acknowledgment: Special thanks to Alex Ellis for granting permission to use his blog post Builder pattern vs. Multi-stage builds in Docker as the basis of the examples below.
Before multi-stage builds
One of the most challenging things about building images is keeping the image size down. Each instruction in the Dockerfile adds a layer to the image, and you need to remember to clean up any artifacts you don’t need before moving on to the next layer. To write a really efficient Dockerfile, you have traditionally needed to employ shell tricks and other logic to keep the layers as small as possible and to ensure that each layer has the artifacts it needs from the previous layer and nothing else.
It was actually very common to have one Dockerfile to use for development (which contained everything needed to build your application), and a slimmed-down one to use for production, which only contained your application and exactly what was needed to run it. This has been referred to as the “builder pattern”. Maintaining two Dockerfiles is not ideal.
Here’s an example of a Dockerfile.build
and Dockerfile
which adhere to the
builder pattern above:
Dockerfile.build
:
FROM golang:1.7.3
WORKDIR /go/src/github.com/alexellis/href-counter/
COPY app.go .
RUN go get -d -v golang.org/x/net/html \
&& CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
Notice that this example also artificially compresses two RUN
commands together
using the Bash &&
operator, to avoid creating an additional layer in the image.
This is failure-prone and hard to maintain. It’s easy to insert another command
and forget to continue the line using the \
character, for example.
Dockerfile
:
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY app .
CMD ["./app"]
build.sh
:
#!/bin/sh
echo Building alexellis2/href-counter:build
docker build --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy \
-t alexellis2/href-counter:build . -f Dockerfile.build
docker container create --name extract alexellis2/href-counter:build
docker container cp extract:/go/src/github.com/alexellis/href-counter/app ./app
docker container rm -f extract
echo Building alexellis2/href-counter:latest
docker build --no-cache -t alexellis2/href-counter:latest .
rm ./app
When you run the build.sh
script, it needs to build the first image, create
a container from it to copy the artifact out, then build the second
image. Both images take up room on your system and you still have the app
artifact on your local disk as well.
Multi-stage builds vastly simplify this situation!
Use multi-stage builds
With multi-stage builds, you use multiple FROM
statements in your Dockerfile.
Each FROM
instruction can use a different base, and each of them begins a new
stage of the build. You can selectively copy artifacts from one stage to
another, leaving behind everything you don’t want in the final image. To show
how this works, let’s adapt the Dockerfile from the previous section to use
multi-stage builds.
Dockerfile
:
FROM golang:1.7.3
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=0 /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]
You only need the single Dockerfile. You don’t need a separate build script,
either. Just run docker build
.
$ docker build -t alexellis2/href-counter:latest .
The end result is the same tiny production image as before, with a significant reduction in complexity.
How does it work? The second FROM
instruction starts a new build stage with
the alpine:latest
image as its base. The COPY --from=0
line copies just the
built artifact from the previous stage into this new stage. The Go SDK and any
intermediate artifacts are left behind, and not saved in the final image.
Name your build stages
By default, the stages are not named, and you refer to them by their integer
number, starting with 0 for the first FROM
instruction. However, you can
name your stages, by adding an AS <NAME>
to the FROM
instruction. This
example improves the previous one by naming the stages and using the name in
the COPY
instruction. This means that even if the instructions in your
Dockerfile are re-ordered later, the COPY
doesn’t break.
FROM golang:1.7.3 AS builder
WORKDIR /go/src/github.com/alexellis/href-counter/
RUN go get -d -v golang.org/x/net/html
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /go/src/github.com/alexellis/href-counter/app .
CMD ["./app"]
Stop at a specific build stage
When you build your image, you don’t necessarily need to build the entire
Dockerfile including every stage. You can specify a target build stage. The
following command assumes you are using the previous Dockerfile
but stops at
the stage named builder
:
$ docker build --target builder -t alexellis2/href-counter:latest .
A few scenarios where this might be very powerful are:
- Debugging a specific build stage
- Using a
debug
stage with all debugging symbols or tools enabled, and a leanproduction
stage - Using a
testing
stage in which your app gets populated with test data, but building for production using a different stage which uses real data
Use an external image as a “stage”
When using multi-stage builds, you are not limited to copying from stages you
created earlier in your Dockerfile. You can use the COPY --from
instruction to
copy from a separate image, either using the local image name, a tag available
locally or on a Docker registry, or a tag ID. The Docker client pulls the image
if necessary and copies the artifact from there. The syntax is:
COPY --from=nginx:latest /etc/nginx/nginx.conf /nginx.conf
images, containers, best practices, multi-stage, multistage


Functions | |
Rand Functions | |
| __device__ void | swizzleShift (uint4 *f) |
| Does a GLSL-style swizzle assigning f->xyzw = f->yzwx. | |
| __device__ unsigned int | leftRotate (unsigned int x, unsigned int n) |
| Rotates the bits in x over by n bits. | |
| __device__ unsigned int | F (unsigned int x, unsigned int y, unsigned int z) |
| The F scrambling function. | |
| __device__ unsigned int | G (unsigned int x, unsigned int y, unsigned int z) |
| The G scrambling function. | |
| __device__ unsigned int | H (unsigned int x, unsigned int y, unsigned int z) |
| The H scrambling function. | |
| __device__ unsigned int | I (unsigned int x, unsigned int y, unsigned int z) |
| The I scrambling function. | |
| __device__ void | FF (uint4 *td, int i, uint4 *Fr, float p, unsigned int *data) |
| The FF scrambling function. | |
| __device__ void | GG (uint4 *td, int i, uint4 *Gr, float p, unsigned int *data) |
| The GG scrambling function. | |
| __device__ void | HH (uint4 *td, int i, uint4 *Hr, float p, unsigned int *data) |
| The HH scrambling function. | |
| __device__ void | II (uint4 *td, int i, uint4 *Ir, float p, unsigned int *data) |
| The II scrambling function. | |
| __device__ void | setupInput (unsigned int *input, unsigned int seed) |
| Sets up the input array using information of seed, and threadIdx. |


Audiolyzer
Toggle navigation
Info Panel
Global settings
Audio settings:
Source:
Background settings:
Upload Image:
Display Bkg Image:
Loaded img opacity:
Color:
Relations Graph:
Load graph
Save graph
Scene Relations Graph


MP Court Issues A Summons Against Ameesha Patel In A Cheating Case
As per the complaint, Ameesha Patel issued a cheque to film producer Ajay Singh, which eventually bounced.
by Koimoi.com TeamIn the last month, we came across the shocking news as the case for cheating was registered against Bollywood actress Ameesha Patel. As per the complaint, Ameesha Patel issued a cheque to film producer Ajay Singh, which eventually bounced. Now, there’s another news flowing in which is surely an add-on in the trouble of the actress.
As per the latest reports flowing in, Madhya Pradesh court has issued a summons to Ameesha in a 10 lakhs cheque bounce case. The court has asked to be present before it on 27th January 2020.
Judicial Magistrate First Class (JMFC) Manish Bhatt issued the summons under section 318 of Negotiable Instruments Act.
“The JMFC directed the actor to remain present before it on January 27,” petitioner Nisha Chhipa’s counsel, Durgesh Sharma quoted.
It is being said that Ameesha borrowed 10 lakhs for producing a film.
Meanwhile, last month, Ranchi court issued an arrest warrant against Ameesha in a cheating and cheque bounce case, police said on Saturday.
“Ameesha Patel and her business partner Kunal had taken Rs 2.50 crore for making a film. They had assured to return the money after the release of the film in 2018. The film never released in 2018. When we approached Ameesha Patel for the money, she gave a cheque of Rs 3 crore, which bounced,” said Ajay Singh in a press statement.


--- layout: default ---
Please don't...
I made a mistake I should've never done this... I should've never left... These children... these souls... how many souls have we harvested... sentenced the innocent to a fate worse than death... To this place. If you can call it a place... Don't make the same mistakes I did. Don't go down this path.
{%- include footer.html -%}


-
The Integer type in CQL supports the representation of whole numbers, positive and negative. CQL supports a full set of Arithmetic Operators for performing computations involving whole numbers.
In addition, any operation involving Decimals can be used with values of type Integer because Integer values can always be implicitly converted to Decimal values.


{% extends 'contents/_base.html' %} {% block title %}Code of Conduct{% endblock title %} {% block content %}
PyCon Taiwan is a community-driven convention for the Python programming language in Taiwan, created to facilitate discussions and exchange of ideas in the community. To provide a joyful, pleasant, and vibrant environment that creates value for all participants, we hereby publish PyCon Taiwan’s Code of Conduct, which applies to all speech and action in both physical and digital venues of PyCon Taiwan. Your cooperation is necessary to help all of us to interact with respect and trust in PyCon Taiwan.
Do not harass others, either verbally, physically, or otherwise. Harassment and discrimination is given zero tolerance.
Appreciate each other. Each attendee is expected to show a professional attitude, and behave accordingly. User of Python are diverse in their professional roles, technical backgrounds, and application areas. They contribute to the technology in many different ways, some amazingly unimaginable. Opinions or actions that undervalue other members of the community are inappropriate.
Show consideration to others. Sexual contents in any form are inappropriate in any conference venues, including but not limited to talks, open spaces, or social media. Words and actions originated from stereotypes are discouraged. Cell phones should be set to silence or a mode that does not annoy others in the conference rooms.
The conference organizers have the power to take appropriate actions to redirect behavior of those who violate the Code of Conduct. Violators may be forced to leave the conference without a refund at the sole discretion of the organizers.
This Code of Conduct is approved by the organizers of PyCon Taiwan.
{% endblock content %}


A HTML5 client-side solution for generating PDFs. Perfect for event tickets, reports, certificates, you name it!
No servers were used in the making of this demo.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
| 3 | * contributor license agreements. See the NOTICE file distributed with | |
| 4 | * this work for additional information regarding copyright ownership. | |
| 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| 6 | * (the "License"); you may not use this file except in compliance with | |
| 7 | * the License. You may obtain a copy of the License at | |
| 8 | * | |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | * | |
| 11 | * Unless required by applicable law or agreed to in writing, software | |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | * See the License for the specific language governing permissions and | |
| 15 | * limitations under the License. | |
| 16 | */ | |
| 17 | package org.apache.commons.collections4.functors; | |
| 18 | ||
| 19 | import java.io.Serializable; | |
| 20 | import java.util.Collection; | |
| 21 | ||
| 22 | import org.apache.commons.collections4.Closure; | |
| 23 | ||
| 24 | /** | |
| 25 | * Closure implementation that chains the specified closures together. | |
| 26 | * | |
| 27 | * @since 3.0 | |
| 28 | * @version $Id: ChainedClosure.java 1479336 2013-05-05 15:06:50Z tn $ | |
| 29 | */ | |
| 30 | public class ChainedClosure<E> implements Closure<E>, Serializable { | |
| 31 | ||
| 32 | /** Serial version UID */ | |
| 33 | private static final long serialVersionUID = -3520677225766901240L; | |
| 34 | ||
| 35 | /** The closures to call in turn */ | |
| 36 | private final Closure<? super E>[] iClosures; | |
| 37 | ||
| 38 | /** | |
| 39 | * Factory method that performs validation and copies the parameter array. | |
| 40 | * | |
| 41 | * @param <E> the type that the closure acts on | |
| 42 | * @param closures the closures to chain, copied, no nulls | |
| 43 | * @return the chained closure | |
| 44 | * @throws IllegalArgumentException if the closures array is null | |
| 45 | * @throws IllegalArgumentException if any closure in the array is null | |
| 46 | */ | |
| 47 | public static <E> Closure<E> chainedClosure(final Closure<? super E>... closures) { | |
| 48 |
1
1. chainedClosure : removed call to org/apache/commons/collections4/functors/FunctorUtils::validate → KILLED |
FunctorUtils.validate(closures); |
| 49 |
1
1. chainedClosure : negated conditional → KILLED |
if (closures.length == 0) { |
| 50 |
1
1. chainedClosure : mutated return of Object value for org/apache/commons/collections4/functors/ChainedClosure::chainedClosure to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return NOPClosure.<E>nopClosure(); |
| 51 | } | |
| 52 |
1
1. chainedClosure : mutated return of Object value for org/apache/commons/collections4/functors/ChainedClosure::chainedClosure to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return new ChainedClosure<E>(closures); |
| 53 | } | |
| 54 | ||
| 55 | /** | |
| 56 | * Create a new Closure that calls each closure in turn, passing the | |
| 57 | * result into the next closure. The ordering is that of the iterator() | |
| 58 | * method on the collection. | |
| 59 | * | |
| 60 | * @param <E> the type that the closure acts on | |
| 61 | * @param closures a collection of closures to chain | |
| 62 | * @return the chained closure | |
| 63 | * @throws IllegalArgumentException if the closures collection is null | |
| 64 | * @throws IllegalArgumentException if any closure in the collection is null | |
| 65 | */ | |
| 66 | @SuppressWarnings("unchecked") | |
| 67 | public static <E> Closure<E> chainedClosure(final Collection<Closure<E>> closures) { | |
| 68 |
1
1. chainedClosure : negated conditional → KILLED |
if (closures == null) { |
| 69 | throw new IllegalArgumentException("Closure collection must not be null"); | |
| 70 | } | |
| 71 |
1
1. chainedClosure : negated conditional → KILLED |
if (closures.size() == 0) { |
| 72 |
1
1. chainedClosure : mutated return of Object value for org/apache/commons/collections4/functors/ChainedClosure::chainedClosure to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return NOPClosure.<E>nopClosure(); |
| 73 | } | |
| 74 | // convert to array like this to guarantee iterator() ordering | |
| 75 | final Closure<? super E>[] cmds = new Closure[closures.size()]; | |
| 76 | int i = 0; | |
| 77 |
1
1. chainedClosure : negated conditional → KILLED |
for (final Closure<? super E> closure : closures) { |
| 78 |
1
1. chainedClosure : Changed increment from 1 to -1 → KILLED |
cmds[i++] = closure; |
| 79 | } | |
| 80 |
1
1. chainedClosure : removed call to org/apache/commons/collections4/functors/FunctorUtils::validate → KILLED |
FunctorUtils.validate(cmds); |
| 81 |
1
1. chainedClosure : mutated return of Object value for org/apache/commons/collections4/functors/ChainedClosure::chainedClosure to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return new ChainedClosure<E>(false, cmds); |
| 82 | } | |
| 83 | ||
| 84 | /** | |
| 85 | * Hidden constructor for the use by the static factory methods. | |
| 86 | * | |
| 87 | * @param clone if {@code true} the input argument will be cloned | |
| 88 | * @param closures the closures to chain, no nulls | |
| 89 | */ | |
| 90 | private ChainedClosure(final boolean clone, final Closure<? super E>... closures) { | |
| 91 | super(); | |
| 92 |
1
1. |
iClosures = clone ? FunctorUtils.copy(closures) : closures; |
| 93 | } | |
| 94 | ||
| 95 | /** | |
| 96 | * Constructor that performs no validation. | |
| 97 | * Use chainedClosure if you want that. | |
| 98 | * | |
| 99 | * @param closures the closures to chain, copied, no nulls | |
| 100 | */ | |
| 101 | public ChainedClosure(final Closure<? super E>... closures) { | |
| 102 | this(true, closures); | |
| 103 | } | |
| 104 | ||
| 105 | /** | |
| 106 | * Execute a list of closures. | |
| 107 | * | |
| 108 | * @param input the input object passed to each closure | |
| 109 | */ | |
| 110 | public void execute(final E input) { | |
| 111 |
3
1. execute : changed conditional boundary → KILLED 2. execute : Changed increment from 1 to -1 → KILLED 3. execute : negated conditional → KILLED |
for (final Closure<? super E> iClosure : iClosures) { |
| 112 |
1
1. execute : removed call to org/apache/commons/collections4/Closure::execute → KILLED |
iClosure.execute(input); |
| 113 | } | |
| 114 | } | |
| 115 | ||
| 116 | /** | |
| 117 | * Gets the closures. | |
| 118 | * | |
| 119 | * @return a copy of the closures | |
| 120 | * @since 3.1 | |
| 121 | */ | |
| 122 | public Closure<? super E>[] getClosures() { | |
| 123 |
1
1. getClosures : mutated return of Object value for org/apache/commons/collections4/functors/ChainedClosure::getClosures to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return FunctorUtils.<E>copy(iClosures); |
| 124 | } | |
| 125 | ||
| 126 | } | |
Mutations | ||
| 48 |
1.1 |
|
| 49 |
1.1 |
|
| 50 |
1.1 |
|
| 52 |
1.1 |
|
| 68 |
1.1 |
|
| 71 |
1.1 |
|
| 72 |
1.1 |
|
| 77 |
1.1 |
|
| 78 |
1.1 |
|
| 80 |
1.1 |
|
| 81 |
1.1 |
|
| 92 |
1.1 |
|
| 111 |
1.1 2.2 3.3 |
|
| 112 |
1.1 |
|
| 123 |
1.1 |


Project Marilyn: 9DS Xenograft Test
Isaac T Yonemoto
indysci dot org
History of Sibiromycin
Discovered in 1970s by Soviet researchers in Siberia
Antimicrobial activity "bioassay"
Adapted from Li, et. al, 2009 (AEM)
Found to have antineoplastic activity
Cardiotoxic in animal models
Mechanism of Sibiromycin Action
Reactive imine group alkylates exocyclic amine of DNA Guanine bases
Cationic sugar extends and binds to the phosphodiester backbone*
Twist imparted by chirogenic center makes the 6-7-5 ring fit into the minor groove
Evades base excision repair system
Sibiromycin Family
Adapted from Gerratana, 2012 (MRR)
Many PBDs have been discovered
The most potently antineoplastic PBDs are cardiotoxic
Neothramycin is not cardiotoxic and has limited clinical use
SJG-136
Adapted from Clingen, et. al., 2005 (NAR)
Synthetic compound developed by Spirogen
Presumably Similar Mechanism
Single-digit nanomolar
in vitro
activity
Very mild side effects
water retention
Mutasynthetic Scheme
Mutasynthetic Scheme
Synthesis Procedure
48 hours of culture
Centrifugation
Filtration
Wash/Extraction
Concentration
Silica Gel Chromatography
Size Exclusion Chromatography
~2.5mg/L yield
Results from Part I
NCI Cell line
Cancer class
Sibiromycin
9DS
SR
leukemia
25.1
3.2
NCI-H522
lung
120.2
7.6
MCF7
breast
131.8
8.5
SK-MEL-5
melanoma
154.9
14.1
GI
50
(nm) for selected cell lines
Project Marilyn Objectives
Production of 10+mg of 9DS
Delivery of 9DS to a xenograft CRO
Completion of a 5-armed xenograft study
Project Marilyn Secondary Objectives
Identification and testing of a new compound, "Satoshimycin"
Correction of Tm measurements
Project Marilyn Timeline
Lab Opening: Imminent (2-3 weeks)
Piloting batch of 9DS completed: 2 mo
Initial Analytic (NMR, MS) of 9DS completed: 3 mo
Delivery of 9DS to CRO: 6 mo
Completion of xenograft by CRO: 12 mo
Identification of Satoshimycin and other compounds: 1 mo
Analysis, NCI-60 of Satoshimycin: 6 mo


DRIVEN ------
When former racing star Joe Tanto (Sylvester Stallone) gets a call from team owner Carl Henry (Burt Reynolds), he's not being asked to win races. Henry needs an old pro to act as a blocker for his rising star, rookie Jimmy Blye (Kip Pardue, "Remember the Titans"), who's giving CART world champion Beau Brandenburg (Til Schweiger, "Judas Kiss") some serious competition in "Driven."
"Driven" reunites the writer/star (Stallone) and director (Renny Harlin) of Stallone's last hit "Cliffhanger," but the pairing is less successful this time around the track.
Stallone once again casts himself as a sensitive, damaged pro although we're never really clued into the trauma of Tanto's past (something about almost getting killed in a race). He's brought in to mentor Blye, but has his access to the young racer blocked by Blye's ambitious brother/manager Demille (a one-dimensional Robert Sean Leonard).
Branderburg, needing to refocus after losing one too many races to a rookie, dumps his fiance Sophia (Estella Warren). Still part of Beau's crew, Sophia starts up a friendship with Jimmy which Jimmy hopes will turn to romance. When Beau approaches and rewins Sophia at a racing event, Jimmy sets off in a pique, taking a racing car into the streets of Chicago. Tanto follows and cools the hotheaded Blye off so everyone can get down to driving cars.
Stallone, who won an Oscar for writing "Rocky" back in 1976, serves up some real dreck with "Driven." This is the kind of flick that finds two racers seriously endangering the city streets only to have a Yoda/Luke moment and walk away without so much as a police warning.  Director Harlin appears to be trying to cop Oliver Stone's "Any Given Sunday" style, but instead achieves a empty flash. CGI effects are so overused that you'll feel like you're inside a video game.
Even so, Stallone works in a couple of good bits, such as Tanto's talent for picking up quarters on the racetrack and the hilariously witchy exchange between Tanto's ex-wife (Gina Gershon, "Showgirls") and new love interest (Stacy Edwards, "The Next Best Thing"). Harlin also does put his audience inside a race car travelling at speeds of 240 mph, hurtles crashed car parts at us with glee and turns his sound levels up to 11. Newcomer Cristian de la Fuente is a find as good-natured driver Memo Moreno, Joe's old buddy who just happens to have married his ex-wife. Also promising is model/synchronized swimmer Warren.
Overall, "Driven's" a pretty silly movie, but it does offer some emtpy-headed thrills.
C
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>========== X-RAMR-ID: 28724 X-RT-AuthorID: 1487 X-RT-TitleID: 1107198 X-RT-RatingText: C
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


Anti-vaxxer poses as federal official
by AAPA person posing as a Therapeutic Goods Administration official has walked into a Melbourne health clinic and demanded vaccination posters be removed.
The Commonwealth organisation said it was aware of the impersonation and warned anyone else thinking of trying the trick that they would be breaking the law.
“Impersonating Commonwealth public officials is a criminal offence,” the TGA said on Thursday.
“We advise individuals who may be encouraged to impersonate an officer of the TGA that this is a serious criminal offence that may lead to prosecution.”
The TGA said it broadly prohibits the advertising of prescription medicines including vaccines. However, that is not the case when the medication is authorised or required by a government authority.
“Posters relating to vaccines and vaccination sanctioned by the Australian government Department of Health under the National Immunisation Program are permitted,” the TGA said.
“As part of an important public health campaign, this material is appropriate and legal, and provides important health information to consumers.
“If clinics and health professionals produce their own public information materials, we advise focusing on services, rather than specific products to avoid a breach of the advertising requirements.”


Guerilla Girls
In 1984, an exhibition surveying what were said to be the most significant artists in painting and sculpture opened at The Museum of Modern Art (MOMA). Of those exhibited, 13 of the 169 artists were women and all the artists were white, European or American. This represented the pervasive inequalities in the art world and led a group of women artists to create Guerilla Girls.
The Guerrilla Girls are a collective of feminist activist artists, who don gorilla masks for anonymity and create art that seeks to ‘expose gender and ethnic bias as well as corruption in politics, art, film, and pop culture’. They have used their platform to demand change and ask provocative questions like ‘do women have to be naked to get into the met.museum?’ a line that is screenprinted in their artwork alongside the statistic, ‘less than 5% of the artists in the Modern Art Sections are women, but 85% of the nudes are female’. For over 30 years the groups has confronted inequalities through art, sharing their works across the world.
The group started in New York in 1984 and now works worldwide.
Go to their website or Twitter to find out more about current projects.


Module: RSpec::Mocks::TestDouble
- Included in:
- Double
- Defined in:
- lib/rspec/mocks/test_double.rb
Overview
Implements the methods needed for a pure test double. RSpec::Mocks::Double includes this module, and it is provided for cases where you want a pure test double without subclassing RSpec::Mocks::Double.
Instance Method Summary (collapse)
-
- (Object) ==(other)
This allows for comparing the mock to other objects that proxy such as ActiveRecords belongs_to proxy objects.
-
- (Object) as_null_object
Tells the object to respond to all messages.
-
- (Object) freeze
Override for default freeze implementation to prevent freezing of test doubles.
-
- (Object) initialize(name = nil, stubs = {})
Creates a new test double with a
name
(that will be used in error messages only). -
- (Boolean) null_object?
Returns true if this object has received
as_null_object
.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
- (Object) method_missing(message, *args, &block) (private)
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/rspec/mocks/test_double.rb', line 73 def method_missing(, *args, &block) proxy = __mock_proxy proxy.(, *args, &block) if proxy.null_object? case when :to_int then return 0 when :to_a, :to_ary then return nil when :to_str then return to_s else return self end end # Defined private and protected methods will still trigger `method_missing` # when called publicly. We want ruby's method visibility error to get raised, # so we simply delegate to `super` in that case. # ...well, we would delegate to `super`, but there's a JRuby # bug, so we raise our own visibility error instead: # https://github.com/jruby/jruby/issues/1398 visibility = proxy.visibility_for() if visibility == :private || visibility == :protected ErrorGenerator.new(self, @name).raise_non_public_error( , visibility ) end # Required wrapping doubles in an Array on Ruby 1.9.2 raise NoMethodError if [:to_a, :to_ary].include? proxy.(, *args) end |
Instance Method Details
- (Object) ==(other)
This allows for comparing the mock to other objects that proxy such as ActiveRecords belongs_to proxy objects. By making the other object run the comparison, we're sure the call gets delegated to the proxy target.
36 37 38 |
# File 'lib/rspec/mocks/test_double.rb', line 36 def ==(other) other == __mock_proxy end |
- (Object) as_null_object
Tells the object to respond to all messages. If specific stub values are declared, they'll work as expected. If not, the receiver is returned.
23 24 25 |
# File 'lib/rspec/mocks/test_double.rb', line 23 def as_null_object __mock_proxy.as_null_object end |
- (Object) freeze
Override for default freeze implementation to prevent freezing of test doubles.
67 68 69 |
# File 'lib/rspec/mocks/test_double.rb', line 67 def freeze RSpec.warn_with("WARNING: you attempted to freeze a test double. This is explicitly a no-op as freezing doubles can lead to undesired behaviour when resetting tests.") end |
- (Object) initialize(name = nil, stubs = {})
Creates a new test double with a name
(that will be used in error
messages only)
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/rspec/mocks/test_double.rb', line 9 def initialize(name=nil, stubs={}) @__expired = false if Hash === name && stubs.empty? stubs = name @name = nil else @name = name end assign_stubs(stubs) end |
- (Boolean) null_object?
Returns true if this object has received as_null_object
28 29 30 |
# File 'lib/rspec/mocks/test_double.rb', line 28 def null_object? __mock_proxy.null_object? end |


Schematic of the process for PDX model creation, expansion, and drug dosing studies. A
PDX model consists of an immunocompromised mouse into which human tumor material has
been implanted. Once the implanted tumor reaches a target volume at the initial passage
(P0), the tumor is excised, fractionated, and transplanted into the next cohort of mice
to establish the next passage. P0 and P1 tumors are subjected to various quality control
assays to ensure that the passaged tumors faithfully reflect the critical biological and
genomic properties of the patient tumor. Cohorts of tumor bearing mice are used in
experimental studies. Dosing studies are typically performed on low passage tumors
(P1-P4).


After installing pip, run pip install lean
to install the Lean CLI.
This commands downloads all the CLI's dependencies and makes the lean
command available in the terminal.
After installing the CLI, open a terminal in an empty directory and run lean init
.
This command scaffolds a standard directory structure containing a data directory and a Lean configuration file, both of which are required to run the LEAN engine locally.
We recommend running all Lean CLI commands in the same directory lean init
was ran in.
If you are running Docker on Windows using the legacy Hyper-V backend instead of the new WSL 2 backend, you also need to enable file sharing for your temporary directories and for the directory you ran lean init
in.
To do so, open your Docker settings, go to Resources > File sharing and add C:/Users/<username>/AppData/Local/Temp
and the directory you ran lean init
in to the list.
Click Apply & Restart after making the required changes.


Policy Gradient¶
Actions space: Discrete | Continuous
References: Simple Statistical Gradient-Following Algorithms for Connectionist Reinforcement Learning
Network Structure¶
Algorithm Description¶
Choosing an action - Discrete actions¶
Run the current states through the network and get a policy distribution over the actions. While training, sample from the policy distribution. When testing, take the action with the highest probability.
Training the network¶
The policy head loss is defined as \(L=-log (\pi) \cdot PolicyGradientRescaler\).
The PolicyGradientRescaler
is used in order to reduce the policy gradient variance, which might be very noisy.
This is done in order to reduce the variance of the updates, since noisy gradient updates might destabilize the policy’s
convergence. The rescaler is a configurable parameter and there are few options to choose from:
Total Episode Return - The sum of all the discounted rewards during the episode.
Future Return - Return from each transition until the end of the episode.
Future Return Normalized by Episode - Future returns across the episode normalized by the episode’s mean and standard deviation.
Future Return Normalized by Timestep - Future returns normalized using running means and standard deviations, which are calculated seperately for each timestep, across different episodes.
Gradients are accumulated over a number of full played episodes. The gradients accumulation over several episodes serves the same purpose - reducing the update variance. After accumulating gradients for several episodes, the gradients are then applied to the network.
-
class
rl_coach.agents.policy_gradients_agent.
PolicyGradientAlgorithmParameters
[source]¶ - Parameters
policy_gradient_rescaler – (PolicyGradientRescaler) The rescaler type to use for the policy gradient loss. For policy gradients, we calculate log probability of the action and then multiply it by the policy gradient rescaler. The most basic rescaler is the discounter return, but there are other rescalers that are intended for reducing the variance of the updates.
apply_gradients_every_x_episodes – (int) The number of episodes between applying the accumulated gradients to the network. After every num_steps_between_gradient_updates steps, the agent will calculate the gradients for the collected data, it will then accumulate it in internal accumulators, and will only apply them to the network once in every apply_gradients_every_x_episodes episodes.
beta_entropy – (float) A factor which defines the amount of entropy regularization to apply to the network. The entropy of the actions will be added to the loss and scaled by the given beta factor.
num_steps_between_gradient_updates – (int) The number of steps between calculating gradients for the collected data. In the A3C paper, this parameter is called t_max. Since this algorithm is on-policy, only the steps collected between each two gradient calculations are used in the batch.


Marathon Deploy
A Marathon command-line deployment tool in Ruby. Takes a json or yaml file describing an application and pushes it to the Marathon REST API
Feature Summary
-
Deploy a single application descriptor to multiple marathon endpoints
-
Checks for existing deployment of application before starting new deployment
-
Polls for Healthcheck results after deployment
-
Proper exit codes for easier integration with Jenkins automated pipelines
-
Deploy file macro substitution using values from ENV variables (eg, %%MACRO_NAME%%)
-
PRODUCTION / PREPRODUCTION modes (specified with –environment)
-
Rolling upgrade deployment strategy (Marathon default)
Roadmap Features
-
Record actions and json payload to a database (for rollback, history, auditing)
-
Deploy a deployment descriptor containing multiple applications
-
Specify deployment strategy (using minimumHealthCapacity) as an option. See Marathon Deployment document
Installation
Ensure Ruby (1.9+) and gem are installed on you system, then run:
$ gem install marathon_deploy
Executables from this gem (automatically added to your $PATH):
$ marathon_deploy (client program executable)
$ json2yaml.rb (convenience utility for converting json to yaml)
$ expand_macros.rb (expands all macros in the form %%MACRO%% with value of ENV[MACRO])
Usage
Help
>marathon_deploy -h
Usage: bin/marathon_deploy [options]
-u, --url MARATHON_URL(S) Default: ["http://localhost:8080"]
-l, --logfile LOGFILE Default: STDOUT
-d, --debug Run in debug mode
-v, --version Version info
-f, --force Force deployment when sending same deploy JSON to Marathon
-n, --noop No action. Just display what would be performed.
-e, --environment ENVIRONMENT Default: PREPRODUC
Example Deployfile
By default, a file called 'deploy.yaml' is searched for in the current directory where deploy.rb is run from. An alternative file name can be provided with the -f parameter.
The file format must conform to the Marathon API specification
Minimalistic example (using Docker container):
id: python-example-stable
cmd: echo python stable `hostname` > index.html; python3 -m http.server 8080
mem: 16
cpus: 0.1
instances: 5
container:
type: DOCKER
docker:
image: ubuntu:14.04
network: BRIDGE
portMappings:
- containerPort: 8080
hostPort: 0
protocol: tcp
env:
SERVICE_TAGS: python,webapp,http,weight=100
SERVICE_NAME: python
healthChecks:
- portIndex: 0
protocol: TCP
gracePeriodSeconds: 30
intervalSeconds: 10
timeoutSeconds: 30
maxConsecutiveFailures: 3
- path: "/"
portIndex: 0
protocol: HTTP
gracePeriodSeconds: 30
intervalSeconds: 10
timeoutSeconds: 30
maxConsecutiveFailures: 3
JSON to YAML file conversion
As a convenience, the provided json2yaml.rb script can convert a JSON file to the arguably more human-readable YAML format:
$json2yaml.rb marathon-webapp.json > marathon-webapp.yaml
Parsing a file with macro expansion from ENV variables
A helper script which takes a file and replaces all macros having the format %%MACRO%% with the values from ENV variables. Script will fail if there are no ENV values for macro names contained in the template.
$expand_macros.rb -h
Usage: bin/expand_macros.rb [options]
-o, --outfile OUTFILE Default: STDOUT
-l, --logfile LOGFILE Default: STDOUT
-d, --debug Run in debug mode
-v, --version Version info
-f, --force force overwrite of existing OUTFILE
-t, --template TEMPLATE_FILE Input file. Default: dockerfile.tpl
-h, --help Show this message
Contributing
-
Fork it ( github.com/[my-github-username]/marathon_deploy/fork )
-
Create your feature branch (
git checkout -b my-new-feature
) -
Commit your changes (
git commit -am 'Add some feature'
) -
Push to the branch (
git push origin my-new-feature
) -
Create a new Pull Request


In order to support a strict content security policy (
default-src 'self'
),
this page manually loads Chart.min.css
and turns off the automatic style
injection by setting Chart.platform.disableCSSInjection = true;
.