class Jekyll::Site
Attributes
Public Class Methods
Public: Initialize a new Site.
config - A Hash containing site configuration details.
# File lib/jekyll/site.rb, line 18 def initialize(config) # Source and destination may not be changed after the site has been created. @source = File.expand_path(config["source"]).freeze @dest = File.expand_path(config["destination"]).freeze self.config = config @reader = Reader.new(self) @regenerator = Regenerator.new(self) @liquid_renderer = LiquidRenderer.new(self) Jekyll.sites << self reset setup Jekyll::Hooks.trigger :site, :after_init, self end
Public Instance Methods
# File lib/jekyll/site.rb, line 249 def categories post_attr_hash("categories") end
Remove orphaned files and empty directories in destination.
Returns nothing.
# File lib/jekyll/site.rb, line 202 def cleanup site_cleaner.cleanup! end
The list of collection names.
Returns an array of collection names from the configuration,
or an empty array if the `collections` key is not set.
# File lib/jekyll/site.rb, line 145 def collection_names case config["collections"] when Hash config["collections"].keys when Array config["collections"] when nil [] else raise ArgumentError, "Your `collections` key must be a hash or an array." end end
The list of collections and their corresponding Jekyll::Collection instances. If config is set, a new instance is created for each item in the collection, a new hash is returned otherwise.
Returns a Hash containing collection name-to-instance pairs.
# File lib/jekyll/site.rb, line 135 def collections @collections ||= Hash[collection_names.map do |coll| [coll, Jekyll::Collection.new(self, coll)] end] end
Public: Set the site's configuration. This handles side-effects caused by changing values in the configuration.
config - a Jekyll::Configuration, containing the new configuration.
Returns the new configuration.
# File lib/jekyll/site.rb, line 43 def config=(config) @config = config.clone %w(safe lsi highlighter baseurl exclude include future unpublished show_drafts limit_posts keep_files gems).each do |opt| self.send("#{opt}=", config[opt]) end configure_plugins configure_theme configure_include_paths configure_file_read_opts self.permalink_style = config["permalink"].to_sym @config end
Get the to be written documents
Returns an Array of Documents which should be written
# File lib/jekyll/site.rb, line 316 def docs_to_write documents.select(&:write?) end
Get all the documents
Returns an Array of all Documents
# File lib/jekyll/site.rb, line 323 def documents collections.reduce(Set.new) do |docs, (_, collection)| docs + collection.docs + collection.files end.to_a end
# File lib/jekyll/site.rb, line 329 def each_site_file %w(pages static_files docs_to_write).each do |type| send(type).each do |item| yield item end end end
Check that the destination dir isn't the source dir or a directory parent to the source dir.
# File lib/jekyll/site.rb, line 118 def ensure_not_in_dest dest_pathname = Pathname.new(dest) Pathname.new(source).ascend do |path| if path == dest_pathname raise( Errors::FatalException, "Destination directory cannot be or contain the Source directory." ) end end end
Get the implementation class for the given Converter. Returns the Converter instance implementing the given Converter. klass - The Class of the Converter to fetch.
# File lib/jekyll/site.rb, line 283 def find_converter_instance(klass) converters.find { |klass_| klass_.instance_of?(klass) } || raise("No Converters found for #{klass}") end
Returns the FrontmatterDefaults or creates a new FrontmatterDefaults if it doesn't already exist.
Returns The FrontmatterDefaults
# File lib/jekyll/site.rb, line 341 def frontmatter_defaults @frontmatter_defaults ||= FrontmatterDefaults.new(self) end
Run each of the Generators.
Returns nothing.
# File lib/jekyll/site.rb, line 170 def generate generators.each do |generator| start = Time.now generator.generate(self) Jekyll.logger.debug "Generating:", "#{generator.class} finished in #{Time.now - start} seconds." end end
Public: Prefix a given path with the destination directory.
paths - (optional) path elements to a file or directory within the
destination directory
Returns a path which is prefixed with the destination directory.
# File lib/jekyll/site.rb, line 391 def in_dest_dir(*paths) paths.reduce(dest) do |base, path| Jekyll.sanitized_path(base, path) end end
Public: Prefix a given path with the source directory.
paths - (optional) path elements to a file or directory within the
source directory
Returns a path which is prefixed with the source directory.
# File lib/jekyll/site.rb, line 366 def in_source_dir(*paths) paths.reduce(source) do |base, path| Jekyll.sanitized_path(base, path) end end
Public: Prefix a given path with the theme directory.
paths - (optional) path elements to a file or directory within the
theme directory
Returns a path which is prefixed with the theme root directory.
# File lib/jekyll/site.rb, line 378 def in_theme_dir(*paths) return nil unless theme paths.reduce(theme.root) do |base, path| Jekyll.sanitized_path(base, path) end end
Whether to perform a full rebuild without incremental regeneration
Returns a Boolean: true for a full rebuild, false for normal build
# File lib/jekyll/site.rb, line 348 def incremental?(override = {}) override["incremental"] || config["incremental"] end
klass - class or module containing the subclasses. Returns array of instances of subclasses of parameter. Create array of instances of the subclasses of the class or module passed in as argument.
# File lib/jekyll/site.rb, line 293 def instantiate_subclasses(klass) klass.descendants.select { |c| !safe || c.safe }.sort.map do |c| c.new(config) end end
Construct a Hash of Posts indexed by the specified Post attribute.
post_attr - The String name of the Post attribute.
Examples
post_attr_hash('categories') # => { 'tech' => [<Post A>, <Post B>], # 'ruby' => [<Post B>] }
Returns the Hash: { attr => posts } where
attr - One of the values for the requested attribute. posts - The Array of Posts with the given attr value.
# File lib/jekyll/site.rb, line 234 def post_attr_hash(post_attr) # Build a hash map based on the specified post attribute ( post attr => # array of posts ) then sort each array in reverse order. hash = Hash.new { |h, key| h[key] = [] } posts.docs.each do |p| p.data[post_attr].each { |t| hash[t] << p } if p.data[post_attr] end hash.values.each { |posts| posts.sort!.reverse! } hash end
# File lib/jekyll/site.rb, line 217 def posts collections["posts"] ||= Collection.new(self, "posts") end
# File lib/jekyll/site.rb, line 74 def print_stats if @config["profile"] puts @liquid_renderer.stats_table end end
Public: Read, process, and write this Site to output.
Returns nothing.
# File lib/jekyll/site.rb, line 64 def process reset read generate render cleanup write print_stats end
Returns the publisher or creates a new publisher if it doesn't already exist.
Returns The Publisher
# File lib/jekyll/site.rb, line 356 def publisher @publisher ||= Publisher.new(self) end
Read Site data from disk and load it into internal data structures.
Returns nothing.
# File lib/jekyll/site.rb, line 161 def read reader.read limit_posts! Jekyll::Hooks.trigger :site, :post_read, self end
Warns the user if permanent links are relative to the parent directory. As this is a deprecated function of Jekyll.
Returns
# File lib/jekyll/site.rb, line 303 def relative_permalinks_are_deprecated if config["relative_permalinks"] Jekyll.logger.abort_with "Since v3.0, permalinks for pages" " in subfolders must be relative to the" " site source directory, not the parent" " directory. Check http://jekyllrb.com/docs/upgrading/" " for more info." end end
Render the site to the destination.
Returns nothing.
# File lib/jekyll/site.rb, line 182 def render relative_permalinks_are_deprecated payload = site_payload Jekyll::Hooks.trigger :site, :pre_render, self, payload render_docs(payload) render_pages(payload) Jekyll::Hooks.trigger :site, :post_render, self, payload # rubocop: disable HandleExceptions rescue Errno::ENOENT # ignore missing layout dir end
Reset Site details.
Returns nothing
# File lib/jekyll/site.rb, line 83 def reset if config["time"] self.time = Utils.parse_date(config["time"].to_s, "Invalid time in _config.yml.") else self.time = Time.now end self.layouts = {} self.pages = [] self.static_files = [] self.data = {} @collections = nil @regenerator.clear_cache @liquid_renderer.reset if limit_posts < 0 raise ArgumentError, "limit_posts must be a non-negative number" end Jekyll::Hooks.trigger :site, :after_reset, self end
Load necessary libraries, plugins, converters, and generators.
Returns nothing.
# File lib/jekyll/site.rb, line 107 def setup ensure_not_in_dest plugin_manager.conscientious_require self.converters = instantiate_subclasses(Jekyll::Converter) self.generators = instantiate_subclasses(Jekyll::Generator) end
Prepare site data for site payload. The method maintains backward compatibility if the key 'data' is already used in _config.yml.
Returns the Hash to be hooked to site.data.
# File lib/jekyll/site.rb, line 257 def site_data config["data"] || data end
The Hash payload containing site-wide data.
Returns the Hash: { “site” => data } where data is a Hash with keys:
"time" - The Time as specified in the configuration or the current time if none was specified. "posts" - The Array of Posts, sorted chronologically by post date and then title. "pages" - The Array of all Pages. "html_pages" - The Array of HTML Pages. "categories" - The Hash of category values and Posts. See Site#post_attr_hash for type info. "tags" - The Hash of tag values and Posts. See Site#post_attr_hash for type info.
# File lib/jekyll/site.rb, line 274 def site_payload Drops::UnifiedPayloadDrop.new self end
Write static files, pages, and posts.
Returns nothing.
# File lib/jekyll/site.rb, line 209 def write each_site_file do |item| item.write(dest) if regenerator.regenerate?(item) end regenerator.write_metadata Jekyll::Hooks.trigger :site, :post_write, self end
Private Instance Methods
# File lib/jekyll/site.rb, line 436 def configure_file_read_opts self.file_read_opts = {} self.file_read_opts[:encoding] = config["encoding"] if config["encoding"] end
# File lib/jekyll/site.rb, line 430 def configure_include_paths @includes_load_paths = Array(in_source_dir(config["includes_dir"].to_s)) @includes_load_paths << theme.includes_path if self.theme end
# File lib/jekyll/site.rb, line 418 def configure_plugins self.plugin_manager = Jekyll::PluginManager.new(self) self.plugins = plugin_manager.plugins_path end
# File lib/jekyll/site.rb, line 424 def configure_theme self.theme = nil self.theme = Jekyll::Theme.new(config["theme"]) if config["theme"] end
Limits the current posts; removes the posts which exceed the #limit_posts
Returns nothing
# File lib/jekyll/site.rb, line 401 def limit_posts! if limit_posts > 0 limit = posts.docs.length < limit_posts ? posts.docs.length : limit_posts self.posts.docs = posts.docs[-limit, limit] end end
# File lib/jekyll/site.rb, line 442 def render_docs(payload) collections.each do |_, collection| collection.docs.each do |document| if regenerator.regenerate?(document) document.output = Jekyll::Renderer.new(self, document, payload).run document.trigger_hooks(:post_render) end end end end
# File lib/jekyll/site.rb, line 454 def render_pages(payload) pages.flatten.each do |page| if regenerator.regenerate?(page) page.output = Jekyll::Renderer.new(self, page, payload).run page.trigger_hooks(:post_render) end end end


Go to the support page on the Versions website to find more information and news, or to send us a support email, feature request or bug report.
Check out the Versions release notes to find out if your favorite feature request has made it in there yet.


These objects are imported from other packages. Follow the links below to see their documentation.
plot_grid
%dopar%, foreach, registerDoSEQ
%dopar%
foreach
registerDoSEQ
viewport
bake, freeze, stew
bake
freeze
stew
as.yaml, read_yaml
as.yaml
read_yaml


(#) A should not be attached to an destination
!!! WARNING: A should not be attached to an destination
This is a warning.
Id
: `DeepLinkInActivityDestination`
Summary
: A should not be attached to an destination
Severity
: Warning
Category
: Correctness
Platform
: Android
Vendor
: Android Open Source Project
Identifier
: androidx.navigation.runtime
Feedback
: https://issuetracker.google.com/issues/new?component=409828
Min
: Lint 7.0
Compiled
: Lint 8.0 and 8.1
Artifact
: [androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html)
Affects
: Resource files
Editing
: This check runs on the fly in the IDE editor
Implementation
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetector.kt)
Tests
: [Source Code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetectorTest.kt)
Copyright Year
: 2022
Attaching a to an destination will never give
the right behavior when using an implicit deep link on
another app's task (where the system back should
immediately take the user back to the app that triggered
the deep link). Instead, attach the deep link directly to
the second activity (either by manually writing the appropriate
or by adding the to the start
destination of a nav host in that second activity).
(##) Example
Here is an example of lint warnings produced by this check:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~text
res/navigation/nav_main.xml:17:Warning: Do not attach a to an
destination. Attach the deeplink directly to the second
activity or the start destination of a nav host in the second activity
instead. [DeepLinkInActivityDestination]
<deepLink app:uri="www.example.com" />
--------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Here is the source file referenced above:
`res/navigation/nav_main.xml`:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~xml linenumbers
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/nav_main"
app:startDestination="@id/fragment_main"
>
<fragment
android:id="@+id/fragment_main"
android:name="com.example.deeplink.MainFragment"
/>
<activity
android:id="@+id/activity_deep_link"
android:name="com.example.deeplink.DeepLinkActivity"
>
<deepLink app:uri="www.example.com" />
</activity>
</navigation>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can also visit the
[source code](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetectorTest.kt)
for the unit tests for this check to see additional scenarios.
The above example was automatically extracted from the first unit test
found for this lint check, `DeepLinkInActivityDestinationDetector.expectFail`.
To report a problem with this extracted sample, visit
https://issuetracker.google.com/issues/new?component=409828.
(##) Including
!!!
This is not a built-in check. To include it, add the below dependency
to your project.
```
// build.gradle.kts
implementation("androidx.navigation:navigation-runtime:2.7.0-beta01")
// build.gradle
implementation 'androidx.navigation:navigation-runtime:2.7.0-beta01'
// build.gradle.kts with version catalogs:
implementation(libs.navigation-runtime)
# libs.versions.toml
[versions]
navigation-runtime = "2.7.0-beta01"
[libraries]
navigation-runtime = {
module = "androidx.navigation:navigation-runtime",
version.ref = "navigation-runtime"
}
```
2.7.0-beta01 is the version this documentation was generated from;
there may be newer versions available.
[Additional details about androidx.navigation:navigation-runtime](androidx_navigation_navigation-runtime.md.html).
(##) Suppressing
You can suppress false positives using one of the following mechanisms:
* Adding the suppression attribute
`tools:ignore="DeepLinkInActivityDestination"` on the problematic
XML element (or one of its enclosing elements). You may also need to
add the following namespace declaration on the root element in the
XML file if it's not already there:
`xmlns:tools="http://schemas.android.com/tools"`.
```xml
<?xml version="1.0" encoding="UTF-8"?>
<deepLink xmlns:tools="http://schemas.android.com/tools"
tools:ignore="DeepLinkInActivityDestination" ...>
...
</deepLink>
```
* Using a special `lint.xml` file in the source tree which turns off
the check in that folder and any sub folder. A simple file might look
like this:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="DeepLinkInActivityDestination" severity="ignore" />
</lint>
```
Instead of `ignore` you can also change the severity here, for
example from `error` to `warning`. You can find additional
documentation on how to filter issues by path, regular expression and
so on
[here](https://googlesamples.github.io/android-custom-lint-rules/usage/lintxml.md.html).
* In Gradle projects, using the DSL syntax to configure lint. For
example, you can use something like
```gradle
lintOptions {
disable 'DeepLinkInActivityDestination'
}
```
In Android projects this should be nested inside an `android { }`
block.
* For manual invocations of `lint`, using the `--ignore` flag:
```
$ lint --ignore DeepLinkInActivityDestination ...`
```
* Last, but not least, using baselines, as discussed
[here](https://googlesamples.github.io/android-custom-lint-rules/usage/baselines.md.html).


#include "types.h"
#include "texture.h"
#include "mesh.h"
#include "light.h"
#include "camera.h"
#include "material.h"
#include "anim.h"
#include "metadata.h"
Go to the source code of this file.
Classes | |
| struct | aiNode |
| struct | aiScene |
Defines | |
| #define | AI_SCENE_FLAGS_INCOMPLETE 0x1 |
| #define | AI_SCENE_FLAGS_VALIDATED 0x2 |
| #define | AI_SCENE_FLAGS_VALIDATION_WARNING 0x4 |
| #define | AI_SCENE_FLAGS_NON_VERBOSE_FORMAT 0x8 |
| #define | AI_SCENE_FLAGS_TERRAIN 0x10 |
| #define | AI_SCENE_FLAGS_ALLOW_SHARED 0x20 |
Definition in file scene.h.
| #define AI_SCENE_FLAGS_ALLOW_SHARED 0x20 |
Specifies that the scene data can be shared between structures. For example: one vertex in few faces. AI_SCENE_FLAGS_NON_VERBOSE_FORMAT can not be used for this because AI_SCENE_FLAGS_NON_VERBOSE_FORMAT has internal meaning about postprocessing steps.
| #define AI_SCENE_FLAGS_INCOMPLETE 0x1 |
Specifies that the scene data structure that was imported is not complete. This flag bypasses some internal validations and allows the import of animation skeletons, material libraries or camera animation paths using Assimp. Most applications won't support such data.
Definition at line 182 of file scene.h.
Referenced by Model::LoadModel().
| #define AI_SCENE_FLAGS_NON_VERBOSE_FORMAT 0x8 |
This flag is currently only set by the aiProcess_JoinIdenticalVertices step. It indicates that the vertices of the output meshes aren't in the internal verbose format anymore. In the verbose format all vertices are unique, no vertex is ever referenced by more than one face.
| #define AI_SCENE_FLAGS_TERRAIN 0x10 |
Denotes pure height-map terrain data. Pure terrains usually consist of quads, sometimes triangles, in a regular grid. The x,y coordinates of all vertex positions refer to the x,y coordinates on the terrain height map, the z-axis stores the elevation at a specific point.
TER (Terragen) and HMP (3D Game Studio) are height map formats.
| #define AI_SCENE_FLAGS_VALIDATED 0x2 |
| #define AI_SCENE_FLAGS_VALIDATION_WARNING 0x4 |
This flag is set by the validation postprocess-step (aiPostProcess_ValidateDS) if the validation is successful but some issues have been found. This can for example mean that a texture that does not exist is referenced by a material or that the bone weights for a vertex don't sum to 1.0 ... . In most cases you should still be able to use the import. This flag could be useful for applications which don't capture Assimp's log output.


Policy Gradient
Here is the summary of the lecture.
Policy-based algorithms use a parameterized policy, namely $\pi(a|s,\theta)$, while value-based algorithms use an $\epsilon$-greedy policy. This is a summary comparing the two classes of algorithms.
| Algorithms | Advantages | Disadvantages |
|---|---|---|
| Value-based | Opposite to Policy-based | Opposite to Policy-based |
| Policy-based | 1. Faster convergence (small change in $\theta$ translates into smooth change in policy) 2. No max operator (better for high-dimensional action space, continuous space) 3. Stochastic policy (in POMDPs or in contexts where the feature representation is not good enough stochastic policy may be optimal. Recall that for MDPs there is always an optimal policy) |
1. Convergence to local optimum 2. High variance |
Objectives for policy-based algorithms
There are two objectives (but there can be more, see Ideas at the end):
Objective for episodic case. Given an initial state $s_0$ we define
$$J(\theta)=v_{\pi_\theta}(\theta)$$
Objective for continuing case. Given an initial state $s_0$, we compute the average reward per time-step, namely
$$\begin{align} J(\theta) &= \lim_{h\rightarrow\infty}\frac{1}{h}\sum_{t=1}^h E\{r_t|\pi\} \\ &= \sum_s\mu_\theta(s)\sum_a\pi(a|s,\theta)\sum_{s'}P_{ss'}^aR_{s'}^a \quad\text{by ergodicity} \end{align}$$
Note that $J(\theta)$ is independent of the initial state. By definition of average reward, we redefine the state-value and the action-value functions in the following way: $$\begin{align} v_{\pi_\theta}(s) &= E\{G_t|S_t=s\} \\ q_{\pi_\theta}(a,s) &= E\{G_t|S_t=s,A_t=a\} \\ G_t &= R_{t+1} - J(\theta) + \gamma\big(R_{t+2} - J(\theta)\big) + \dots \end{align}$$
Now that we have an objective, we can optimize it!
Question. How can we optimize it?
Answers. There are several classes of optimizers, namely:
- Gradient-free methods, like finite difference policy gradient
- First-order methods, which are based on an unbiased estimate of the gradient
\[\begin{align} \theta_{t+1} = \arg & \max_\theta J(\theta) \\ & \text{s.t. } \|\theta-\theta_t\|\leq\epsilon_t \end{align}\]
- Natural gradient methods, which are based on an unbiased estimate of the gradient under different assumptions from first-order methods
\[\begin{align} \theta_{t+1} = \arg & \max_\theta J(\theta) \\ & \text{s.t. } KL\big\{\pi_{\theta_t}\|\pi_\theta\big\}\leq\epsilon_t \end{align}\]
- Second-order methods, which takes into account the second order information
First-Order Methods
The Policy gradient theorem provides a way to estimate the gradient of $J(\theta)$. However, policy gradient algorithms have high variance. Later, we will consider a trick to deal with that, viz. using a baseline.
Policy Gradient Theorem
Theorem. Given an initial state $s_0$ and an objective function $J(\theta)$ (no matter if we are in the episodic or continuing case).
$$\nabla_\theta J(\theta) \propto E\big\{q_{\pi_\theta}(A,S)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\}$$
Proof. Firstly, we prove that $\nabla_\theta J(\theta) \propto \sum_s\mu_\theta(s)\sum_aq_{\pi_\theta}(a,s)\nabla_\theta\pi(a|s,\theta)$ for both the episodic and the continuing case.
Secondly we show that,
$\sum_s\mu_\theta(s)\sum_aq_{\pi_\theta}(a,s)\nabla_\theta\pi(a|s,\theta)=E\big\{q_{\pi_\theta}(A,S)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\}$.
[Episodic case]. Let's consider the episodic case,
[Continuing case]. Let's consider the continuing case (note that in this case we cannot directly compute the gradient of $J(\theta)$ as the term $\mu_\theta(s)$ is unknwown),
$$\begin{align} \nabla_\theta v_{\pi_\theta}(s) &= \nabla_\theta\sum_a\pi(a|s,\theta)q_{\pi_\theta}(a,s) \\ &= \sum_a\big\{\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\pi(a|s,\theta)\nabla_\theta q_{\pi_\theta}(a,s)\big\} \\ &= \sum_a\big\{\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\pi(a|s,\theta)\nabla_\theta \big[R_s^a-J(\theta)+\sum_{s'}P_{ss'}^av_{\pi_\theta}(s')\big]\big\} \\ &= \sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)-\nabla_\theta J(\theta)+\sum_a\pi(a|s,\theta)\sum_{s'}P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s') \\ \end{align}$$Now, we can explicit the gradient of $J(\theta)$, namely:
$$\nabla_\theta J(\theta)=\sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)-\nabla_\theta v_{\pi_\theta}(s)+\sum_a\pi(a|s,\theta)\sum_{s'}P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s')$$In other words,
$$\begin{align} \nabla_\theta J(\theta) &= \sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)-\nabla_\theta v_{\pi_\theta}(s)+\sum_a\pi(a|s,\theta)\sum_{s'}P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s') \\ &= \sum_a\bigg[\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\pi(a|s,\theta)\sum_{s'}P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s')\bigg]-\nabla_\theta v_{\pi_\theta}(s) \\ \end{align}$$Now we can sum both terms by $\sum_s\mu_\theta(s)$ (keep in mind that $\sum_s\mu_\theta(s)\nabla_\theta J(\theta)=\nabla_\theta J(\theta)$)
$$\begin{align} \nabla_\theta J(\theta) &= \sum_s\mu_\theta(s)\sum_a\bigg[\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\pi(a|s,\theta)\sum_{s'}P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s')\bigg]-\sum_s\mu_\theta(s)\nabla_\theta v_{\pi_\theta}(s) \\ &= \sum_s\mu_\theta(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\sum_s\mu_\theta(s)\sum_a\pi(a|s,\theta)\sum_{s'}P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s')-\sum_s\mu_\theta(s)\nabla_\theta v_{\pi_\theta}(s) \\ &= \sum_s\mu_\theta(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\sum_{s'}\sum_s\mu_\theta(s)\sum_a\pi(a|s,\theta)P_{ss'}^a\nabla_\theta v_{\pi_\theta}(s')-\sum_s\mu_\theta(s)\nabla_\theta v_{\pi_\theta}(s) \\ &= \sum_s\mu_\theta(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\sum_{s'}\sum_s\mu_\theta(s)P(s\rightarrow s')\nabla_\theta v_{\pi_\theta}(s')-\sum_s\mu_\theta(s)\nabla_\theta v_{\pi_\theta}(s) \\ &\quad\quad\text{where }P(s\rightarrow s')=\sum_a\pi(a|s,\theta)P_{ss'}^a \\ &= \sum_s\mu_\theta(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s)+\sum_{s'}\mu_\theta(s')\nabla_\theta v_{\pi_\theta}(s')-\sum_s\mu_\theta(s)\nabla_\theta v_{\pi_\theta}(s) \\ &\quad\quad\text{recall that }\sum_s\mu_\theta(s)P(s\rightarrow s')=\mu_\theta(s') \\ &= \sum_s\mu_\theta(s)\sum_a\nabla_\theta\pi(a|s,\theta)q_{\pi_\theta}(a,s) \end{align}$$[Last step].
$$\begin{align} \nabla_\theta J(\theta) &\propto \sum_s\mu_\theta(s)\sum_aq_{\pi_\theta}(a,s)\nabla_\theta\pi(a|s,\theta) \\ &= E\big\{\sum_aq_{\pi_\theta}(a,S)\nabla_\theta\pi(a|S,\theta)\big\} \\ &\quad\quad\text{we have defined random variable S and compute its expectation conditioned on initial state }s_0 \\ &= E\bigg\{\sum_a\pi(a|S,\theta)q_{\pi_\theta}(a,S)\frac{\nabla_\theta\pi(a|S,\theta)}{\pi(a|S,\theta)}\bigg\} \\ &= E\bigg\{q_{\pi\theta}(A,S)\frac{\nabla_\theta\pi(A|S,\theta)}{\pi(A|S,\theta)}\bigg\} \quad\text{similarly, we have defined random variable A}\\ &= E\big\{q_{\pi_\theta}(A,S)\nabla_\theta\ln\pi(A|S,\theta)\big\}\\ \end{align}$$ QEDEstimate 1: Monte Carlo Policy Gradient (REINFORCE)
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{q_{\pi\theta}(A,S)\nabla_\theta\ln\pi(A|S,\theta)\big\}\\ &= E\big\{E\{G_t|A'=A,S'=S\}\nabla_\theta\ln\pi(A|S,\theta)\big\}\\ &= E\big\{G\nabla_\theta\ln\pi(A|S,\theta)\big\} \quad\text{as }E\{G|A'=A,S'=S\}=P(A'=A,S'=S)G=G \\ &\approx g_t\nabla_\theta\ln\pi(a|s,\theta) \end{align}$$Note that this algorithm works only in the episodic case, since we need the return, which is available only at the end. The return is a summation of all rewards and therefore it introduces a lot of variance.
Estimate 2: Actor-Critic Policy Gradient
Another strategy (which has less variance) can be obtained by using an action-value function approximator
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{q_{\pi\theta}(A,S)\nabla_\theta\ln\pi(A|S,\theta)\big\}\\ &\approx Q_w(a,s)\nabla_\theta\ln\pi(a|s,\theta) \end{align}$$Therefore, we can leverage all knowledge we have to perform policy evaluation to learn $Q_w(a,s)$ and then learn the policy function approximator.
Policy Gradient Theorem with Baseline
Theorem. Given an initial state $s_0$ and an objective function $J(\theta)$ (no matter if we are in the episodic or continuing case). $$\nabla_\theta J(\theta) \propto E\big\{\big(q_{\pi_\theta}(A,S)-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\}$$
Proof. We can extend the normal policy gradient theorem, by introducing a baseline function $B(s)$, namely
$$\begin{align} E\big\{B(S)\nabla_\theta\ln\pi_\theta(A|S)\big\} &= \sum_s\mu_\theta(s)\sum_a\pi(a|s,\theta)B(S)\nabla_\theta\ln\pi_\theta(A|S) \\ &= \sum_s\mu_\theta(s)B(S)\sum_a\pi(a|s,\theta)\nabla_\theta\ln\pi_\theta(A|S) \\ &= \sum_s\mu_\theta(s)B(S)\sum_a\nabla_\theta\pi_\theta(A|S) \\ &= \sum_s\mu_\theta(s)B(S)\nabla_\theta\sum_a\pi_\theta(A|S) \\ &= \sum_s\mu_\theta(s)B(S)\nabla_\theta 1 \\ &= 0 \end{align}$$This result is valid for any baseline function. Let's choose $B(s)=v_{\pi_\theta}(s)$. The result of the theorem follows in straightforward way. QED
Note that $q_{\pi_\theta}(a,s)-v_{\pi_\theta}(s)$ is usually called the advantage function (as it measures what is the contribution of action a with respect to the expected value).
Estimate 1: Monte Carlo Policy Gradient with Baseline
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{\big(q_{\pi_\theta}(A,S)-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &\approx \big(g-V_v(s)\big)\nabla_\theta\ln\big(\pi(a|s,\theta)\big) \end{align}$$Variance can be still reduced. Furthemore, we need to wait until the end of episode.
Estimate 2: Advantage Actor-Critic Policy Gradient
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{\big(q_{\pi_\theta}(A,S)-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &\approx \big(Q_w(a,s)-V_v(s)\big)\nabla_\theta\ln\big(\pi(a|s,\theta)\big) \end{align}$$The problem of this approach is that we need three function approximators (lots of parameters). See next estimate for using only two. Alternatively, check ideas.
Estimate 3: TD Actor-Critic Policy Gradient
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{\big(q_{\pi_\theta}(A,S)-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &= E\big\{\big(E\{G|\tilde{A}=A,\tilde{S}=S\}-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &= E\big\{\big(E\{R+\gamma v_{\pi_\theta}(S')|\tilde{A}=A,\tilde{S}=S\}-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &= E\big\{\big(E\{R+\gamma v_{\pi_\theta}(S')-v_{\pi_\theta}(\tilde{S})|\tilde{A}=A,\tilde{S}=S\}\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &= E\big\{\big(R+\gamma v_{\pi_\theta}(S')-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &\approx \big(R+\gamma V_v(s')-V_v(s)\big)\nabla_\theta\ln\big(\pi(a|s,\theta)\big) \\ \end{align}$$Estimate 4: TD($\lambda$) Actor-Critic Policy Gradient (Forward View)
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{\big(q_{\pi_\theta}(A,S)-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &\approx \big(g^\lambda-V_v(s)\big)\nabla_\theta\ln\big(\pi(a|s,\theta)\big) \\ \end{align}$$In this case, we need to wait until the end of the episode.
Estimate 5: TD($\lambda$) Actor-Critic Policy Gradient (Forward View)
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{\big(q_{\pi_\theta}(A,S)-v_{\pi_\theta}(S)\big)\nabla_\theta\ln\big(\pi(A|S,\theta)\big)\big\} \\ &\approx \big(R+\gamma V_v(s')-V_v(s)\big)e \\ \end{align}$$where
$$e\leftarrow \lambda e+\nabla_\theta\ln\pi(a|s,\theta)$$is the eligibility trace.
Summary of First-Order Gradient Methods
| Name | Formula | Baseline | Episodic | Continuing | Parameters | Variance | Bias |
|---|---|---|---|---|---|---|---|
| Monte-Carlo (REINFORCE) | \(\nabla_\theta J(\theta)\approx g_t\nabla_\theta\ln\pi(a|s,\theta)\) | No | Yes | No | 1 | High | Low |
| Actor-Critic | \(\nabla_\theta J(\theta)\approx Q_w(a,s)\nabla_\theta\ln\pi(a|s,\theta)\) | No | Yes | Yes | 2 | Medium | Medium (but can be Low) |
| Monte Carlo with Baseline | \(\nabla_\theta J(\theta)\approx \big(g-V_v(s)\big)\nabla_\theta\ln\pi(a|s,\theta)\) | Yes | Yes | No | 2 | Medium | Low |
| Advantage Actor-Critic | \(\nabla_\theta J(\theta)\approx \big(Q_w(a,s)-V_v(s)\big)\nabla_\theta\ln\pi(a|s,\theta)\) | Yes | Yes | Yes | 3 | Low | Medium (but can be Low) |
| TD Actor-Critic | \(\nabla_\theta J(\theta)\approx \big(R+\gamma V_v(s')-V_v(s)\big)\nabla_\theta\ln\pi(a|s,\theta)\) | Yes | Yes | Yes | 2 | Low | Medium |
| TD(\(\lambda\)) Actor-Critic (Forward) | \(\nabla_\theta J(\theta)\approx \big(g^\lambda-V_v(s)\big)\nabla_\theta\ln\pi(a|s,\theta)\) | Yes | Yes | No | 2 | Low-Medium (tradeoff) | Low-Medium (tradeoff) |
| TD(\(\lambda\)) Actor-Critic (Backward) | \(\nabla_\theta J(\theta)\approx \big(R+\gamma V_v(s')-V_v(s)\big)e\) \(e\leftarrow \lambda e+\nabla_\theta\ln\pi(a|s,\theta)\) |
Yes | Yes | Yes | 2 | Low-Medium (tradeoff) | Low-Medium (tradeoff) |
Natural Gradient Methods
Firstly, we show some properties of the KL divergence. Secondly, we derive the update rule of natural gradient algorithms. Thirdly, we derive the natural policy gradient algorithm.
Properties of KL Divergence
We try to use similar notation used so far. For example, we use $\pi(a|\theta)$ to refer to $\pi(a|s,\theta)$ in the context of policy gradient algorithms. More generally, we can think of $\pi(a|\theta)$ to any arbitrary density parameterized by vector $\theta$. We show that KL divergence can be approximated in the following way:
$$\begin{align} KL\big\{\pi_{\theta_t}\|\pi_\theta\} &\approx \Delta\theta^TG(\theta_t)\Delta\theta \\ G(\theta) &= E_A\big\{\nabla_\theta\ln\pi(A|\theta)\nabla_\theta\ln\pi(A|\theta)^T\big\} \\ \Delta\theta &= \theta-\theta_t \end{align}$$
for $\|\Delta\theta\|\rightarrow 0$.
Let's derive this approximation ($\pi_\theta(\cdot)\doteq\pi(\cdot|\theta)$)
Update Rule for Natural Gradient Algorithms
The update rule is derived from the following constrained optimization problem
$$\begin{align} \theta_{t+1} = \arg & \min_\theta -J(\theta) \\ & \text{s. t. } \frac{1}{2}\Delta\theta^TG(\theta_t)\Delta\theta\leq\epsilon_t \end{align}$$Let's consider the Lagrangian
$$\begin{align} \mathcal{L}(\theta,\lambda_t) &= -J(\theta) + \lambda_t\bigg[\frac{1}{2}\Delta\theta^TG(\theta_t)\Delta\theta-\epsilon_t\bigg] \\ &\approx -J(\theta_t) - \nabla_\theta J(\theta_t)^T\Delta\theta + \lambda_t\bigg[\frac{1}{2}\Delta\theta^TG(\theta_t)\Delta\theta-\epsilon_t\bigg] \\ &\quad\quad\text{where we use the Taylor approximation for }J(\theta) \\ &= - J(\theta_t) - \nabla_\theta J(\theta_t)^T(\theta-\theta_t) + \lambda_t\bigg[\frac{1}{2}(\theta-\theta_t)^TG(\theta_t)(\theta-\theta_t)-\epsilon_t\bigg] \\ \end{align}$$Now, let's compute the gradient with respect to $\theta$ and equate it to 0.
$$\begin{align} \nabla_\theta\mathcal{L}(\theta,\lambda_t) &\approx -\nabla_\theta J(\theta_t) + \lambda_tG(\theta_t)(\theta-\theta_t)=0 \end{align}$$which give us the update rule
$$\theta=\theta_t+\frac{G(\theta_t)^{-1}}{\lambda_t}\nabla_\theta J(\theta_t)$$
Therefore,
$$\nabla_\theta^{nat}J(\theta_t)=G(\theta_t)^{-1}\nabla_\theta J(\theta_t)$$
Natural Policy Gradient Algorithm
Given an action value approximator $Q_w(a,s)=\nabla_\theta\ln\pi(a|s,\theta)^Tw$ (which is called compatible function approximator, as $\nabla_wQ_w(a,s)=\nabla_\theta\ln\pi(a|s,\theta)$), we have that
$$\nabla_\theta^{nat}J(\theta_t)\propto w_t$$
In fact, assume that $Q_w(a,s)=q_{\pi_\theta}(a,s)$
$$\begin{align} \nabla_\theta J(\theta) &\propto E\big\{q_{\pi\theta}(A,S)\nabla_\theta\ln\pi(A|S,\theta)\big\} \\ &= E\big\{\nabla_\theta\ln\pi(A|S,\theta)Q_w(A,S)\big\} \\ &= E\big\{\nabla_\theta\ln\pi(A|S,\theta)\nabla_\theta\ln\pi(a|s,\theta)^Tw\big\} \\ &= E\big\{\nabla_\theta\ln\pi(A|S,\theta)\nabla_\theta\ln\pi(a|s,\theta)^T\big\}w \\ &= G(\theta)w \\ \end{align}$$Now by the result of previous section
$$\begin{align} \nabla_\theta^{nat}J(\theta_t) &= G(\theta_t)^{-1}\nabla_\theta J(\theta_t) \\ &\propto G(\theta_t)^{-1}G(\theta_t)w_t \\ &\propto w_t \end{align}$$Therefore, using a compatible function approximator allows to avoid to compute $G(\theta_t)$ and its inverse.


{% extends "base.html" %} {% load static i18n %} {% load crispy_forms_tags %} {% block content %}
Keep a diary of gluten reactions, and share with others.
Sorry, there's nothing here.


| Year | Month | Dogs Surrendered by AC | Long-stay Dogs* | Expense for Long-stay Dogs ($)** | ||
|---|---|---|---|---|---|---|
| {{ row[0] }} | {{ row[1] }} | {% if row[2] > 0 %}{{ row[2] }} | {% else %}{{ row[2] }} | {% endif %} {% if row[5] > 0 %}{{ row[5] }} | {% else %}{{ row[5] }} | {% endif %}{{ row[4] }} |
*: The count of any dogs adopted during that month that had spent in the rescue 60 days or more.
**: All expenses related to "Long-stay Dogs".


@inject IStyled Styled
This paragraph is hot pink because the it uses a global style that defines it to be hot pink.


Notebooks
Story: A fragment of a story about Lions and Jackals
A fragment of a story about Lions and Jackals
Title
A fragment of a story about Lions and Jackals
Collection
Summary
A fable, somewhat similar to the Hottentot one of the lion and the jackal who went to shoot elands ('Reynard the Fox in South Africa', p.3, etc.), was told in the Katkop dialect, by ≠kásin (L IV.-1. 3486-3515); from whose dictation another beginning of the same fable has also been written down (L IV.-1. 3485). A slightly different version, likewise given by ≠kásin, has only been hurriedly taken down in English (L IV.-1. 3484 rev.-3492 rev.). A fragment of the story about the Lion who takes away the Jackal's eland.
Comments
1) p.3484v: see Story of the Lion and the Jackals: another translation which is a little different and Story of the Lion and the Jackals, 2) This story is found in Book IV-1
Contributors
Date
11 November 1873
Categories
Keywords
Jackal (shoots eland) , Jackal (and Lion) , Jackal (Lions and Jackals) , eland (shot by Jackal and taken by Lion) , eland (and Lions and Jackals) , Lion (steals Jackal's eland) , Lion (Lions and Jackals)
Story Pages
3485


This battle is not some streetgang fight; it is a serious business, with rules and traditions. I don't know your intentions, but I think you'd best bring your senior officer here immediately.


Aliases are email forwarders. An alias can forward email to a mail user or to any email address.
Hostmaster@, postmaster@, and admin@ email addresses are required on some domains.


NASA Astronauts
Introduction
Mission Timeline
Becoming An Astronaut
(current)
Astronaut Achievements
(current)
__


1939
About everything that’s happening right now – I’m silent! (Józef Wittlin). Yet, the rebellious orchestra keeps singing. About sailing ships, for which there are no places left (Władysław Szlengel). About the knightly hunt in the shadow of the alcove (Zuzanna Ginczanka). About Polish colonies and Beck’s Island (Tadeusz Hollender). About laundresses with hair like linen who gently wash the thin white (Ginczanka). About wars that have already broken out. About wars that will break out tomorrow (Wittlin). Hańba! Sings the year “1939”.
The third album, this time an EP, the orchestra recorded with Marcin Klimczak in Mustache Ministry Studio in Warsaw. Ygrekowski designed 5 covers for each of the 5 songs, which were released with reverence by Antena Krzyku. The lyrics of Zuzanna Ginczanka were sung and complemented with the sound of the violin by Basia Songin, Kasia Kapela and Zosia Zembrzuska, i.e. Sutari.
hide informations- Płyną okręty
- Polskie kolonie
- Łowy
- Milczę
- Praczki
The Ships Are Sailing
by Władysław Szlengel (1912-1943)
The ships are sailing through the barrens
Throughout the oceans and the seas
The ships are sailing days and nights
The ships are sailing loaded with refugees
Sailing and sailing here and there
Knocking to every port and gate
But the world is locked and bolted
Cause everywhere they go they read: NO PLACES LEFT
So they stay on those ships
To wander around the ocean depths
Not corsairs, nor pirates,
not heroes, nor ramblers
people with no tomorrow, souls of no one
people spat out of the man all those for
whom there are no places left
The ships are sailing, ships are sailing
Through the azures, through the whirls
The ship is a coffin, not a boat
Azure is black ink
So they sail into this endless cruise
and on the gates the sign says: no places left
The globe is spinning around
Rich in wonders and resources
Suddenly it stops - is it the weight?
Please step off – no places left
tr. Marta Ziegler
Polish Colonies
by Tadeusz Hollender (1910-1943)
It's obvious - we're strong and young Fertile land, enough horses and arms The only thing harms us – we have no colonies!
The others have the Guyanas, the Indias, the Abyssinias bananas, farms in Patagonia. Polesie and Jews in Charbin - are not colonies!
It's obvious - we're strong and young Who needs the negros! The workers' hands in Sosnowiec and Łódź – the Polish colony – will do the same work
Poland! Oh, you great and happy country The island of Beck, on the depths of the Pacific… Already they’re singing in Mokotów About a Polish colony!
tr. Marta Ziegler
The Hunt
by Zuzanna Ginczanka (1917-1945)
Into the thickets of the past, into the distant times
Into the menacing, winding forests and woods
With their hands woven into harnesses and manes
Hunters in black their horses ride
Oh, the beautiful hunt! Oh, the proud hunt!
In the alcove’s clandestine history
With nostrils inflated and bent backs
With lips pursed and focused sight
They run like the wind in a black gallop
Following the faintest of traces, the feeblest of tracks
What kind of zeal makes their sight so clear?
What do they look for? What kind of beast?
What impulse stretches their chests
Worthy of a knight, worthy of a man
The hunters ride into a distant time
Where tracks’ve overgrown and traces have darkened
In the thickets of the past, like an ant, working hard
They search for the granny, for Jewish gram!
The Jewish granny of their neighbor,
Their sworn enemy, their good fellow
And when they sniff her out like a hind
They blow their trumpets, horns and play!
Tense nerves, fierce sight
He’s the hunter, the blue-eyed, blonde
tr. Marta Ziegler
I'm silent
by Józef Wittlin (1896-1976)
About everything that’s going on right now…
About the poverty of the country, and the fate of the peasant
About the poverty of the city, and the unemployment
About pitting people against each other
About the children in Madrid’s mortuaries
About the mercy of bombs and mustard gas
About all the murders I am seeing,
When the bombs are flying and capitals are burning!
About the hunger of the hungry, fullness of the full
About everyone defeated in the unjust war
About tons of blood bled out in vain.
About everything that’s happening right now.
About all the armed cowards,
About Poland after the Marshal’s death
About beating up the helpless and the weak
About wars that have already broken out
About wars that will break out tomorrow
The soul silently screams
When the bombs are flying and capitals are burning!
About the hunger of the hungry, fullness of the full
About everyone defeated in the unjust war
About tons of blood bled out in vain.
About everything that’s happening right now – I’m silent!
tr. Marta Ziegler
The Laundresses
by Zuzanna Ginczanka (1917-1945)
Lala-la, lala-la
Buzzes, buzzes the white foam
Carefully, cautiously,
The laundresses wash the thin white
Trying not to tear the lace
And save up for the bombs
Trying not to rip the flounces
And to build a tank – a tankie
Trying not to destroy the brassiere
To buy a lot of battleshipsies
Clang! Bang! Snip! Snap!
Here, a new fragrant gas grows
Snip! Snap! Thump! Bump!
New, shiny Krupp tanks
A new missile, a fashionable mine,
A new, slim submarine
A new kind of glass candle
Laced, flounced
Lala-la, lala-la
Buzzes, buzzes the black foam
It’s not a laundryroom, not a washtub
(I know, because I’m looking into time and far away)
Those are the infernal, devilish tubs
If I were to be honest-
Clang! Bang! Buzzes, splashes –
Black oil, greasy tar
Blood cooling, thick swarms
Death in trenches, fields and ditches -
Clang! Bang! Buzzes, splashes
Above the tar – crackling sulfur
Demons herd each other to work
Lala-la, Lala-la
And in a soft voice are singing
Lala-la, Lala-la
The laundresses with hair like linen
tr. Marta Ziegler


WHO ARE WE ?
Pictionary is a simple picture based dictionary.
It consists of pictures of adifferent catagories, along with valid information about them.
And yes, It is open source !!
Trying to keep it informational and educational as much as possible. \
An awesome infographic encyclopedia made from your contributions for you!


1
2
3
4
5
2.
Which of these medications have you taken in the past 30 days?
(list all that apply)
check_circle
Albuterol
check_circle
Alprazolam
check_circle
Aspirin
check_circle
Cymbalta
check_circle
Ibuprofen
check_circle
Lipitor
check_circle
Prednisone
check_circle
Synthroid
check_circle
Zocor
check_circle
Zoloft
arrow_back
Previous
Next
arrow_forward


Out of all my hobbies I really enjoy motorcyles and cars the most. I currently have a 2015 Yamaha R6, and a bmw 328i.
Ive been riding motorcycles for almost ten years. I started on a dirtbike and made my way to the street.  Thats the "m" performance line from BMW which means speed and I love speed. My dream car is the
La Ferrari from Ferrari. Below there is a picture of my motorcycle and a picture of the next car I'm after!


{% extends "base.html" %} {% block title %}Contact us{% endblock %} {% block content %}
If you have not received a verification code by email or mobile, contact the NHS Digital Contact Centre.
We may be able to guide you through the service, or manage your choice on your behalf.
Call: 0300 303 5678
Open: 9am to 5pm Monday to Friday (excluding bank holidays).


- Artwork
- Abstract
- 2 Acrylic Mediums
- Creative Acrylic
- Modern Painting
- Canvas Art
- Black white
- Children
- Preschool Crafts
- School-age Crafts
- Fabulous Toddler
- Comic / Cartoon
- Batman
- Adventures of Superman
- Super boy
- Books
- Comics
- The Flash
- Human Target
- Birds of Prey
- Entertaining
- Design
- Music
- Classical
- Avant-Garde
- Medieval
- Orchestral
- Mass
- Folk


About
is a 3D online fighting game that supports up to 4 players in a free-for-all. You play as a wizard with a selection of 4 chosen spells, and you fight other wizards in a battle arena until only one wizard remains.
was also entered in a competition, the IEEE GameSIG 2017 Showcase, and ended as a semi-finalist.
Usage
Creating and Joining Games
To play , you either create a lobby for other players to join, or look for one yourself. You can do this from the main menu. When creating a lobby, you will see a new menu. Here, you can see the players currently in the lobby, and your spells. You can choose your spell loadout from here before the game starts. Joining an existing lobby will lead you to the same menu, but you will not be able to start the game yourself.
Gameplay
is primarily a fighting game; thus, players fight each other until there is only one left. To do that, you must move your character around to dodge spells and reposition, and cast your own spells. To move your player, you right-click at a point on the ground you wish to move to. The character will automatically turn and move towards that point.
To cast a spell, you press 1, 2, 3, or 4 to prime that spell, and then left-click at a point on the ground, or at another character. The spell will then be cast, and got on cooldown. Most spells require a target of some kind, but some are cast on yourself automatically.
You are killed if you lose all of your health by taking damage from enemy spells. Once killed, you must wait a few seconds before respawning. If you lose all of your lives, you have lost the game.
Spells
There are a variety of spells in the game, each grouped by element. The spells:
- Fireball: Hurl a fiery projectile.
- Meteor: Call down a flaming meteor.
- Alchemist's Blood: Your spells burn their targets.
- Plasma Orb: Emit a slow moving ball.
- Voidwalk: You move faster and become invulnerable, but cannot cast spells.
- Entropic Decay: Increase damage taken by enemies and slow them.
- Quark: Fire a small, fast projectile.
- Innervate: You move much faster.
- Lightning Strike: Call down a bolt of lightning.
Spell Selection
You can set your spell loadouts by clicking on the Spells button in the main menu. Here, you can drag and drop spells into each of your loadouts. You can also see what each spell does, their damage, and their cooldown times.
Development
Overview
was made in C# with Unity3D. We used several outside assets, including Photon, Magic Missiles, and 3 Skyboxes. The player models, the arena, and the main menu were all created by Christian Sydow, and the music was made by Cyrus Fiete.
Player Character
The player character is made up of several scripts. There is a single controller that interacts with botht the UI and the character data. This controller allows the player to move around, cast spells, and take damage. The controller reads and updates the character data. This data contains all of the character's stats, like movement speed, health, and damage bonuses. The controller updates the character UI, by updating the health, and setting the cooldowns of his/her spells.
The player movement and casting is similar to a MOBA-like system, where the players move around by right-clicking, and cast spells by priming that spell and then left-clicking.
Spell System
The spells are created by matching several different components together. Each spell needs the effect, and a delivery method. This delivery method can be in the form of a projectile, or by a status. Projectile spells transfer their effect logic onto the projectile, in the form of an on-hit method. Status spells directly affect their targets. Each spell has a data structure that contains that spells stats, and a controller which determines how the spell works. This controller will either directly execute its effect onto their target, or spawn a projectile and off-load the effect onto it.
For example, the Fireball spell spawns a flaming projectile, which then damages the first enemy it hits. The Meteor spell spawns a flaming meteor high above the arena, which then falls towards the ground and explodes upon impact. The Innervate spell does not spawn any projectile. Instead, it tells the caster's controller to increase the character's movement speed.
Many spells give temporary changes to a character's stats. This is handled by the character's controller. When a temporary effect of some kind targets a character, that effect is stored in the controller. At each tick, the controller checks the effects stored to see if any have expired. Upon expiration, the effect is reversed. Each effect has an effect and inverse-effect method for this purpose.
Different spells also have different targeting methods. For example, the Fireball spell requires a target direction, but does not care about individual points. On the other hand, the Meteor spell requires a target point within range. The Innervate spell does not require a target, as the target is always the caster character.
Networking
Networking was done by Photon. When players create or join a lobby, they do this via methods provided by Photon. In-game, whenever a player performs an action, such as move, or casting a spell, the player's client informs Photon, which then informs all of the other clients. This also occurs when a player takes damage, when a projectile moves or dissipates, and when a player dies.
Future
is completed for now. There were many planned features prior to the creation of this game that are not present in this release. Among them were:
- Spell creation: Instead of spells, you have spell components. You mix and match components to create custom spells.
- Collectible spell components: At the end of each game, each player gets a random component. You can collect these components and create spells out of them. The rarer the component, the more unique and powerful their effects were.
- More spell elements: There are only three elements present in the release: fire, gravity, and lightning. There were more elements planned, like cold. Each element would have a theme and specialty, and every spell component would inherit that specialty.
- More spell effects: Currently, the effects of the spells are simplistic. They are either deal damage as a projectile, deal damage in an area, and buff or debuff a target. There were plans for summoning stationary objects that performed the effect, as opposed to a projectile, forcibly pushing and pulling enemies, and stuns and other crowd control effects.
Team
- Me: game designer • programmer
- Alex Dunn: game designer • programmer • 2D artist | Github • Linkedin
- Camille Dunn: video content creator
- Cyrus Fiete: music • sfx
- John Grefiel: QA
- Kevin Permana: audio programmer | Github • Linkedin
- Christian Sydow: 3D artist | Github • Linkedin
- David Wu: QA | Github • Linkedin


{% extends "layout.html" %} {% block title %}LostTime - Series Result{% endblock %} {% block pagetitle %}
To update your series with future events, use this link, or access from your account page.
{{ thehtml|escape }}
If you don't see anything in the box, click here to view the page in a new tab. Keep in mind styles will not match your final result if you're using classes or fonts from your own site.


e-soko
HOME
ABOUT
CATEGORY
PRODUCTS
CONTACT US
Cart
Order Summary
#
Item Name
Quantity
Unit Price
Sub Total
Place Order


You will receive an acknowledgement of your request
from the Bureau within five business days.
Depending on the nature of the request,
processing time may vary for the Bureau to review your request, identify an appropriate speaker,
and ensure that staff schedules allow for participation.


abstract fun isDeviceRoaming(): Boolean
To query if the device is roaming.
Return boolean - If the current network is roaming
See Also
WiseFy.isDeviceRoaming
Author Patches
Since 3.0


get(communityId, pollId, hl=None)
Retrieves one specific poll of a community.
list(communityId, pageToken=None, hl=None, maxResults=None)
Retrieves the polls of a community.
list_next(previous_request, previous_response)
Retrieves the next page of results.
get(communityId, pollId, hl=None)
Retrieves one specific poll of a community. Args: communityId: integer, The ID of the community for whose poll will be retrieved. (required) pollId: string, The ID of the poll to get. (required) hl: string, Specifies the interface language (host language) of your user interface. Returns: An object of the form: { "links": [ # List of resources for the community poll. { # Links to resources related to the parent object. "href": "A String", # URL of the link. "type": "A String", # Media type of the link. "rel": "A String", # Relation between the resource and the parent object. "title": "A String", # Title of the link. }, ], "isMultipleAnswers": True or False, # Whether this poll allows voting for more than one option. "image": { # The image representing the poll. Field is omitted if no image exists. "url": "A String", # A URL that points to an image of the poll. }, "endingTime": "A String", # The ending date of this poll or empty if the poll doesn't have one. "isVotingAllowedForNonMembers": True or False, # Whether non-members of the community can vote on the poll. "isSpam": True or False, # Whether the user has marked this poll as spam. This only affects the poll for this user, not globally. "totalNumberOfVotes": 42, # The total number of votes this poll has received. "author": { # The person who created the poll. "url": "A String", # The URL of the author who posted the comment [not yet implemented] "image": { # Image data about the author. "url": "A String", # A URL that points to a thumbnail photo of the author. }, "displayName": "A String", # The name of the author, suitable for display. "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID. }, "question": "A String", # The poll question. "id": "A String", # The poll ID. "isRestricted": True or False, # Whether this poll is restricted for members only. If a poll is open but the user can't vote on it, it's been restricted to members only. This information is important to tell this case apart from the one where the user can't vote simply because the poll is already closed. "communityId": 42, # The ID of the community. "isUsersVotePublic": True or False, # If user has already voted, whether his vote is publicly visible. "lastUpdate": "A String", # The date of the last update of this poll. "description": "A String", # The poll description. "votedOptions": [ # List of options the user has voted on, if there are any. 42, ], "isOpenForVoting": True or False, # Whether this poll is still opened for voting. A poll is open for voting if it is not closed, the user has not yet voted on it and the user has the permission to do so, which happens if he/she is either a community member or the poll is open for everybody. "isClosed": True or False, # Whether the poll is not expired if there is an expiration date. A poll is open (that is, not closed for voting) if it either is not expired or doesn't have an expiration date at all. Note that just because a poll is open, it doesn't mean that the requester can vote on it. "hasVoted": True or False, # Whether the user has voted on this poll. "kind": "orkut#communityPoll", # Identifies this resource as a community poll. Value: "orkut#communityPoll" "creationTime": "A String", # The date of creation of this poll "options": [ # List of options of this poll. { "image": { # Image data about the poll option. Field is omitted if no image exists. "url": "A String", # A URL that points to an image of the poll question. }, "optionId": 42, # The poll option ID "description": "A String", # The option description. "numberOfVotes": 42, # The total number of votes that this option received. }, ], }
list(communityId, pageToken=None, hl=None, maxResults=None)
Retrieves the polls of a community. Args: communityId: integer, The ID of the community which polls will be listed. (required) pageToken: string, A continuation token that allows pagination. hl: string, Specifies the interface language (host language) of your user interface. maxResults: integer, The maximum number of polls to include in the response. Returns: An object of the form: { "nextPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the next page, if there are more to retrieve. "kind": "orkut#communityPollList", # Identifies this resource as a collection of community polls. Value: "orkut#communityPollList" "items": [ # List of community polls retrieved. { "links": [ # List of resources for the community poll. { # Links to resources related to the parent object. "href": "A String", # URL of the link. "type": "A String", # Media type of the link. "rel": "A String", # Relation between the resource and the parent object. "title": "A String", # Title of the link. }, ], "isMultipleAnswers": True or False, # Whether this poll allows voting for more than one option. "image": { # The image representing the poll. Field is omitted if no image exists. "url": "A String", # A URL that points to an image of the poll. }, "endingTime": "A String", # The ending date of this poll or empty if the poll doesn't have one. "isVotingAllowedForNonMembers": True or False, # Whether non-members of the community can vote on the poll. "isSpam": True or False, # Whether the user has marked this poll as spam. This only affects the poll for this user, not globally. "totalNumberOfVotes": 42, # The total number of votes this poll has received. "author": { # The person who created the poll. "url": "A String", # The URL of the author who posted the comment [not yet implemented] "image": { # Image data about the author. "url": "A String", # A URL that points to a thumbnail photo of the author. }, "displayName": "A String", # The name of the author, suitable for display. "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID. }, "question": "A String", # The poll question. "id": "A String", # The poll ID. "isRestricted": True or False, # Whether this poll is restricted for members only. If a poll is open but the user can't vote on it, it's been restricted to members only. This information is important to tell this case apart from the one where the user can't vote simply because the poll is already closed. "communityId": 42, # The ID of the community. "isUsersVotePublic": True or False, # If user has already voted, whether his vote is publicly visible. "lastUpdate": "A String", # The date of the last update of this poll. "description": "A String", # The poll description. "votedOptions": [ # List of options the user has voted on, if there are any. 42, ], "isOpenForVoting": True or False, # Whether this poll is still opened for voting. A poll is open for voting if it is not closed, the user has not yet voted on it and the user has the permission to do so, which happens if he/she is either a community member or the poll is open for everybody. "isClosed": True or False, # Whether the poll is not expired if there is an expiration date. A poll is open (that is, not closed for voting) if it either is not expired or doesn't have an expiration date at all. Note that just because a poll is open, it doesn't mean that the requester can vote on it. "hasVoted": True or False, # Whether the user has voted on this poll. "kind": "orkut#communityPoll", # Identifies this resource as a community poll. Value: "orkut#communityPoll" "creationTime": "A String", # The date of creation of this poll "options": [ # List of options of this poll. { "image": { # Image data about the poll option. Field is omitted if no image exists. "url": "A String", # A URL that points to an image of the poll question. }, "optionId": 42, # The poll option ID "description": "A String", # The option description. "numberOfVotes": 42, # The total number of votes that this option received. }, ], }, ], "prevPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the previous page, if there are more to retrieve. "lastPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the last page. "firstPageToken": "A String", # The value of pageToken query parameter in community_polls.list request to get the first page. }
list_next(previous_request, previous_response)
Retrieves the next page of results. Args: previous_request: The request for the previous page. (required) previous_response: The response from the request for the previous page. (required) Returns: A request object that you can call 'execute()' on to request the next page. Returns None if there are no more items in the collection.


When La Salsa opened the doors of it’s first taqueria way back in 1979, we quickly gained a reputation throughout Los Angeles for using fresh ingredients and serving up delicious soft tacos, giant burritos and fresh and unique salsa bar to all the local folks. As word spread, La Salsa found more and more fans, opening more and more of our quick-service Mexican restaurants, and soon- the Fresh Mexican movement was born!
Since those early days La Salsa has grown into a fresh-mex favorite across Southern California, Arizona, Nevada, parts of Texas- even Rockaway, New Jersey by continuing to take time honored, traditional recipes from all over Mexico and updating them. Tacos, burritos, salads, even favorites like taquitos and quesadillas… La Salsa puts our own fresh, delicious twist on them by using fresh ingredients and innovative preparation to bring the bold tastes and flavors of Mexico to life to create menu items like no other;
While La Salsa has gained a reputation for exploring the four corners of Mexican Food, we’ve still held on to those things that made us loved to begin with. Our open and inviting kitchen atmosphere, friendly staff, fresh ingredients, freshly prepared food and our amazing salsa bar filled with unique salsas that let our customers explore for themselves a multitude of ways to make our good food great!
Nothing can help turn your event into a fiesta like La Salsa catering. Give us a call at 1-877-WE-CATER , and well answer any question you might have on specifics, pricing or other details.
Every Taco Fiesta starts with your choice of 2 meats: Choose from charbroiled chicken, slow-roasted carnitas or tender, juicy steak. Then we fill out the table as only La Salsa can with the freshest salad, tortillas, rice, beans, guacamole, cheese, onion cilantro mix and, of course a variety of our famous salsas and chips.
 Four Original Gourmet Burritos loaded with your choice of charbroiled chicken or marinated, grilled steak, sliced into halves, and served up with a cool veggie Chile-Lime Salad, and chips with our Salsa Buena.
La Salsa’s approach to the best Mexican food possible is simple. We take time honored, authentic Mexican dishes and update them using the freshest ingredients and preparation to bring the bold tastes and flavors of Mexico to life in a variety of unique ways. We’re constantly exploring, trying new tastes and ideas, and updating our menu so that we can share with you our twists on the flavors of Mexico’s varied regions.
Flame grilled chicken, fire-roasted veggies, zucchini, corn, broccoli and carrot mix, beans and salsa layered over La Salsa’s own rice and then topped with poblano crema, cheeses, and fresh cilantro.
Our Favorite, Tacos La Salsa- Two giant tacos stuffed with grilled chicken and topped with jack and chedder cheeses and fresh lettuce and tomatoes.


Alphas are reviewed for seven technical criteria. We aim to not impose any value bias during an Alpha review but primarily to ensure they are mechanically sound. When submitting your Alpha please review it for the following points:
Mechanisms should be set up to restore internal state in the event of reboots. Alphas will be very long running. Over the course of months or years, the server will need patches and occasional restarting. The alpha should be smart enough to automatically recover in the event of restart using History and WarmUp API methods.
Alphas should use public data, commercial feeds or QuantConnect's data. Importing a personal dataset through DropBox isn't reliable enough to build a long-term track record and ensure the Alpha will continue working as expected. You should use public data sources (e.g. Quandl), commercial data, or QuantConnect supplied data.
Alphas should have clear strategic reasoning underpinning the strategy. A single reason based foundation for the algorithm is necessary to understand the alpha behavior when things go wrong, and it helps improve your alpha application for funds. Obscure correlations or overfitted strategies tend to perform poorly out of sample.
Authors need a transparent employment history and alphas must not infringe on other IP. We'd like to know the employment history of authors on the platform and ensure the alpha is not infringing on any intellectual property, including your current and past employers. Public or shared content may be used as a foundation and extended. Where you may have licensed the IP from a third party, presenting consents for usage are acceptable.
Alphas need to be able to handle edge cases such as Dividends, Splits, and Delistings. This adds another layer of resiliency and will keep an Alpha running in the event of data changes. This can involve simple control logic, explicitly removing certain affected securities from the Universe, or other methods.
We won't reject any Alphas based on what is outlined below, but these are good practices to abide by when authoring an Alpha.
Look-ahead bias can negatively affect the performance of an Alpha once it is deployed and will limit its appeal for licensing. Bias is introduced by using information or data in testing that would not have been known or available during the period being analyzed. In order to avoid look-ahead bias in an Alpha, it is vital only to use information that would have been available at the time of the trade.
Selection bias happens when an Alpha selects specific securities where the data is known and where a subset of the data is systematically excluded due to a particular attribute. Universe Selection aids in preventing selection bias by blindly choosing assets with limited filtering and without foreknowledge of whether the security will be delisted, declare bankruptcy, split, etc. Fixed universes are not necessarily biased, but authors must exercise caution. Alphas whose Ingiths are generalizable across groups of securities and market conditions will generate more appeal than those with minimal scope.
Although not a technical requirement for submission, Alphas should be simplified and generalized as much as possible by omitting specific APIs that LEAN offers.
| Reality Modeling Code to Omit | |
|---|---|
| Fee Models | Brokerage Models |
| Fill Models | Slippage Models |
| Buying Power Models | Settlement Models |
All of these APIs add functionality for individual traders or researchers, but funds have specific methods and models they'll want to use. Omitting these will remove some constraints upon Insight emission and provide an unfiltered view of how the Alpha model performs.


If you are in crisis or having thoughts of suicide, visit VeteransCrisisLine.net for more resources.
Close


{{ define "base" }}
The Orb Badge Server is an experimental service provided to generate readme badges for your CircleCI Orbs. It is not an official CircleCI service. The source code for this server can be found here
Here's how the Orb Badges for the circleci/slack
and circleci/aws-cli
orbs look:
Provide your orb namespace and name and we'll generate the Markdown necessary to display your Orb Badge.
{{ end }}


{% include "landbank_data/base_map_head.html" %}
{% include "landbank_data/pin_properties.html" %}
{% include "landbank_data/base_map_body.html" %}
{% include "landbank_data/pin_scores.html" %}
{% include "landbank_data/area_charts.html" %}


--- title: Doing Comment Previews the Right Way layout: post tags: [rant, perl, netsec] uuid: 3620c8f7-f957-3ebd-ce17-62462ee43f88 ---
Many comment/discussion systems get previews wrong. This even includes major sites like Boing Boing and Slashdot. Sometimes they feed back a different comment in the textarea, so repeated previews slowly degrade the comment. Other times the comment preview isn't the same thing as the final result. A comment actually has four states,
The raw comment is the unfiltered string of bytes from the user. This is not safe to give directly back to the user, as it could be exploited to feed an arbitrary page to an innocent user.
The escaped comment is created from the raw comment by
filtering it through the escapeHTML()
function. This
function creates HTML entities out of some of the characters, like
< and >. A browser will interpret the escaped comment as a
simple string, and is safe to give back to the user. This function is
actually provided by perl's CGI module, so perl programmers need not
implement this.
Note that escapeHTML()
is reversible, though the server
side won't need to reverse it. The browser does.
The stripped comment is created from the raw comment by
filtering it through stripHTML()
, which removes
non-whitelisted HTML tags. It also strips non-whitelisted attributes
from allowed tags. It should probably add a
rel="nofollow"
to links. It also runs escapeHTML()
on attribute values and content outside tags. This is safe to give
back to the user because only safe tags are left.
If your comments use markup other than HTML, like BBCode, this function should strip all HTML (your whitelist is empty) and do the conversion from your markup to HTML.
It might also be a good idea for it to produce well-formed HTML. This will allow your comments/discussion pages to be XHTML compliant.
stripHTML()
is irreversible because it dumps information.
The stored comment is the encoding of the comment in the
system. This depends entirely on the storage system. In some cases it
may be identical to the stripped comment (and store
is
the identity function). If the comment is going through SQL into
database, some characters may need to be escaped as to not cause
problems. It could even be a base 64 encoding.
store()
must be unambiguously reversible, and the server
should have an unstore()
to do this. It should probably
also be able to convert any arbitrary string of characters into a safe
encoding for storage.
There should only be one version of all these functions for both previews and final posting of comments.
When doing a comment preview both the escaped comment and the stripped comment are given back to the user. The stripped comment is dropped in as HTML, and the escaped comment is put into the textarea of the form. It would probably be convenient for the user if you give them back any other form information, including the same captcha and their answer to it (or not charge them with a captcha for that comment anymore).
You may be tempted to store the raw comments (safely with
store()
) and do HTML stripping on the fly. This would
allow you to upgrade your HTML stripping function in the future to
"better" handle user input. I don't recommend it. That's extra
processing for each page request, but worse, it breaks the concept of
the preview, because the comment formatting is subject to change in
the future.
The hardest function to implement is probably stripHTML()
because it needs to be able to handle poorly formed HTML. If you are
using perl, you will probably want to use the HTML::Parser module,
which is what I did. This does everything noted above and also
auto-links anything that looks like a URL, forces proper comment
nesting, automatically makes paragraphs from blank-line-separated
chunks, and almost produces well-formed HTML.
The documentation is basically non-existent, but if you want to
whitelist more tags add them to @allowed_tags
. Use it,
abuse it.
I use this code in my comment system, so you can play around with it by using my preview function.


Kausar Fatima
Trainer at IBM Global Process Services
- Location
- Lucknow Area, India
- Industry
- Information Technology and Services
As a LinkedIn member, you'll join 225 million other professionals who are sharing connections, ideas, and opportunities.
- See who you and Kausar Fatima know in common
- Get introduced to Kausar Fatima
- Contact Kausar Fatima directly
Kausar Fatima's Overview
- Current
-
- Trainer at IBM Global Process Services
- Connections
-
1 connection
Kausar Fatima's Experience
Trainer
IBM Global Process Services
Privately Held; 10,001+ employees; Information Technology and Services industry
Currently holds this position
Contact Kausar for:
- career opportunities
- consulting offers
- new ventures
- job inquiries
- expertise requests
- business deals
- reference requests
- getting back in touch
View Kausar Fatima’s full profile to...
- See who you and Kausar Fatima know in common
- Get introduced to Kausar Fatima
- Contact Kausar Fatima directly
Not the Kausar Fatima you were looking for? View more »


My Recipes!
ID
Description
View
123
Tasty Goodnees 1
View
12333
Tasty Goodnees 2
View
334
Tasty Goodnees 3
View


|
Cyclone ISO C++ API Reference Guide
|
Namespaces | |
| cond | |
| policy | |
| status | |
Classes | |
| class | AlreadyClosedError |
| Exception: The object target of this operation has already been closed. More... | |
| struct | array |
| A standard container for storing a fixed size sequence of elements. More... | |
| class | Duration |
| class | Entity |
| This class is the abstract base class for all the DCPS objects. More... | |
| class | EntityQos |
| QoS Container. More... | |
| class | Error |
| Exception: Generic, unspecified error. More... | |
| class | Exception |
| Exception: base class for specified DDS Exceptions. More... | |
| class | IllegalOperationError |
| Exception: An operation was invoked on an inappropriate object or at an inappropriate time. More... | |
| class | ImmutablePolicyError |
| Exception: Application attempted to modify an immutable QosPolicy. More... | |
| class | InconsistentPolicyError |
| Exception: Application specified a set of policies that are not consistent with each other. More... | |
| class | InstanceHandle |
| Class to hold the handle associated with in sample instance. More... | |
| class | InvalidArgumentError |
| Exception: Application is passing an invalid argument. More... | |
| class | InvalidDataError |
| Exception: Application provided invalid data More... | |
| class | InvalidDowncastError |
| Exception: Application has attempted to cast incompatible types. More... | |
| class | NotEnabledError |
| Exception: Operation invoked on an Entity that is not yet enabled. More... | |
| class | null_type |
| This class is used to create dds::core::null objects. More... | |
| class | NullReferenceError |
| Exception: Application used a null reference. More... | |
| class | optional |
| class | OutOfResourcesError |
| Exception: Service ran out of the resources needed to complete the operation. More... | |
| class | PreconditionNotMetError |
| Exception: A pre-condition for the operation was not met. More... | |
| class | QosProvider |
| The QosProvider API allows users to specify the QoS settings of their DCPS entities outside of application code in XML. More... | |
| class | Reference |
| Base class for reference-counted objects. More... | |
| class | safe_enum |
| class | Time |
| class | TimeoutError |
| Exception: The operation timed out. More... | |
| class | tuple_element |
| tuple_element More... | |
| struct | tuple_element< _Int, array< _Tp, _Nm > > |
| class | tuple_size |
| struct | tuple_size< array< _Tp, _Nm > > |
| class | UnsupportedError |
| Exception: Unsupported operation. More... | |
| class | Value |
| This class is the base for various value-type dds objects. More... | |
| class | WeakReference |
| The WeakReference class enables you to maintain a weak reference to a DDS reference type. More... | |
Typedefs | |
| typedef std::vector< uint8_t > | ByteSeq |
| typedef std::vector< std::string > | StringSeq |
Functions | |
| template<typename T > | |
| T::const_iterator | begin (const T &t) |
| template<typename T > | |
| T::iterator | begin (T &t) |
| template<typename T > | |
| T::const_iterator | end (const T &t) |
| template<typename T > | |
| T::iterator | end (T &t) |
| template<std::size_t _Int, typename _Tp , std::size_t _Nm> | |
| _Tp & | get (array< _Tp, _Nm > &__arr) |
| template<std::size_t _Int, typename _Tp , std::size_t _Nm> | |
| const _Tp & | get (const array< _Tp, _Nm > &__arr) |
| template<typename _Tp , std::size_t _Nm> | |
| bool | operator!= (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two) |
| const Duration | operator* (const Duration &lhs, uint64_t rhs) |
| const Duration | operator* (uint64_t lhs, const Duration &rhs) |
| const Duration | operator/ (const Duration &lhs, uint64_t rhs) |
| template<typename _Tp , std::size_t _Nm> | |
| bool | operator< (const array< _Tp, _Nm > &__a, const array< _Tp, _Nm > &__b) |
| template<typename _Tp , std::size_t _Nm> | |
| bool | operator<= (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two) |
| template<typename _Tp , std::size_t _Nm> | |
| bool | operator== (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two) |
| template<typename _Tp , std::size_t _Nm> | |
| bool | operator> (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two) |
| template<typename _Tp , std::size_t _Nm> | |
| bool | operator>= (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two) |
Variables | |
| const int32_t | LENGTH_UNLIMITED = -1 |
| typedef std::vector<uint8_t> dds::core::ByteSeq |
| typedef std::vector<std::string> dds::core::StringSeq |
| T::const_iterator dds::core::begin | ( | const T & | t | ) |
| T::iterator dds::core::begin | ( | T & | t | ) |
| T::const_iterator dds::core::end | ( | const T & | t | ) |
|
inline |
|
inline |
| const int32_t dds::core::LENGTH_UNLIMITED = -1 |
Definition at line 27 of file LengthUnlimited.hpp.


--- layout: 2-columns asides: [categories.html, tags.html] title: Notes description: Notes and short essays by Munir Hussin ---


There are 377 item locations in the entire game. Depending on your seed generation settings, this number might change.
- 14 Spirit Trees (Skill Trees)
- 24 Life Fragments (HC or Health Cell)
- 24 Energy Fragments (EC or Energy Cell)
- 23 Shards
- 38 Gorlek Ore
- 33 Keys (31 Keystones + 2 Eyestones)
- 27 items from shops (including Lupo’s maps)
- 36 items from quests (from both quests’ rewards and items related to quest)
- 148 Spirit Light Containers (EX or experience orbs)
- 5 Shard Slot (from Combat Shrines)
- 5 Wisps (Voice, Memory, Eyes, Strength, Seir)
In-game, you will be able to open your map to see the position of these pickups. Depending on your settings, you might also have access to a new logic filter which will show all pickups you currently have access to with your skill set.


How are you doing today?
How are you doing today?
How are you doing today?
How are you doing today?
How are you doing today?


One time ago a crazy dream came to me,
I dreamt I was walking in World War III.
Went to the doctor the very next day
To see what kinda words he could say.
Said it was a bad dream.
"I wouldn't worry 'bout it none, though. Them old dreams are only in your head."
I said, "Hold it, doc, a World War passed through my brain!"
He said, "Nurse, get your pad, the boy's insane!"
He grabbed my arm, I said "Ouch!"
As I landed on the psychiatric
1 couch.
He said, "Tell me about it."
"Well, the whole thing started at three o'clock fast,
It was all over by a quarter past.

"Well, I got up and I walked around,
Up and down the lonesome town.
I stood wondering which way to go.
I lit a cigarette on a parking meter and walked on down the road.
It was a normal day.
 I'm a hungry man!'
Shotgun fired and away I ran.
I don't blame him too much, though. He didn't know me.
"Down the corner by the hot dog stand,
I seen a man.
I said, 'Howdy, friend, I guess it's just us two.'
He screamed a bit and away he flew.
Thought I was a communist.
"Well, I spied me a girl and, before she could leave,
I said, 'Let's go and play Adam and Eve.'
Took her by the hand and my heart was thumping,
She said, 'Hey, man, you crazy or something?
You seen what happened last time they started.'
"Well, I seen your Cadillac window up-town.
There was nobody around.
I got into the driver's seat
And I drove down Forty-second Street,
In my Cadillac.
Good car to drive, after a war.
"Well, I remember seeing some ad
So I turned on my Conelrad.
But I didn't pay the Con Ed bill
So the radio didn't work so well.
Turned on my record player.
It was Rock-A-Day Johnny singing,
'Tell your ma, tell your pa,
Our loves are gonna grow, ooh-wah, ooh-wah.'
"I was feeling kinda lonesome and blue,
I needed somebody to talk to.
So, I called up the operator of time
Just to hear a voice of some kind.
'When you hear the beep it will be three o'clock.'
She said that for over an hour and I hung up."
Well, the doctor interrupted me just about then,
Saying, "Hey, I've been having the same old dreams.
But mine was a little different, you see.
I dreamt the only person left after the war was me.
I didn't see you around."
Well, now, time passed and now it seems
Everybody's having them dreams.
Everybody sees hisself
Walking around with no one else.
"Half the people can be part right all of the time and some of the people can be all right part of the time, but all the people can't be all right all of the time."
I think Abraham Lincoln said that.
"I'll let you be in my dream if I can be in yours."
I said that.
1
Dylan pronounces this word in an odd manner, as if it were something like "sopiatric".


Here is a simple example of a window form with a button click to show a ballon popup up in the windows tray.
First create windows form applicaiton in your visual studio and add a button from the tool box in the form like below
Go to button's properties window (press f4). Click on event icons, it will show you the list of events below. we have to apply a click event on the button. You can double click on the button also which will take you to the code view of the form with automatically added click event function
When you see the below code snippet ready in your code view
Add the notify icon also in your windows form
also you need to add the icon by going to the notifiy icon's property. without that ballon popup will not appear.
Now add the following code in to the button click event
Run your application and click on the button. You should see the popup appear in the windows tray like below
try it!


home
Courses
contact
Login
home
Courses
contact
login
Log In
Register
Remember password
Login
I agree to the terms & conditions
Register


You can get the latest version of Chart.js from npm, the GitHub releases, or use a Chart.js CDN. Detailed installation instructions can be found on the installation page.
It’s easy to get started with Chart.js. All that’s required is the script included in your page along with a single <canvas>
node to render the chart.
In this example, we create a bar chart for a single dataset and render that in our page. You can see all the ways to use Chart.js in the usage documentation.
<canvas id="myChart" width="400" height="400"></canvas>
<script>
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx, {
type: "bar",
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [
{
label: "# of Votes",
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
"rgba(255, 99, 132, 0.2)",
"rgba(54, 162, 235, 0.2)",
"rgba(255, 206, 86, 0.2)",
"rgba(75, 192, 192, 0.2)",
"rgba(153, 102, 255, 0.2)",
"rgba(255, 159, 64, 0.2)",
],
borderColor: [
"rgba(255, 99, 132, 1)",
"rgba(54, 162, 235, 1)",
"rgba(255, 206, 86, 1)",
"rgba(75, 192, 192, 1)",
"rgba(153, 102, 255, 1)",
"rgba(255, 159, 64, 1)",
],
borderWidth: 1,
},
],
},
options: {
scales: {
y: {
beginAtZero: true,
},
},
},
});
</script>
Before submitting an issue or a pull request to the project, please take a moment to look over the contributing guidelines first.
For support using Chart.js, please post questions with the chartjs
tag on Stack Overflow.
Chart.js is available under the MIT license.
Documentation is copyright © 2014-2021 Chart.js contributors.


Create an account to gain access to certain data sets. If you already have an account, please log in instead.
{{errorMessage}}


LILIAN'S STORY A film review by James Berardinelli Copyright 1997 James Berardinelli
RATING (0 TO 10): 7.0 Alternative Scale: *** out of ****
Australia, 1996 Running Length: 1:35 MPAA Classification: No MPAA Rating (Nudity, violence, profanity) Theatrical Aspect Ratio: 1.85:1 Shown at the Philadelphia Festival of World Cinema, 5/3/97, 5/5/97, & 5/7/97
Cast: Ruth Cracknell, Toni Collette, Barry Otto, John Flaus, Iris Shand, Susie Lindeman, Anne Louise Lambert Director: Jerzy Domaradzki Producer: Marian MacGowan Screenplay: Steve Wright based on the book by Kate Grenville Cinematography: Slavomir Idziak
Earlier this half of the century in Sydney, Australia, there was an eccentric street person named Bea Miles who regaled passersby with rousing renditions of Shakespearean monologues. Over the years, Miles became something of a local legend and cult figure, and the contributions she received for her "performances" allowed her to eke out a meager existence. In 1984, author Kate Grenville published a book called LILIAN'S STORY, which told a fictionalized account of Miles' life. Although the names and details had been changed, much of what made Miles special remained. Now, a dozen years later, that book has been transformed into a motion picture, featuring several well-known Australian actors.
Consider it SHINE 2, if you want, although it was developed at the same time (not after) its higher-profile counterpart. Those who appreciated Scott Hicks' Oscar-nominated chronicle of David Helfgott's life will certainly find something to like about LILIAN'S STORY. If you were among SHINE's detractors, however, you would do best to stay away from this movie. Although it contains many of the same themes, ideas, and narrative points, it isn't as well-acted, well-directed, or well- written. LILIAN'S STORY is a competent, occasionally-moving tale, but it's not on SHINE's level.
LILIAN'S STORY opens in modern-day Sydney, where sixty year old Lilian Singer (Australian stage luminary Ruth Cracknell) is being released from an asylum after a forty year stay. She returns to the house inhabited by her brother and father (both played by Barry Otto), but is unable to stay in a place that holds such horrible memories. Through flashbacks, we see glimpses of how she became the person that she is -- the abuse, both physical and psychological, that she suffered as a young woman (Toni Collette) at the hands of her father. Lilian decides to live on the street, reciting Shakespeare on corners for handouts. Eventually, she meets up with an old friend (John Flaus), who was once the love of her life. Now a burned-out, homeless drunk, he invites Lilian to share his meager shelter for as long as she wants to stay with him.
Recently, I've seen a number of Australian exports dealing with mental illness -- LILIAN'S STORY makes it four in less than six months (in addition to the aforementioned SHINE, the others are ANGEL BABY and COSI). This is not the best, nor is it the worst, but it lacks the freshness and urgency associated with SHINE and ANGEL BABY. The point- of-view is somewhat different -- director Jerzy Domaradzki, Polish born and schooled, views this story from an outsider's perspective, which places a little distance between the audience and the subject. His cinematographer is former Kieslowski collaborator Slavomir Idziak (hence, the amber filters during the flashback sequences).
While LILIAN'S STORY is competently acted, every performer is a notch below their counterpart in SHINE. Ruth Cracknell is wonderful, but she's not quite on the same level as Geoffrey Rush. Toni Collette's bold performance is a shade less dynamic than Noah Taylor's. And Barry Otto's controlling father falls short of Armin Mueller-Stahl's similar part. What's more, LILIAN'S STORY doesn't envelop the viewer in the same way that SHINE did. We never become as intimately connected with Lilian as we did with Helfgott. There's an intensity missing here that SHINE possessed.
That said, however, LILIAN'S STORY is still a fine motion picture, and it has the guts and determination to visit unpleasant subjects that many movies still regard as taboo. LILIAN'S STORY tells of an unorthodox triumph over adversity, but there are no bells and whistles indicating "feel good ending" at the conclusion -- it's a little more subtle than that. Two comments made by Lilian sum up the movie. The first, "At least [my life] wasn't mediocre," illustrates Lilian's character and determination. The second, "Any tale is real if told well enough," is a fair statement to make about this motion picture.
- James Berardinelli e-mail<EMAIL_ADDRESS>ReelViews web site: http://www.cybernex.net/~berardin
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


| JobName | Started at | Queue | Worker | Arguments |
|---|---|---|---|---|
| {{runningJob.payload.class}} | {{runningJob.run_at | date:'medium'}} | {{runningJob.queue}} | {{runningJob.worker}} | {{runningJob.payload.args | json}} |
| JobName | Delayed at | Queue | Arguments |
|---|---|---|---|
| {{delayedJob.class}} | {{delayedJob.delayedAt*1000 | date:'medium'}} | {{delayedJob.queue}} | {{delayedJob.args | json}} |
| JobName | Failed at | Queue | Params | Error | Reenqueue |
|---|---|---|---|---|---|
| {{failedJob.payload.class}} | {{failedJob.failed_at}} | {{failedJob.queue}} | {{failedJob.payload.args | json}} |
{{failedJob.exception}} - {{failedJob.error}} |


MENU
WIFI HACKING BOX!
Scan Access Points
Beacon Attack
Network Monitor
Beacon Attack
Random
Custom
Time attack
SSID
Attack


Gardai are investigating a number of threats to kill made on social media over the past few days
by Fiona KellyGardai have said they are investigating a number of threats to kill and cause serious harm to persons made on social media over the past few days.
This morning, gardai conducted a number of planned searches in the Athlone area, searching for weapons which were displayed in these videos and media devices used in the commission of these crimes.
A number of electronic devices and weapons were seized during the searches.
Three men were arrested during the course of the searches.
 These males are currently being detained at Mullingar and Athlone Garda Station and are detained under Section 4 of the Criminal Justice Act 1984.
Gardai in Athlone are liaising with the PSNI in relation to the persons arrested and the social media videos as may be connected to a recent serious incident in Co Fermanagh, which is under investigation by the PSNI.


Hello! I am Jennifer Kong and I am studying Fine Arts and Human Computer Interaction at Carnegie Mellon University. As an artist and designer, I am focused on the storytelling behind every human experience. Every user has their own story and as a designer and artist, it is my job to weave their story into design.
When I’m not designing or making art, I enjoy dogspotting, looking for the perfect tonkatsu ramen, and cooking.
I am currently seeking full time opportunities after June 2020.
Feel free to reach out to me at jkong1@andrew.cmu.edu.


AWARENESS & EDUCATION
Topic
Sessions
Male
Female
TRAINING & CAPACITY BUILDING
Topic
Sessions
Male
Female


| Package | Description |
|---|---|
| algorithms.paths | |
| entities.paths |
| Modifier and Type | Method and Description |
|---|---|
private DP_Decision |
DP_Quick.get_next_iqs(DP_DecisionSet decision_set)
Implementation of the core method of IQS for incremental sorting.
|
| Modifier and Type | Method and Description |
|---|---|
List<DP_Decision> |
DP_Lazy.get_successors(DP_Decision dec) |
List<DP_Decision> |
DP_All.get_successors(DP_Decision dec) |
List<DP_Decision> |
DP_Quick.get_successors(DP_Decision dec) |
abstract List<DP_Decision> |
DP_Part.get_successors(DP_Decision dec)
Find the successors of a given decision among the other decisions in the
DP_DecisionSet . |
List<DP_Decision> |
DP_Eager.get_successors(DP_Decision dec) |
List<DP_Decision> |
DP_Solution_Iterator.get_successors(DP_Decision dec)
Find the successor of a given decision among the other decisions in the
DP_DecisionSet . |
List<DP_Decision> |
DP_Take2.get_successors(DP_Decision dec) |
private List<DP_Decision> |
DP_Take2.heapify(List<DP_Decision> a) |
| Modifier and Type | Method and Description |
|---|---|
List<DP_Decision> |
DP_Lazy.get_successors(DP_Decision dec) |
List<DP_Decision> |
DP_All.get_successors(DP_Decision dec) |
List<DP_Decision> |
DP_Quick.get_successors(DP_Decision dec) |
abstract List<DP_Decision> |
DP_Part.get_successors(DP_Decision dec)
Find the successors of a given decision among the other decisions in the
DP_DecisionSet . |
List<DP_Decision> |
DP_Eager.get_successors(DP_Decision dec) |
List<DP_Decision> |
DP_Solution_Iterator.get_successors(DP_Decision dec)
Find the successor of a given decision among the other decisions in the
DP_DecisionSet . |
List<DP_Decision> |
DP_Take2.get_successors(DP_Decision dec) |
| Modifier and Type | Method and Description |
|---|---|
private List<DP_Decision> |
DP_Take2.heapify(List<DP_Decision> a) |
private int |
DP_Quick.partition(List<DP_Decision> a,
int pivot_idx,
int low,
int high) |
| Modifier and Type | Field and Description |
|---|---|
DP_Decision |
DP_DecisionSet.best_decision
The decision that can lead to the optimal cost.
|
DP_Decision |
DP_Suffix_Solution.first_decision
The first decision contained in the solution.
|
DP_Decision |
DP_Prefix_Solution.latest_decision
The last decision contained in the solution.
|
| Modifier and Type | Field and Description |
|---|---|
ArrayList<DP_Decision> |
DP_DecisionSet.list_of_decisions
The decisions stored as a list.
|
PriorityQueue<DP_Decision> |
DP_DecisionSet.pq_lazysort
A priority queue that is used to incrementally sort the set of decisions by
DP_Lazy . |
ArrayList<DP_Decision> |
DP_Decision.successors
The successors are decisions in the same stage and from the same parent.
|
| Modifier and Type | Method and Description |
|---|---|
DP_Decision |
DP_State_Node.get_best_decision() |
DP_Decision |
DP_Suffix_Solution.get_first_decision() |
DP_Decision |
DP_Prefix_Solution.get_latest_decision() |
| Modifier and Type | Method and Description |
|---|---|
ArrayList<DP_Decision> |
DP_State_Node.get_decisions() |
| Modifier and Type | Method and Description |
|---|---|
void |
DP_DecisionSet.add(DP_Decision new_decision) |
int |
DP_Decision.compareTo(DP_Decision other)
Two decisions from the same parent state are compared according to the minimum achievable cost
starting from the parent and (as a first step) taking each decision.
|
DP_Prefix_Solution |
DP_Prefix_Solution.create_successor(DP_Decision alt_decision)
A successor solution has the same length but replaces the last decision with an alternative
|
| Constructor and Description |
|---|
DP_Prefix_Solution(DP_Decision first_decision)
Constructor for initializing a prefix solution of length 1.
|
DP_Prefix_Solution(DP_Prefix_Solution prefix,
DP_Decision new_decision)
Constructor that instantiates a prefix solution of length greater than 1
from another prefix solution concatenated with one more decision.
|
DP_Suffix_Solution(DP_Decision dec)
Constructor for initializing a suffix solution of length 1.
|
DP_Suffix_Solution(DP_Suffix_Solution suffix,
DP_Decision new_decision)
Instantiates a suffix solution of length greater than 1
from another suffix solution concatenated with one more decision.
|
Copyright © 2021. All rights reserved.


B
ERKSHIRE
H
ATHAWAY
INC.
355 Farnam Street Suite 1440
Omaha, NE 68131
Official Home Page
A Message From Warren E. Buffet
News Releases
Updated July 1, 2014
Annual & Interim Reports
Updated May 2, 2014
Warren Buffet's Letters to Berkshire Shareholders
Updated March 1, 2014
Link to SEC Filings
Charlie Munger's Letters to Wesco Shareholders
Corporate Goverance
Annual Meeting Information
Links to Berkshire Subsidiary Companies
Comparative Rights and Relative Prices of Class A and B Stock
Updated January 20, 2010
Owner's Manual
To view the Owner's Manual you may use Adobe Acrobat® Reader® software. Click
here
to download. Updated March 1, 2014
Order Berkshire Activewear On-line
Letters from Warren E. Buffet Regarding Pledges to Make Gifts of Berkshire Stock
Updated August 30, 2012


PyKiln Status
State
Notifications
Speaker:
Test
RGB LED:
Test
PyKiln is not a commercial product, use at your own risk.