text:
Blogging about debates about theism, non-theism, creationism, evolutionism, etc. and so forth
Wednesday, April 7, 2010
Barr vs Behe at Wheaton College
This debate between two Christian biologists is nothing worth writing home about. Behe makes the argument of the
creationists cdesign proponentsists that if something is complex and functional and difficult to explain naturally that it is time to stop trying to find a natural explanation and start looking for a supernatural one. Barr, to his small credit, points out that this is a terrible idea and would have prevented all manner of scientific breakthroughs. No one, however, makes the case that methodological naturalism is a useful approach because metaphysical naturalism happens to be true, and thus the debate fails to get off the ground as a true clash of worldviews. Instead, what we have here is a debate between one Christian who argues that we should make the leap of faith to supernatural explanations as soon as we get stuck on something complex and functional, and another Christian (not even a biologist) who argues that we should make the leap of faith to supernatural explanations after doing a bit of science first. My advice is to take a pass on this giant mug of lukewarm weak tea.
No comments:
Subscribe to: Post Comments (Atom)


text:
This is the discussion forum for the blog "Getting Stronger". To return to the blog, go to: www.gettingstronger.org
My OD said he's 20/40, so should i get him a plus lenses =.5 or +1?
Should i get him a low minus lenses for tv? it seems that he has problem watching tv...any suggestion

subset: commoncrawl


text:
Strawberry picking in Japan
On March 11th we decided to go and pick some fresh strawberries with our friends in Japan.
It turned out mid-March is about the right time to go strawberry picking in Japan, also all sorts of strawberry dishes and candies start to appear everywhere.
Here we have just arrived to the "farm" and preparing to pay for the joy.
The cost is 1600 yen for 30 minutes of "all you can eat" picking per person.
The actual farm is just three (pretty long) hothouses in the middle of nowhere.
We've got this one all to ourselves ;)
First - explanations: Only pick strawberries that are all red, if the top part is still white, it has not ripened yet.
Strawberries were really sweet, and tasty. I had not such good ones for quite a while.
Before long 30 minutes were over, so the last glance at the place.
From there we went to Koyama - a small shopping district centered around chocolate factory in Sanda.
Preparation of something sweet, I guess.
Cake shop that we stood in a long line to get into.
Aside from cakes we also bought a pudding.
Very cute fireplace just outside of the cake shop.
Quiche with salad that had strawberry cause in it in a nearby restaurant.
From there we went to a sushi place.
There's not much to tell you about sushi except they had this KAMA TORO that was super awesome. At 500 yen per piece it almost rivaled Kobe beef to me.
After sushi we returned back to our hotel with the idea that we'll go to a nice onsen place the next day.
Interesting note - staircases sometimes have energy spent notes on them to encourage people to climb them more as a form of exercise, I guess.
We have arrived to onsen town Arima.
Locally famous rice cookies (senbei) made by street vendors.
A really old wooden siding we saw while walking around.
Finally onsen. This is kinsen stream - golden water.
There's also a ginsen stream that is 'silver water", that is in fact totally clear.
Water is mildly radioactive due to radon which locals believe is beneficial.
Somewhat unexpectedly this was totally outside, not quite the onsen idea I had in my mind.
Arima is also close to Sanda that also markets their beef (also in Hyogo prefecture, same as Kobe).
Statue celebrating visit of Japanese emperor to Arima long time ago.
Ksusha decided to get Strawberry tofu doughnut.
Final glance at Arima as we were preparing to depart.
Next we went to Kobe to get some Kobe beef for dinner. We chose a famous Moria restaurant this time.
For some odd reason, they have a lot of signs in Russian over there. We asked and they said the owner just likes the characters, but there is no other connection to Russia.
Additional oddity is that the name is actually misspelled in Russian too.
Preparations start with frying some garlic to make garlic chips.
We ordered a bit of sirloin and a bit of tenderloin.
Very nice dinner. I wish we could have such ones more frequently.
Since we visited a bit early fearing the crowds, we were the only guests at the restaurant ;)
And this is some sort of a traditional seasonal sweets that Ksusha had back at the hotel.
This concludes the two interesting days in Kansai region.


text:
We'd like to send congratulations to the winner of our first March drawing for downloading and running our Smartphone App!
Like our previous winner, she gets $20 and a Giant Microbe (she chose Mono).
If you would like a chance to win one of our bimonthly prizes, all you need to do is DOWNLOAD and run our Smartphone App. Also remember that we'll have a drawing at the end of the semester and award the winner $500!!! It's not too late to download the app and earn entries to win our end of semester prize!


text:
Third Grade Reading Comprehension Tests: Practice Exams
In the third grade, your child will likely be expected to take standardized reading tests, which usually consists of short passages followed by multiple-choice questions. Your child can prepare for reading comprehension tests by practicing general reading fluency and comprehension skills, in addition to completing test-specific practice. Read on to find out about a few resources that may be helpful.
Practice Reading Tests from EasyCBM.com
By answering multiple-choice questions about a variety of reading passages from easyCBM.com, your child may get the reading comprehension practice that he or she needs before a test. You can download third grade reading assessments from easyCBM.com after completing the free registration. The tests are based on reading assessment recommendations from the National Reading Panel and were developed by researchers from the University of Oregon.
ReadWriteThink's Reading Comprehension Practice
When preparing for comprehension tests, you can help your child by discussing the reading passages and showing him or her how to use the online comprehension tools from ReadWriteThink. This website offers a number of useful English/language arts learning resources, such as games, learning strategy guides, lesson plans that you can use at home, printouts and activities. The hands-on 'student interactives' from ReadWriteThink can be used as a solid learning tool before tests and throughout the school year. You'll need to make sure that you have a current version of Adobe Flash installed in order for these interactives to function.
Released Exams from the Texas Education Agency
You can probably find sample reading comprehension questions from your own state's board of education. However, standardized third grade reading tests are based on very similar core education standards from state to state, so your child can also study using Texas' released standardized tests, available from the Texas Education Agency's website. Every three years, the Texas Education Agency releases the Texas Assessment of Knowledge and Skills and answer keys. It also provides free downloadable study guides in English and Spanish.
Other Articles You May Be Interested In
Comprehension makes the difference between a passing and failing grade in middle school reading classes. Read on learn more about how to help your seventh or eighth grader improve his or her reading skills.
Reading discussions help children to develop literary skills and helps parents monitor a student's reading comprehension. This article examines the various questions parents can use to lead a reading discussion at home.
We Found 7 Tutors You Might Be Interested In
Huntington Learning
- What Huntington Learning offers:
- Online and in-center tutoring
- One on one tutoring
- Every Huntington tutor is certified and trained extensively on the most effective teaching methods
- What K12 offers:
- Online tutoring
- Has a strong and effective partnership with public and private schools
- AdvancED-accredited corporation meeting the highest standards of educational management
Kaplan Kids
- What Kaplan Kids offers:
- Online tutoring
- Customized learning plans
- Real-Time Progress Reports track your child's progress
- What Kumon offers:
- In-center tutoring
- Individualized programs for your child
- Helps your child develop the skills and study habits needed to improve their academic performance
Sylvan Learning
- What Sylvan Learning offers:
- Online and in-center tutoring
- Sylvan tutors are certified teachers who provide personalized instruction
- Regular assessment and progress reports
Tutor Doctor
- What Tutor Doctor offers:
- In-Home tutoring
- One on one attention by the tutor
- Develops personlized programs by working with your child's existing homework
- What TutorVista offers:
- Online tutoring
- Student works one-on-one with a professional tutor
- Using the virtual whiteboard workspace to share problems, solutions and explanations


text:
Develop Packages
In Chef Habitat the unit of automation is the application itself. This chapter includes content related specifically to the process and workflow of developing a plan that will instruct Chef Habitat in how to build, deploy, and manage your application.
Writing Plans
Artifacts are the cryptographically-signed tarballs that are uploaded, downloaded, unpacked, and installed in Chef Habitat. They are built from shell scripts known as plans, but may also include application lifecycle hooks and service configuration files that describe the behavior and configuration of a running service.
At the center of Chef Habitat packaging is the plan. This is a directory comprised of shell scripts and optional configuration files that define how you download, configure, make, install, and manage the lifecycle of the software in the artifact. More conceptual information on artifacts can be found in the Artifacts glossary topic.
As a way to start to understand plans, let's look at an example
plan.sh for sqlite:
Note: On Windows we would create a plan.ps1 file instead. All the variable names are the same but we use Powershell syntax so, for example,
pkg_deps=(core/glibc core/readline)becomes
$pkg_deps=@("core/glibc", "core/readline").
It has the name of the software, the version, where to download it, a checksum to verify the contents are what we expect, run dependencies on
core/glibc and
core/readline, build dependencies on
core/gcc, libraries files in
lib, header files in
include, and a binary file in
bin. Also, because it's a core plan, it has a description and upstream URL for the source project included.
Note: The
coreprefix is the origin of those dependencies. For more information, see Create an Origin
When you have finished creating your plan and call
build in Chef Habitat studio, the following occurs:
- The build script ensures that the private origin key is available to sign the artifact.
- If specified in
pkg_source, a compressed file containing the source code is downloaded.
- The checksum of that file, specified in
pkg_shasum, is validated.
- The source is extracted into a temporary cache.
- Unless overridden, the callback methods will build and install the binary or library via
make install, respectively for Linux based builds.
- Your package contents (binaries, runtime dependencies, libraries, assets, etc.) are then compressed into a tarball.
- The tarball is signed with your private origin key and given a
.hartfile extension.
After the build script completes, you can then upload your package to Chef Habitat Builder, or install and start your package locally.
Note: The plan.sh or plan.ps1 file is the only required file to create a package. Configuration files, runtime hooks, and other source files are optional.
Write Your First Plan
All plans must have a
plan.sh or
plan.ps1 at the root of the plan context. They may even include both if a package is targeting both Windows and Linux platforms. This file will be used by the
hab-plan-build command to build your package. To create a plan, do the following:
If you haven't done so already, download the
habCLI and install it per the instructions on the download page.
hab cli setupand follow the instructions in the setup script.
The easiest way to create a plan is to use the
hab plan initsubcommand. This subcommand will create a directory, known as the plan context, that contains your plan file and any runtime hooks and/or templated configuration data.
To use
hab plan initas part of your project repo, navigate to the root of your project repo and run
hab plan init. It will create a new
habitatsub-directory with a plan.sh (or plan.ps1 on Windows) based on the name of the parent directory, and include a
default.tomlfile as well as
hooksdirectories for you to populate as needed. For example:
will result in a new
habitatdirectory located at
/path/to/<reponame>/habitat. A plan file will be created and the
pkg_namevariable will be set to <reponame>. Also, any environment variables that you have previously set (such as
HAB_ORIGIN) will be used to populate the respective
If you want to auto-populate more of the
pkg_*variables, you also have the option of setting them when calling
hab plan init, as shown in the following example:
See hab plan init for more information on how to use this subcommand.
Now that you have stubbed out your plan file in your plan context, open it and begin modifying it to suit your needs.
When writing a plan, it's important to understand that you are defining both how the package is built and the actions Chef Habitat will take when the Supervisor starts and manages the child processes in the package. The following sections explain what you need to do for each phase.
Writing a Plan for Multiple Platform Targets
You may want to create a plan for an application that can run on multiple platform targets. You can create target specific folders beneath either the root of your project or a top level
habitat folder. Then save the plan, hooks, and configuration templates specific to a single platform all inside of that target specific folder.
For example, an application targeting linux, Linux kernel 2, and Windows may have the following structure:
The build script will look for the base of your plan in the following locations:
If it finds a plan both inside as well as outside of a target folder, the target specific plan will be used as long as that is the target currently being built. However it is strongly recommended that you do not have plans both inside and outside of a target folder. We currently allow this only for backwards compatibility with some existing plans but plan to eventually fail builds where a plan exists in both places. The best practice when you need multiple plans for different targets is to put each plan in its own target folder.
Of course if your plan does not include hooks or configuration templates and just requires a plan file, you may choose this simpler structure:
Note: It is recommended to place all plan files inside of a
habitatparent folder in order to allow for clean separation between your application source code and habitat specific files. However, if you maintain a separate repository solely for the purpose of storing habitat plans, then the use of a
habitatfolder may not be necessary.
On Windows, only a
plan.ps1 will be used and a
plan.sh will only be used on Linux or Linux kernel 2. So if your application requires different plans for Linux and Linux Kernel 2, even without hooks and configuration templates, you will need to use target folders for each platform.
Buildtime Workflow
For buildtime installation and configuration, workflow steps need to be included in the plan file to define how you will install your application source files into a package. Before writing your plan, you should know and understand how your application binaries are currently built, installed, what their dependencies are, and where your application or software library expects to find those dependencies.
The main steps in the buildtime workflow are the following:
- Create your fully-qualified package identifier.
- Add licensing and contact information.
- Download and unpack your source files.
- Define your dependencies.
- (Optional) Override any default build phases you need to using callbacks.
The following sections describe each of these steps in more detail.
Create your Package Identifier
The origin is a place for you to set default privacy rules, store your packages, and collaborate with teammates. For example, the "core" origin is where the core maintainers of Chef Habitat share packages that are foundational to building other packages. If you would like to browse them, they are located in the core-plans repo, and on Chef Habitat Builder's Core Origin.
Creating artifacts for a specific origin requires that you have access to the that origin's private key. The private origin key will be used to sign the artifact when it is built by the
hab plan build command. Origin keys are kept in
$HOME/.hab/cache/keys on the host machine when running
hab as a non-root user and
/hab/cache/keys when running as root (including in the studio). For more information on origin keys, see Keys.
The next important part of your package identifier is the name of the package. Standard naming convention is to base the name of the package off of the name of the source or project you download and install into the package.
Add Licensing and Contact Information
You should enter your contact information in your plan.
Most importantly, you should update the
pkg_license value to indicate the type of license (or licenses) that your source files are licensed under. Valid license types can be found at https://spdx.org/licenses/. You can include multiple licenses as an array.
Note: Because all arrays in the pkg_* settings are shell arrays, they are whitespace delimited.
Download and Unpack Your Source Files
Add in the
pkg_source value that points to where your source files are located at. Any
wget url will work; however, unless you're downloading a tarball from a public endpoint, you may need to modify how you download your source files and where in your plan.sh you perform the download operation.
Chef Habitat supports retrieving source files from GitHub. When cloning from GitHub, it is recommended to use https URIs because they are proxy friendly, whereas
git@github or
git:// are not. To download the source from a GitHub repository, implement
do_download() in your plan.sh (or
Invoke-Download in a plan.ps1) and add a reference the
core/git package as a build dependency. Because Chef Habitat does not contain a system-wide CA cert bundle, you must use the
core/cacerts package and export the
GIT_SSL_CAINFO environment variable to point the
core/cacerts package on Linux. Here's an example of how to do this in the
do_download() callback.
The plan.ps1 equivalent would be:
After you have either specified your source in
pkg_source, or overridden the do_download() or Invoke-Download callback, create a sha256 checksum for your source archive and enter it as the
pkg_shasum value. The build script will verify this after it has downloaded the archive.
Note: If your computed value does not match the value calculated by the
hab-plan-buildscript, an error with the expected value will be returned when you execute your plan.
If your package does not download any application or service source files, then you will need to override the do_download(), do_verify(), and do_unpack() callbacks. See Callbacks for more details.
Define Your Dependencies
Applications have two types of dependencies: buildtime and runtime.
Declare any build dependencies in
pkg_build_deps and any run dependencies in
pkg_deps. You can include version and release information when declaring dependencies if your application is bound to a particular version.
The package
core/glibc is typically listed as a run dependency and
core/coreutils as a build dependency, however, you should not take any inference from this. There are no standard dependencies that every package must have. For example, the mytutorialapp package only includes the
core/node as a run dependency. You should include dependencies that would natively be part of the build or runtime dependencies your application or service would normally depend on.
There is a third type of dependencies, transitive dependencies, that are the run dependencies of either the build or run dependencies listed in your plan. You do not need to explicitly declare transitive dependencies, but they are included in the list of files when your package is built. See Package contents for more information.
Override Build Phase Defaults with Callbacks
As shown in an example above, there are occasions when you want to override the default behavior of the hab-plan-build script. The Plan syntax guide lists the default implementations for build phase callbacks, but if you need to reference specific packages in the process of building your applications or services, then you need to override the default implementations as in the example below.
In this example, the
core/httpd plan references several other core packages through the use of the
pkg_path_for function before
make is called. You can use a similar pattern if you need reference a binary or library when building your source files.
Or consider this override from a plan.ps1:
Here the plan is building an application written in Rust. So it overrides
Invoke-Build and uses the
cargo utility included in its buildtime dependency on
Note: Powershell plan function names differ from their Bash counterparts in that they use the
verbinstead of the
When overriding any callbacks, you may use any of the variables, settings, or functions in the Plan syntax guide, except for the runtime template data. Those can only be used in Application Lifecycle hooks once a Chef Habitat service is running.
Using Origin Secrets in Plans
One way of using secrets in plan files is to call on origin secrets saved in Chef Habitat Builder. You can use origin secrets in plan files as an environment variables and Chef Habitat Builder will supply the decrypted value during the build job.
In the following example, the hab plan installs the AWS CLI provided by the
core/awscli package and uses it to download a file from a private Amazon S3 bucket, for which it needs the origin secrets named
AWS_ACCESS_KEY_ID and
This plan allows the
aws binary to read the origin secrets as environment variables at build time:
Runtime Workflow
Similar to defining the setup and installation experience at buildtime, behavior for your application or service needs to be defined for the Supervisor. This is done at runtime through Application lifecycle hooks. See Application Lifecycle hooks for more information and examples.
If you only need to start the application or service when the Chef Habitat service starts, you can instead use the
pkg_svc_run setting and specify the command as a string. When your package is created, a basic run hook will be created by Chef Habitat.
You can use any of the runtime configuration settings, either defined by you in your config file, or defined by Chef Habitat.
Once you are done writing your plan, use the studio to build your package.
Related Resources
- Write plans: Describes what a plan is and how to create one.
- Add configuration to plans: Learn how to make your running service configurable by templatizing configuration files in your plan.
- Binary-only packages: Learn how to create packages from software that comes only in binary form, like off-the-shelf or legacy programs.
You may also find the plan syntax guide useful. It lists the settings, variables, and functions that you can use when creating your plan.
Configuration Templates
Chef Habitat allows you to templatize your application's native configuration files using Handlebars syntax. The following sections describe how to create tunable configuration elements for your application or service.
Template variables, also referred to as tags, are indicated by double curly braces:
{{a_variable}}. In Chef Habitat, tunable config elements are prefixed with
cfg. to indicate that the value is user-tunable.
Here's an example of how to make a configuration element user-tunable. Assume that we have a native configuration file named
service.conf. In
service.conf, the following configuration element is defined:
We can make this user tunable like this:
Chef Habitat can read values that it will use to render the templatized config files in three ways:
default.toml- Each plan includes a
default.tomlfile that specifies the default values to use in the absence of any user provided inputs. These files are written in TOML, a simple config format.
- At runtime - Users can alter config at runtime using
hab config apply. The input for this command also uses the TOML format.
- Environment variable - At start up, tunable config values can be passed to Chef Habitat using environment variables; this most over-riding way of setting these but require you to restart the supervisor to change them.
Here's what we'd add to our project's
default.toml file to provide a default value for the
recv_buffer tunable:
All templates located in a package's
config folder are rendered to a config directory,
/hab/svc/<pkg_name>/config, for the running service. The templates are re-written whenever configuration values change.
The path to this directory is available at build time in the plan as the variable
$pkg_svc_config_path and available at runtime in templates and hooks as
All templates located in a package's
config_install folder are rendered to a config_install directory,
/hab/svc/<pkg_name>/config_install. These templates are only accessible to the execution of an
install hook and any changes to the values referenced by these templates at runtime will not result in re-rendering the template.
The path to this directory is available at build time in the plan as the variable
$pkg_svc_config_install_path and available at runtime in templates and
install hooks as
Chef Habitat not only allows you to use Handlebars-based tunables in your plan, but you can also use both built-in Handlebars helpers as well as Chef Habitat-specific helpers to define your configuration logic. See Reference for more information.
Runtime Binds and Exports
Runtime binding in Chef Habitat refers to the ability for one service group to connect to another, forming a producer-consumer relationship where the consumer service can use the producer service's current configuration in order to configure itself at runtime. When the producer's configuration change, the consumer is notified and can reconfigure itself as needed.
With runtime binding, a consumer service can use a "binding name" of their choosing in their configuration and lifecycle hook templates as a kind of handle to refer to the configuration values they need from the producer service. This name isn't inherently tied to any particular package or service group name. Instead, when the service is run, users associate a service group with that binding name, which gives Chef Habitat all the information it needs to wire the producer and consumer services together.
Let's look at how we set up this relationship in detail.
Defining the Producer Contract
A producer service defines its contract by "exporting" a subset of its runtime configuration. This is done by defining values in the
pkg_exports associative array defined in your package's
plan.sh. For example, a database server named
amnesia might define the following exports:
Note that Powershell plans use hashtables where Bash plans use associative arrays. A
plan.ps1 would declare its exports as:
This will export the runtime values of its
network.port and
network.ssl.port configuration entries publicly as
port and
ssl-port, respectively. All configuration entries in
pkg_exports must have a default value in
default.toml, but the actual exported values will change at runtime to reflect the producer's current configuration. When values change (such as when an operator uses
hab config apply), the consumer service will be notified that its producer service configuration has changed. We'll see how to use this on the consumer in the sections below.
Producer services export only the subset of their configuration that is defined through
pkg_exports and not the entire thing. Consumer services see only what the producer service exports, and nothing more. This is important, because it means that configuration that must remain secret--such as passwords--are not shared unless they are explicitly defined in
Additionally, the internal structure of the producer's configuration is independent of the exported interface it presents. In our example,
ssl-port originally comes from a deeply-nested
network.ssl.port value. However, the exported interface is flat, effectively a non-nested set of key-value pairs.
Defining the Consumer Contract
The consumer service defines a "binding name" as a handle to refer to a service group from which it receives configuration data. However, it must do more than just name the bind, it must also state the configuration values it expects from the service group. Chef Habitat will make sure that whatever service group is bound actually exports the expected values to the consumer service.
As an example, let's say we have an application server, called
session-server, that needs to connect to a database service, and needs both a "port" and an "ssl-port" in order to make that connection. We can describe this relationship in our
plan.sh file like so:
pkg_binds is an associative array. The key ("database") is the binding name, while the value ("port ssl-port") is a space-delimited list of the exported configuration the binding requires. A consumer can specify multiple binds; each would be an individual entry in this associative array. Judging from this, the producer we described above would be a good candidate for this application server to bind to, because it exports both a "port" and an "ssl-port".
A bound service group may export additional values, but they cannot export less and still satisfy the contract.
Chef Habitat only matches services up at the syntactic, not semantic, level of this contract. If you bind to a service that exports a "port", Chef Habitat only knows that the service exports something called "port"; it could be the port for a PostgreSQL database, or it could be the port of an application server. You will need to ensure that you connect the correct services together; Chef Habitat's binds provide the means by which you express these relationships. You are, however, free to create bind names and export names that are meaningful for you.
The Difference Between pkg_binds and pkg_binds_optional
In addition to the
pkg_binds array, Plan authors may also specify
pkg_binds_optional. It has exactly the same structure as
pkg_binds, but, as the name implies, these bindings are optional; however, it is worth examining exactly what is meant by "optional" in this case.
In order to load a service into the Supervisor, each bind defined in
pkg_binds must be mapped to a service group; if any of these binds are not mapped, then the Supervisor will refuse to load the service.
Binds defined in
pkg_binds_optional, on the other hand, may be mapped when loading a service. If a service group mapping is not defined at load time, the Supervisor will load the service without question. As an extreme example, a service could have no
pkg_binds entries, and five
pkg_binds_optional entries; such a service could be loaded with no binds mapped, one bind mapped, all the way to mapping all five binds.
There are several scenarios where optional binds may be useful:
A service may have some default functionality which may be overridden at load-time by mapping an optional binding. Perhaps you have some kind of artifact repository service that, in the absence of a "remote-store" bind stores data on the local filesystem. However, if
remote-storeis bound to an appropriate S3 API-compatible service, such as Minio, it could modify its behavior to store data remotely.
A service can be optionally bind to a service to unlock additional features. For example, say you have an application that may run with or without a caching layer. You can model this using an optional bind named (say), "cache". If you wish to run without the caching functionality enabled, you can start the service without specifying a service group mapping for the "cache" bind. Since the bind is optional, it is not needed for Chef Habitat to run your service. However, if you do wish to run with the caching enabled, you can specify a service group mapping, e.g.
hab svc load acme/my-app --bind=cache:redis.prod. In this scenario, your service's configuration can pull configuration values from the
redis.prodservice group, enabling it to use Redis as a caching layer.
- A service may can optionally bind one of several services; if bind "X" is mapped, operate this way; if "Y" is mapped, operate that way. An application that could use either a Redis backend or a PostgreSQL backend, depending on the deployment scenario, could declare optional "redis" and "postgresql" bindings, and pick which one to map at service load-time. If this is your use case, Chef Habitat does not have a way to encode the fact that "one and only one of these optional bindings should be mapped", so you will have to manage that on your own.
Service Start-up Behavior
Prior to Chef Habitat 0.56.0, if the service group that you bound to was not present in the Supervisor network census, or had no live members, your service would not start until the group was present with live members. While this can be desirable behavior in some cases, as with running certain legacy applications, it is not always desirable, particularly for modern microservice applications, which should be able to gracefully cope with the absence of their networked dependencies.
With 0.56.0, however, this behavior can be modified using the new runtime service option
--binding-mode. By setting
--binding-mode=relaxed when loading a service, that service can start immediately, whether there are any members of a bound service group present or not. (Setting
--binding-mode=strict will give you the previous, start-only-after-all-bound-groups-are-present behavior. This is also the current default, though
relaxed will be the eventual default for Chef Habitat 1.0.0.). Such a service should have configuration and lifecycle hook templates written in such a way that the service can remain operational (though perhaps with reduced functionality) when there are no live members of a bound service group present in the network census.
The Difference Between Required Binds, Optional Binds, and Binding Mode
While there is a bit of overlap in these concepts, they are distinct. It's best to think of required and optional binds as defining "how applications can be wired together" (specifically, which "wires" must be connected in order to provide the minimal amount of information needed to run a service). Binding mode, on the other hand, defines how the application's start-up behavior is affected the presence or absence of its networked dependencies.
Another useful thing to keep in mind when thinking about required and optional binds is that service group mappings currently cannot be dynamically changed at runtime. They can only be changed by stopping a service, reloading the service with a new set of options, and then starting it up again. This constraint (which may change in future versions of Chef Habitat) may help guide your choice between what should be a required bind, and what should be optional, particularly when using the relaxed binding mode.
Using Runtime Binds with Consumer Services
Once you've defined both ends of the contract, you can leverage the bind in any of your package's hooks or configuration files. Given the two example services above, a section of a configuration file for
session-server might look like this:
bind.<BINDING_NAME> will be "truthy" (and can thus be used in boolean expressions) only if the bind has been satisfied, and
bind.<BINDING_NAME>.members will be an array of only active members.
(Prior to Chef Habitat 0.56.0,
bind.<BINDING_NAME> was always present, and
bind.<BINDING_NAME>.members had all members, even ones that had left the Supervisor network long ago. This necessitated using the
eachAlive helper function, instead of just
Starting a Consumer Service
Since your application server defined
database as a required bind, you'll need to provide the name of a service group running a package which fulfills the contract using the
--bind parameter to the Supervisor. For example, running the following:
would create a bind aliasing
database to the
amnesia service in the
default service group.
The service group passed to
--bind database:{service}.{group} doesn't need to be the service
amnesia. This bind can be any service as long as they export a configuration key for
port and
You can declare bindings to multiple service groups in your templates by using the
--bind option multiple times on the command line. Your service will not start if your package has declared a required bind and a value for it was not specified by
Plan Builds
Packages need to be signed with a private origin key at buildtime. Generate an origin key pair manually by running the following command on your host machine:
hab-origin subcommand will place the origin key files, originname-timestamp.sig.key (the private key) and originname-timestamp.pub files (the public key), in the
$HOME/.hab/cache/keys directory. If you're creating origin keys in the Studio container, or you are running as root on a Linux machine, your keys will be stored in
Because the private key is used to sign your artifact, it should not be shared freely; however, if anyone wants to download and use your artifact, then they must have your public key (.pub) installed in their local
$HOME/.hab/cache/keys or
/hab/cache/keys directory. If the origin's public key is not present, Chef Habitat attempts to download it from the Builder endpoint specified by the
--url argument (https://bldr.habitat.sh by default) to
hab pkg install.
Passing Origin Keys into the Studio
The Habitat Studio is a self-contained and minimal environment, which means that you'll need to share your private origin keys with the Studio to sign artifacts. You can do this in three ways:
HAB_ORIGINto the name of the origin you intend to use before entering the Studio:
This approach overrides the
HAB_ORIGINenvironment variable and imports your public and private origin keys into the Studio environment. It also overrides any
pkg_originvalues in the packages that you build. This is useful because you can use it to build your own artifact, as well as to build your own artifacts from other packages' source code, for example,
HAB_ORIGIN_KEYSto the names of your origins. If you're using more than one origin, separate them with commas:
This imports the private origin keys, which must exactly match the origin names for the plans you intend to build.
Use the
-kflag (short for "keys") which accepts one or more key names separated by commas with:
This imports the private origin keys, which must exactly match the origin names for the plans you intend to build.
After you create or receive your private origin key, you can start up the Studio and build your artifact.
Interactive Build
Any build that you perform from a Chef Habitat Studio is an interactive build. Studio interactive builds allow you to examine the build environment before, during, and after the build.
The directory where your plan is located is known as the plan context.
- Change to the parent directory of the plan context.
Create and enter a new Chef Habitat Studio. If you have defined an origin and origin key during
hab cli setupor by explicitly setting the
HAB_ORIGIN_KEYSenvironment variables, then type the following:
The directory you were in is now mounted as
/srcinside the Studio. By default, a Supervisor runs in the background for iterative testing. You can see the streaming output by running
sup-log. Type
Ctrl-Cto exit the streaming output and
sup-termto terminate the background Supervisor. If you terminate the background Supervisor, then running
sup-runwill restart it along with every service that was previously loaded. You have to explicitly run
hab svc unload origin/packageto remove a package from the "loaded" list.
Enter the following command to create the package.
If the package builds successfully, it is placed into a
resultsdirectory at the same level as your plan.
Managing the Studio Type (Docker/Linux/Windows)
Depending on the platform of your host and your Docker configuration, the behavior of
hab studio enter may vary. Here is the default behavior listed by host platform:
- Linux - A local chrooted Linux Studio. You can force a Docker based studio by adding the
-Dflag to the
hab studio entercommand.
- Mac - A Docker container based Linux Studio
- Windows - A local Windows studio. You can force a Docker based studio by adding the
-Dflag to the
hab studio entercommand. The platform of the spawned container depends on the mode your Docker service is running, which can be toggled between Linux Containers and Windows Containers. Make sure your Docker service is running in the correct mode for the kind of studio you wish to enter.
Note: For more details related to Windows containers see Running Chef Habitat Windows Containers.
Building Dependent Plans in the Studio
Writing plans for multiple packages that are dependent on each other can prove cumbersome when using multiple studios, as you need update dependencies frequently. On the other hand, using a single studio allows you to quickly test your changes by using locally built packages. To do so, you should use a folder structure like this:
This way, you can
hab studio enter in
projects/. If
project-b depends on
project-a, you can call
build project-a && build project-b for example.
Non-interactive Build
A non-interactive build is one in which Chef Habitat creates a Studio for you, builds the package inside it, and then destroys the Studio, leaving the resulting
.hart on your computer. Use a non-interactive build when you are sure the build will succeed, or in conjunction with a continuous integration system.
- Change to the parent directory of the plan context.
Build the artifact in an unattended fashion, passing the name of the origin key to the command.
Similar to the
hab studio entercommand above, the type of studio where the build runs is determined by your host platform and
hab pkg buildtakes the same
-Dflag to force a Docker environment if desired.
The resulting artifact is inside a directory called
results, along with any build logs and a build report (
last_build.env) that includes machine-parsable metadata about the build.
By default, the Studio is reset to a clean state after the package is built; however, if you are using the Linux version of
hab, you can reuse a previous Studio when building your package by specifying the
-R option when calling the
hab pkg build subcommand.
For information on the contents of an installed package, see Package contents.
Troubleshooting Builds
Bash Plans:
While working on plans, you may wish to stop the build and inspect the environment at any point during a build phase (e.g. download, build, unpack, etc.). In Bash-based plans, Chef Habitat provides an
attach function for use in your plan.sh that functions like a debugging breakpoint and provides an easy REPL at that point. For PowerShell-based plans, you can use the PowerShell built-in
Set-PSBreakpoint cmdlet prior to running your build.
To use
attach, insert it into your plan at the point where you would like to use it, e.g.
Now, perform a build -- we recommend using an interactive studio so you do not need to set up the environment from scratch for every build.
The build system will proceed until the point where the
attach function is invoked, and then drop you into a limited shell:
You can use basic Linux commands like
ls in this environment. You can also use the
help command the Chef Habitat build system provides in this context to see what other functions can help you debug the plan.
quit when you are done with the debugger, and the remainder of the build will continue. If you wish to abort the build entirely, type
PowerShell Plans:
While there is no
attach function exposed in a
plan.ps1 file, one can use the native Powershell cmdlet
Set-PSBreakpoint to access virtually the same functionality. Instead of adding
attach to your
Invoke-Build function, enter the following from inside your studio shell:
Now upon running
build you should enter an interactive prompt inside the context of the Invoke-Build function:
You can now call Powershell commands to inspect variables (like
Get-ChildItem variable:\) or files to debug your build.
Package Export Formats
You can export packages into several different external, immutable runtime formats. This topic will be updated as more formats are supported in the future. Currently there are exports for: docker, mesos, tar, and cloudfoundry.
The command to export a package is
hab pkg export <FORMAT> <PKG_IDENT>. See the Chef Habitat CLI Reference Guide for more CLI information.
Note If you specify an
origin/packageidentifier, such as
core/postgresql, the Chef Habitat CLI will check Builder for the latest stable version of the package and export that.
If you wish to export a package that is not on Builder, create a Chef Habitat artifact by running the
buildcommand, then point
hab pkgto the
.hartfile within the
Read on for more detailed instructions.
Exporting to Docker
You can create a Docker container image for any package by performing the following steps:
Ensure you have a Docker daemon running on your host system. On Linux, the exporter shares the Docker socket (
unix:///var/run/docker.sock) into the studio.
Create an interactive studio with the
hab studio entercommand.
Build the Chef Habitat package from which you want to create a Docker container image and then run the Docker exporter on the package.
Note The command above is for local testing only. If you have uploaded your package to Builder, you can export it by calling
hab pkg export docker origin/package. The default is to use the latest stable release; however, you can override that by specifying a different channel in an optional flag.
Note On Linux, exporting your Chef Habitat artifact to a Docker image requires the Docker Engine supplied by Docker. Packages from distribution-specific or otherwise alternative providers are currently not supported.
Note In a Windows container studio, the
exportcommand will not be able to access the host docker engine. To export a Windows package or hart file built inside of a Windows container studio, first exit the studio and then export the
.hartfile in your local
You may now exit the studio. The new Docker image exists on your computer and can be examined with
docker imagesor run with
docker run.
Please note that when you run this docker container, you will need to pass the
HAB_LICENSEenvironment variable into the container in order to accept the Habitat license. If you don't, your container will abort at a license acceptance prompt. One way to do this would be
docker run --env HAB_LICENSE=accept-no-persist IMAGE. Alternatively, if you use a scheduler to run these docker containers, you should add that environment variable to your scheduler configuration.
Exporting to a Tarball
Enter the Chef Habitat studio by using
hab studio enter.
Install or build the Chef Habitat package from which you want to create a tarball, for example:
Run the tar exporter on the package.
If you receive an error, try running
Your package is now in a tar file that exists locally on your computer in the format
<ORIGIN>-<NAME>-<VERSION>-<TIMESTAMP>.tar.gzand can be deployed and run on a target machine.
If you wish to run this tar file on a remote machine (i.e. a virtual machine in a cloud environment), scp (or whatever transfer protocol you prefer) the file to whatever you wish to run it.
SSH into the virtual machine
Run these commands to set up the required user and group:
Next, unpack the tar file:
Now, start the Supervisor and load your service package using the
habbinary, which is included in the tar archive:
Exporting to Kubernetes
The Kubernetes exporter is an additional command line subcommand to the standard Chef Habitat CLI interface. It leverages the existing Docker image export functionality and, additionally, generates a Kubernetes manifest that can be deployed to a Kubernetes cluster running the Chef Habitat operator.
Create an interactive studio in any directory with the
hab studio entercommand.
Install or build the Chef Habitat package from which you want to create an application, for example:
Run the Kubernetes exporter on the package.
You can run
hab pkg export kubernetes --helpto see the full list of available options and general help.
The Kubernetes exporter outputs a Kubernetes manifest yaml file. You can redirect the output to a file like this:
To push the Docker image created by the Kubernetes exporter to Docker Hub or another container registry, use:
Add the HAB_LICENSE environment variable to the generated manifest YAML file. For example, add the environmental variable directly to the generated manifest:
You can run this manifest in your Kubernetes cluster with:
This will create a Kubernetes StatefulSet running your package. To access the pod running your package from the outside internet, you will need to add a Kubernetes service (i.e. a Kubernetes load balancer) with an external IP. Here is an example.
You can add this service to your Kubernetes cluster with:
Export to a Helm Chart
The Helm exporter is an additional command line subcommand to the standard Chef Habitat CLI interface. It is very similar to the Kubernetes exporter but it takes you even further. It also leverages the existing Docker image export functionality but unlike the Kubernetes exporter, instead of generating a Kubernetes manifest, it creates a distributable Helm chart directory. This chart directory can not only be deployed in your local Kubernetes cluster, but also easily packaged and distributed.
Additionally, the Kubernetes Chef Habitat operator is automatically added to the Helm chart as a dependency and hence installed automatically as part of the Chef Habitat Helm chart.
Create an interactive studio in any directory with the
hab studio entercommand.
Install or build the Chef Habitat package from which you want to create an application, for example:
Run the Helm exporter on the package.
You can run
hab pkg export helm --helpto see the full list of available options and general help.
More information on how to setup Helm and use of the Helm exporter can be found on the Chef blog.
Add the HAB_LICENSE environment variable to the generated chart, usually in the
Exporting to Apache Mesos and DC/OS
Create an interactive studio in any directory with the
hab studio entercommand.
Install or build the Chef Habitat package from which you want to create a Marathon application, for example:
Run the Mesos exporter on the package.
This will create a Mesos container-format tarball in the results directory, and also print the JSON needed to load the application into Marathon. Note that the tarball needs to be uploaded to a download location and the "uris" in the JSON need to be updated manually. This is an example of the output:
Note that the default resource allocation for the application is very small: 0.5 units of CPU, no disk, one instance, and 256MB of memory. To change these resource allocations, pass different values to the Mesos exporter as command line options (defaults are documented with
See the article Apaches Mesos and DC/OS for more information on getting your application running on Mesos.
Exporting to Cloud Foundry
Packages can be exported to run in a Cloud Foundry platform through the use of a Docker image that contains additional layers meant to handle mapping from the Cloud Foundry environment to a Chef Habitat default.toml file.
Setting up Docker Support in Cloud Foundry
If you have not done so already, you must enable Docker support for Cloud Foundry before you can upload your Cloud Foundry-specific Docker image.
To do so, make sure you have done the following:
- Log in as an Admin user.
- Enable Docker support on your Cloud Foundry deployment by enabling the
diego_dockerfeature flag.
Creating a Mapping File
The mapping file is a TOML file that can add Bash-interpolated variables and scripts. The Bash code will have access to:
- all environment variables
- the jq binary
- the helper methods listed below
Here's an example of a mapping TOML file named
The helper methods are designed to extract information from the standard Cloud Foundry environment variables VCAP_SERVICES and VCAP_APPLICATION.
service <service-name> <jq-expression>will extract the JSON associated with the given service-name from the
VCAP_SERVICESenvironment variable and apply the jq-expression to it.
application <jq-expression>will apply the jq-expression to the
VCAP_APPLICATIONenvironment variable
Exporting and Pushing to a Cloud Foundry Endpoint
Create a mapping.toml file using the format specified above and place that file in your local project repo.
Enter the Studio through
hab studio enter.
Install or build the package that you want to export.
Run the Cloud Foundry exporter on the package.
Note To generate this image, a base Docker image is also created. The Cloud Foundry version of the docker image will have
cf-as a prefix in the image tag.
(Optional) If you are creating a web app that binds to another Cloud Foundry service, such as ElephantSQL, you must have this service enabled in your deployment before running your app.
Upload your Docker image to a supported registry. Your Docker repository should be match the
origin/packageidentifier of your package.
After your Cloud Foundry Docker image is built, you can deploy it to a Cloud Foundry platform.
Your application will start after it has been successfully uploaded and deployed.


text:
Monday, January 18, 2010
Day off!!!
What a nice relaxing day today! The kids and I were out of school today for MLK Day! I think I could do this everyday, in fact there are times when I really miss being a SAHM. Honestly though, I couldn't ask for a better job. I love the people I work with, and my kids are there. What more could you ask for? Jolea, Luke, and I hung out at home all day today! I didn't even get out of my PJs until this afternoon. It was so nice to do nothing. The kids were busy all day with playing the playstation, making snowflakes, playing outside. Poor Brea had to get up and go to softball practice this morning at 10:00! Yes, it's almost that time again. We should have our first tournament sometime in March. She's moving up into the 12U age bracket this year. That means much more competition! She loves it though, and can't wait for games to start.
Posted by Christi Crow at 6:26 PM
1 comment:
- v said...
Sometimes I wish I can just stay home and watch tv. But there are always tons of work load at the office. Urgh!
I'm inviting you to join a worldwide giveaway on my blog. Pls do enter. TQ.
- January 19, 2010 at 7:32 PM
Subscribe to: Post Comments (Atom)


text:
This is a presentation of ideas of various thinkers who illuminated mankind with their power of thoughts. I selected a few but list is so long. So keep thinking and move towards the betterment of the society.
|Posted by Dr Desh Raj Sirswal on March 24, 2013 at 11:46 AM
|970 Views
Post a Comment
Oops, you forgot something.
The words you entered did not match the given text. Please try again.
0 Comments


text:
We had a concrete coring company at the church today to drill some holes through the second floor to the first so we could run some wires. They brought in the drill and made two 4 1/2" holes in Bob's office for our wiring. The guy that cut the holes gave me one of the cores he had taken out as a souvenir. On the way out of the Bob's office I showed it to Bob's secretary, Ralene, who informed me that she was a rock collector so I let her have the core from the floor for her collection. I collect books and movies at my house. What do you collect?
One Comment
aaronJanuary 28, 2008 at 9:39 pm
Jeremy thank you for the post on my site today (aaronhavens.com)!
I collect starbucks mugs


text:
Middle East Times
Robert Murray and David Kilgour
5 January 2009
Robert Murray is a Department of Political Science Doctoral Fellow at the University of Alberta, while David Kilgour is a former Canadian Secretary of State for Africa, Latin America, and the Asia-Pacific.
Recently there has been plenty of attention given to the issue of humanitarian crisis, intervention and the Responsibility to Protect (R2P) at the global level. The R2P, which was originally articulated in 2001 by a commission created and supported by the government of Canada, is designed to articulate and enforce what terms like sovereignty, human security and global responsibility actually mean and just how short the international community has fallen in its efforts to protect vulnerable populations worldwide. ()
The current situations in the Darfur province of Sudan, Burma, Zimbabwe, the Democratic Republic of Congo (DRC) and elsewhere effectively demonstrate the human insecurity which continues to plague international society. Canada has admonished these governments for their abuse of human rights, as has the United Nations. Each of these nations are in desperate need of global attention and perhaps even intervention according to the stipulations of the R2P, as included in the 2001 report and the 2005 U.N. document, yet the United Nations has elected instead to place its weight and limited financial resources behind regional organizations, like the African Union, or is sending diplomats to urge change, knowing that none will come.
From the knowledge that genocide and human rights abuses have occurred since 1945, and transpire to this present, there is a fact that is very clear the United Nations, and Canada, are not willing to make the normative shift necessary to operationalize the R2P and enforce human security. Invoking arguments about national and international obligations is not merely an ethical issue. Prof. Marco Sassoli and Dr. Siobhan Wills have pointed out that R2P represents a fundamental change from states choosing intervention, to states having the responsibility under international law to prevent egregious human rights violations. This legal argument emphasizes that R2P is intended to remind and encourage states to live up to their responsibilities rather than have the most powerful nations select when and where humanitarian law will be enforced.
It is difficult to argue against the need for normatively driven policy like R2P on the basis of protecting humanity, but why is it that we still have not seen a shift from nations like Canada or from the United Nations? A major concern that tends to be overlooked in these discussions is the threat to international order and the system of states posed by ethically responsible policies. ()
Finally enforcement of any such ethic is virtually impossible and undesirable due to the long-term implications of intervention and peacebuilding, evidenced by the increasing displeasure among Canadian politicians and citizens alike regarding the mission in Afghanistan. As a result of these factors, along with a number of others, the R2P has remained purely rhetorical in nature in favor of states basing their national security decisions upon traditional, power-based, concerns.
There is also need to consider what happens if R2P is never practiced. Ignatieff reminds us that the desire for humanitarian intervention still exists, but the resources needed for such missions have dissipated. When policies like the R2P get ignored, it is not a series of abstract political concerns which get forgotten; instead, we see the consequences of not acting on R2P in the daily statistics released which tell the sad story of death, injury and terror among populations from various regions across the world. ()
While the end of the Cold War may have brought with it a sense of idealism and opportunity in the humanitarian intervention debate, reality dictates that in order for states to maintain or increase their position in the international system, they cannot base their foreign policy strategies on concepts like human security. To do so would require a global consensus and international willingness to implement the normative elements of the R2P. At present, this is simply not the case and thus humanity will continue to suffer while the international community does nothing.
Source: http://www.metimes.com/Opinion/2009/01/05/global_responsibility_and_the_shortfall_of_international_policy/3479/


text:
Class instructor and Student. Photo by Brian Donnelly
CHS and its affiliate, University Research Co., LLC (URC), support countries in Africa, Asia, Eastern Europe, and Latin and North America to develop HIV programs that focus on creating better health outcomes for underserved and vulnerable populations. We apply methods that are locally adapted and country led to improve health care systems. Working with local health care providers, community leaders, patient advocates, and government officials, we identify gaps in service delivery processes, then develop and expand best practices to achieve sustainable improvements. Our programs are designed to advance the US Global Health Initiative objective of creating an AIDS-free generation and encompass the areas described below.
CHS's efforts to prevent HIV transmission include behavioral, medical, and environmental components: preventing transmission of infections, reducing risky behaviors, increasing counseling and testing, and fostering an environment free of discrimination and stigma. We assist health systems in strengthening the continuum of care for the prevention of mother-to-child transmission of HIV. That continuum is a comprehensive, interconnected array of services that includes prevention, treatment, and care for pregnant women and their infants during pregnancy, labor, delivery, and beyond.
We work closely with facilities to empower health care providers to provide high-quality, patient-specific, and comprehensive HIV counseling combined with accurate and reliable testing. We help health systems create and/or strengthen links between HIV and other health services for provider-initiated counseling and testing. We also work with community groups to reach individuals for voluntary counseling and testing.
Care and Treatment
CHS and URC work with treatment centers to reach, retain, and achieve better outcomes for people living with HIV. For example, URC's Strengthening Uganda's Systems for Treating AIDS Nationally (SUSTAIN) project supports 17 Ugandan hospitals that have provided comprehensive HIV services to more than 45,000 HIV-positive adults and children. The project helped the hospitals reach and retain in antiretroviral therapy (ART) nearly 34,000 patients and link them to preventive services. In the first quarter of 2012, the hospitals prescribed preventive medicines to 93% of these patients.
We also work to integrate HIV and TB prevention, counseling and testing, and care and treatment services. For example, within two years, URC's TB South Africa project increased TB screening among HIV-positive patients from about 75% to nearly 97%, and it increased HIV counseling and testing among TB patients from 76% to 92%.
Community-based Care and Support
CHS and URC engage communities to provide ongoing care and support for people living with HIV and AIDS. Through the HIV and AIDS Comprehensive Care Initiative (HACCI), we partnered with a local organization, Women for Women International, to reach women in rural Nigeria. HACCI discussed issues surrounding HIV/AIDS with groups of women who meet regularly through Women for Women and offered them voluntary counseling and testing. Three outreach campaigns reached more than 400 women in one community in Enugu.
Vulnerable Children and Families
Due to the long-term effects of HIV/AIDS and poverty, many countries, particularly those in Africa, are home to large numbers of children living either without the support of a caring family or in a family struggling to meet their children's needs. These children are considered vulnerable—they are more likely to be exposed to violence, exploitation, abuse, and neglect—and subsequently are at greater risk of poor health, including HIV/AIDS infection. URC is working to improve the well-being of vulnerable children and families.
Health Workforce Development
High-quality HIV services depend on a competent, efficient health workforce. However, countries with a high HIV burden often lack the health workforce required to provide basic health care. Many health workers experience tremendous strain due a multitude of factors that vary by contexts and include a high volume of patients and frustrations related to working in a weak health system. These factors can result in low morale, absenteeism, poor retention, and high staff turnover.
CHS evaluated a cost-effective method to build capacity among non-physician clinicians in sub-Saharan Africa for the treatment and prevention of infectious diseases, including HIV/AIDS. A comprehensive surveillance system of 36 health facilities and their patients measured the impact of a novel package of classroom training, distance learning, and on-site support services. The measurements examined changes in the levels of individual competence, facility performance, and health outcomes that resulted from implementing the package. The following figure shows the measurement of facilities' performance in providing triage for patients arriving with emergency care needs.
Laboratory Strengthening
In low-resource settings, inaccessible or unreliable lab support and infrastructure can diminish the quality of health services. CHS seeks to build and improve health systems' capacity to provide lab support through accreditation; facility renovations; and on-site training in bio-safety, documenting standard operating procedures, and equipment maintenance. We also facilitate in-country training for national and regional labs and lower level facilities.
Health Management Information Systems
Organized, well-maintained records are critical in providing efficient and informed care as well as for developing and testing changes to improve care. Our activities frequently begin with a focus on improving documentation and data collection practices.


text:
Hi there everyone,
I am new to this Forum so i will introduce myself. i am a 29 yr old guy from Glasgow, Scotland studying towards a BSc IT, i have a project which involves using an online html form with ASP to enter the results into a table in an sql database.
I have setup sql 2000 server with on my 2000 server machine and have asp pages working ok locally.
I have basic knowledge of asp/sql and a good knowledge of html. I have been looking around the web for samples to play around with to educate myself and cannot find any. Does anyone know of any sites for educational resources like this?


text:
Bank Transfer
Magento allows you to accept payment that is transferred from a customer's bank account and deposited into your merchant bank account.
Bank Transfer Payment
To configure bank transfer payments:
On the Admin sidebar, tap Stores. Then under Settings, choose Configuration.
In the panel on the left, under Sales, choose Payment Methods.
Expand the Bank Transfer Payment section. Then, do the following:
To activate bank transfers, set Enabled to "Yes."
Enter a Title to identify the Bank Transfer Payment method during checkout.
Set New Order Status to "Pending" until payment is authorized.
Set Payment from Applicable Countries to one of the following:
All Allowed Countries Customers from all countries specified in your store configuration can use this payment method. Specific Countries After choosing this option, the Payment from Specific Countries list appears. Hold down the Ctrl key and select each country in the list where customers can make purchases from your store.
Enter the Instructions your customers must follow to set up a bank transfer. Depending on the country where your bank is located and the requirements of the bank, you might need to include the following information:
- Bank account name
- Bank account number
- Bank routing code
- Bank name
- Bank address
Set Minimum Order Total and Maximum Order Total to the amounts required to qualify to use this payment method.
An order qualifies if the total falls between, or exactly matches, the minimum or maximum total values.
Enter a Sort Order number to determine the position of Bank Transfer in the list of payment methods during checkout. (0 = first, 1 = second, 2 = third, and so on.)
When complete, tap Save Config .


text:
Stressed at the session of the Supreme Council of Employment:
Need to tap all potentials for boosting job creation/President stresses precise planning for youth, women employment, esp. in ICT
The Supreme Council of Employment convened in a session chaired by President Rouhani and reviewed the latest reports and circumstances of the labour market.
news id: 97356 -
Tue 24 - January 2017 - 14:07
At the session that was held on Tuesday, the council stressed the need to tap all potentials for accelerating the process of creating jobs.
The members also emphasised that there is a need for precise planning for youth and women employment, especially in the field of ICT.
"The field of ICT is a very important field, contributing to the development of employment and it is essential that all organs join hands, tapping the talented Iranian human resources in the field," said Dr Rouhani.
news id: 97356
- sessions


text:
Knowing your self-defense and firearms skills are important in emergencies, but don't leave your arsenal of medical skills incomplete. Gunsite Academy's 2016 Emergency Medical Preparedness course is now open for registration and will be offered from March 28 to 30.
In recent news coverage of natural disasters, riots and active shooters, it's clear that medical preparedness is a something worth investing in. The Emergency Medical Preparedness course will be three days of learning from professionals who have been immersed in real world emergencies.
- RELATED STORY: Gunsite Offers 2016 Class on Home Defense
- RELATED STORY: Medical Crises Planning 101
Classroom presentations and hands-on practice exercises will lead up to the challenging and fast-paced scenarios to prep you for the real thing.
3 Crisis Prep Tips
How to stay alive until first responders arrive and extract you from the danger...
by Donald J. Mihalek / Aug 26, 2015


text:
Routine extractions are performed on teeth that are visible in the mouth, usually under local anesthetic, and require only the use of instruments to elevate and/or grasp the visible portion of the tooth. Typically, the tooth is lifted using an elevator, and using dental forceps, rocked back and forth until the periodontal ligament has been sufficiently broken and the supporting alveolar bone has been adequately widened to make the tooth loose enough to remove. When teeth are removed with forceps, slow, steady pressure is applied with controlled force, and when the tooth comes out, it does so gently.
Surgical extractions involve the removal of teeth that cannot be easily accessed, either because they have broken under the gum line or because they have not erupted fully. Surgical extractions almost always require an incision and removal of soft tissue or bone. In a surgical extraction, the doctor may need to section the tooth into multiple pieces to facilitate its removal.


text:
Sure you have many other sports to enjoy in the Olympics like Skiing, Snowboarding, Sledding and of course Curling, but if you are like us, you mostly care about International Hockey, both Men's & Women's. When the first puck drops in Sochi, three star-studded men's hockey teams will attract by far the most attention and be considered the favorites to win medals. Defending gold-medal winner Canada, silver-medalist United States and homestanding Russia will be all over the airwaves and could very well wind up side-by-side at the medal ceremony, but there are other contenders who will challenge for hardware. Click here for a look at the top teams.
This year every men's hockey game will air on a NBC network live. NBCSN, MSNBC, and NBC will carry the majority of the women's hockey games for the 2014 Sochi Olympics. Every women's team USA game will be shown on an NBC Network, typically NBCSN. 6 of the games will be only available on NBCOlympics.com, unless the USA should fall into the placement rounds. If the US falls into the placement rounds, their 2 games would air on an NBC Network.
Click here for more information
NBC Networks Men's Olympic Hockey TV Schedule
Wednesday, February 12
Noon- Czech Republic vs. Sweden (USA)
Noon- Latvia vs. Switzerland (MSNBC)
Thursday, February 13
3 AM- Finland vs. Austria (NBCSN)
7:30 AM- Slovakia vs. USA (NBCSN)
7:30 AM- Russia vs. Slovenia (MSNBC)
Noon- Canada vs. Norway (USA)
Friday, February 14
3 AM- Czech Republic vs. Latvia (MSNBC)
7:30 AM- Sweden vs. Switzerland (NBCSN)
Noon- Canada vs. Austria (USA)
Noon- Norway vs. Finland (MSNBC)
Saturday, February 15
3 AM- Slovakia vs. Slovenia (MSNBC)
7:30 AM- USA vs. Russia (NBCSN)
Noon- Switzerland vs. Czech Republic (NBCSN)
Noon- Sweden vs. Latvia (USA)
Sunday, February 16
3 AM- Austria vs. Norway (USA)
7:30 AM- Slovenia vs. USA (NBCSN)
7:30 AM- Russia vs. Slovakia (USA)
Noon- Finland vs. Canada (USA)
Tuesday, February 18
3 AM- Qualification #1 (NBCSN)
7:30 AM- Qualification #2 (NBCSN)
Noon- Qualification #3 (NBCSN)
Noon- Qualification #4 (MSNBC)
Wednesday, February 19
3 AM- Quarterfinal #1 (NBCSN)
7:30 AM- Quarterfinal #2 (NBCSN)
Noon- Quarterfinal #3 (USA)
Noon- Quarterfinal #4 (MSNBC)
Friday, February 21
7 AM- Semifinal #1 (NBCSN)
Noon- Semifinal #2 (NBCSN)
Saturday, February 22
10 AM- Bronze Medal Game (NBCSN)
Sunday, February 23
7 AM- Gold Medal Game (NBC)
NBC Networks Women's Olympic Hockey TV Schedule
Saturday, February 8
3 AM- USA vs. Finland (NBCSN)
8 AM- Canada vs. Switzerland (MSNBC)
Sunday, February 9
3 AM- Sweden vs. Japan (NBCSN)
8 AM- Russia vs. Germany (MSNBC)
Monday, February 10
5 AM- USA vs. Switzerland (NBCSN)
10 AM- Finland vs. Canada (MSNBC)
Tuesday, February 11
5 AM- Germany vs. Sweden (NBCOlympics.com)
10 AM- Russia vs. Japan (MSNBC)
Wednesday, February 12
3 AM- Switzerland vs. Finland (MSNBC)
7:30 AM- USA vs. Canada (NBCSN)
Thursday, February 13
3 AM- Japan vs. Germany (NBCOlympics.com)
Noon- Sweden vs. Russia (MSNBC)
Saturday, February 15: Quarterfinals
Sunday, February 16: Placement Round
3 AM & Noon (NBCOlympics.com)
Monday, February 17: Semifinals
7:30 AM (NBCSN) & Noon (MSNBC)
Tuesday, February 18
3 AM- 7th/ 8th Place Game (NBCOlympics.com)
6:30 AM- 5th/ 6th Place Game (NBCOlympics.com)
Thursday, February 20
6 AM- Bronze Medal Game (NBCSN)
Noon- Gold Medal Game (NBC)
Shashlik (Russian Lamb Kebab with Tomato-Prune Sauce)
Robust lamb and onion kebabs steeped in a tenderizing seltzer and vinegar marinade are paired with a sauce of tomatoes, prunes, and herbs.
½ cup minced dill
½ cup seltzer water
2 tbsp. white vinegar
1½ tbsp. ground coriander
1½ tbsp. paprika
1 tsp. ground cumin
Kosher salt and freshly ground black pepper, to taste
1½ lb. boneless lamb shoulder, cut into 2″ pieces
3 small yellow onions (2 cut into 2″ wedges, 1 minced)
¼ cup olive oil
5 cloves garlic, minced
3 tbsp. tomato paste
1 tsp. crushed red chile flakes
16 pitted prunes, roughly chopped
1 (28-oz.) can whole peeled tomatoes in juice, crushed
1 cup minced cilantro
½ cup minced parsley
1 tbsp. lemon juice
2 (12″) metal skewers
Combine half the dill with seltzer, vinegar, 1 tsp. coriander, and paprika, cumin, salt, and pepper in a bowl.
Add lamb and onion wedges; cover and chill overnight.
Heat oil in a 4-qt. saucepan over medium heat.
Add minced onion and garlic; cook 6-8 minutes.
Add remaining coriander, plus paste, chile flakes, prunes, salt, and papper; cook until caramelized, 2-3 minutes.
Add tomatoes; simmer.
Cook until thick, 15-20 minutes.
Stir in remaining dill, plus cilantro, parsley, and juice.
Heat a charcoal grill or set a gas grill to high; bank coals or turn off burner on one side.
Thread lamb and onions onto skewers.
Grill over coals, turning as needed, until cooked to desired doneness, 18-20 minutes for medium rare.
If outside burns before lamb is cooked, move to cooler side of grill until done.
Serve with sauce.
Designed & Developed by
SilverTree Technology


text:
Sights from Around Sydney, The Blue Mountains & Hunter Valley
Photo Gallery
They say a picture says a thousand words, so we created this gallery of some of our favourites sights that can be seen on our tours. Amazing creatures from land, sea and air. Spectacular landscapes, Amazing scents and air fresh like you have never before experienced.
Let us take you on an enchanting journey through the splendour and magic of New South Wales.
Coming Soon
Download our Transfers Leaflet
Download our Tours Leaflet


text:
Worsley Radio Re-Launch
11 March Gullivers
"Apparently, we have a lot of listeners in Berlin."
In an age where the DJ seems to be king, rather than a reflection of the music he or she decides to play, does anyone outside of Manchester remember Gino Brandolini? No, he's not dead. But he could - and there's no reason to believe he couldn't still do it now - fill a dance floor for a few hours or more with people dancing to his tunes. At places such as Isadora's, a nonhuman casualty claimed by the 1996 Manchester bomb, he played the music, not the image.
Today, he's still following his passion, along with a few other stalwarts, in continuing to promote music. Worsley Radio, covering a posh bit of Salford, is a radio station that's promoting the local, existing and up-and-coming bands, stretching to a radius of 30 miles or so and also including the Liverpool area.
Its re-launch took place in the downstairs room at Gullivers, which is small and can be a bit chaotic at times, but isn't that how things should be?
The idea was that two hours of music and chat would take place between 5-7pm, followed by a free, live gig upstairs. Not so much an opening night as a rebirth, it gave the opportunity for Gino to earn his stars when dealing with the sometimes recalcitrant interviewees or those who wanted others to open up as if they were talking to an analyst.
So Stella Grundy talked about her recent collaborations and Chris Bridgett discussed his rehab and working with G-O-D, which we heard may include a slot supporting an up-and-coming quintet called The Roses.
Mike Bennett chatted about his recent signings, including newbies Brakes. Then it was upstairs for the free gig featuring the bands. Not sure about Berlin, but the reception in Manchester was pretty good.
Ged Camera
Inset photo by Ged Camera.
Pecha Kucha
30 March Wonder Inn
PechaKucha is a night where a series of creative people deliver presentations featuring a series of slides on subjects of their choosing. Each speaker has 20 images for the presentation and only 20 seconds per image to speak, no stopping.
The nights take place every three months in different venues. The kooky Wonder Inn near Shudehill was the host this time, with a sell-out crowd in attendance.
The link between the speakers was creativity, either directly through their work or in their pursuits. Designers were heavily represented, including graphic designers and UX, which stands for 'user experience', in case you didn't know (I didn't).
There is a danger such talks could become pretentious, but instead each one was delivered earnestly. Themes of the desire to improve our communication were prominent throughout.
Daniel Thompson, a graphic designer and illustrator originating from Northern Ireland, spoke on how a willingness to talk to others helped him to settle into his new life in Manchester. He emphasised the need to be open in communicating with others, to talk and to actively listen, to be genuine.
Those coming from a design point of view, such as Christina Connelly, the aforementioned UX designer, talked about the need to consider the needs of others in your work.
Working collectively was also discussed in different ways, from how to work better in teams through to the social activism of Girl Gang Manchester. Their work is about creating spaces for women to come together to create a sense of empowerment, activism and friendship, with a healthy emphasis on fun.
The final speaker, Graham Jones of Loose Collective, explained that 'geek is good'. His positivity enthused the crowd and summed up nicely the attitude of the entire event. The organisers asked everyone to talk in the breaks, to communicate and make new connections. In this spirit, my fiancé and I shared a drink with a couple we met and ended up arranging for them to come round to our house for a meal.
If you want to go to a unique event full of interesting and inspiring speakers, you won't go far wrong by attending a PechaKucha night. Fair warning though - you might end up making friends.
Chris Tavner
PechaKucha Night Manchester Vol. 17 will be at Neo workspace, near Piccadilly Gardens, on Thursday 22 June, 2017. Details will be released nearer the time via social media and their mailing list: eepurl.com/civFmb
More of Chris's writing can be found at christavner.com You can follow him on Twitter @christavner


text:
Definitely worth reading through this thread start to finish. Not too many pages and lots of great information.
Me, I'm off to WV this weekend - home to the best bc skiing in the east!
Definitely worth reading through this thread start to finish. Not too many pages and lots of great information.
waiting on snow
wheres the snow
Is there a forum or discussion thread about Barker Mountain at sugarloaf? I have been skiing the loaf this winter, and I have a tele/back country setup, and really want to explore that side country area.
Any thoughts are people who go out there regularly who can give me some advice? They say on their website to stop at the red cross hut to get information, but I always feel awkward doing that.
Thanks for anything you can share!
By Barker mountain I meant to say Brackett Basin, oops. Barker is a local state parker with winter hiking near Portland, Maine if anyone is looking for something small or a half-day activity in Maine! We went in the summer with my dog and had a great time.
ice coast
Anyone have have updates on the west side of Washington? Or have any experience on when the best time to go is? I've heard there's some good skiing off the cog
Sent from my iPhone using AlpineZone
Remember that clean BC & SC doesn't come free. Spend your summer wisely if you want a good winter. ..
There are currently 1 users browsing this thread. (0 members and 1 guests)


text:
Welkom bij E-wolk!
Red Apple, Kiwi
A delicious blend of sweet, fresh red apples balanced to perfection with slight kiwi tartness.Primary Flavors: Red Apple, KiwiVG / PG ratio: 80% / 20%Bottle Sizes: 100ml concentrated in 120ml bottleBottle Type: Chubby Unicorn Bottle in Box3mg: add 2 x 10ml 18mg booster to mix 120ml 3mg6mg: add 4 x 10ml 18mg booster to mix 140ml +/- 6mgPlus is not an official trademark! It's an identifier in our shop for the concentrated liquids. All Plus liquids have been prepared by the original manufacturer, to be mixed with nicotine boosters.
Send me an email when this product is back in stock


text:
Appointments & Referrals
Contact Information
To speak with the Neurogenetics Clinic please call 617-724-6400.
To speak with the Neurogenetics Research Team please call 617-724-2996.
Appointment Resources
Billing & Financial Assistance
Learn about our billing and insurance policies and Mass General's financial assistance options.
International Patients
Learn why thousands of international patients from more than 140 countries choose Mass General.
Patient Gateway
Check upcoming appointments, communicate with your care team, review medications and pay medical bills.
The Mass General Difference
Mass General is consistently ranked among the best hospitals in the country by U.S. News & World Report. Our ranking is based on our quality of care, patient safety and reputation in 16 different specialties. Our commitment to excellence means that you receive the best care possible.
Advancing Care Since 1811
Guided by the needs of our patients and their families, Massachusetts General Hospital aims to deliver the very best health care in a safe, compassionate environment; to advance that care through innovative research and education; and to improve the health and well-being of the diverse communities we serve.


text:
9:08am PT by Eriq Gardner
Mel Gibson Escapes Settlement Payments After Ex-Girlfriend's Howard Stern Interview
A California appeals court has affirmed a judgment that allows Mel Gibson to withhold settlement payments to ex-girlfriend Oksana Grigorieva over a breach of confidentiality.
The case began in 2010 when Gibson looked to establish that he was really the father of the couple's daughter. Grigorieva filed a separate lawsuit alleging that the actor had committed battery and defamation. Two years later, the couple settled with each other. She got $20,000 per month for child support and a home. He got to be declared the father of the girl. Additionally, to resolve the battery and defamation claims, Gibson was obligated to pay Grigorieva $750,000 in three installments.
After Grigorieva got the first $250,000 payment, she went on Howard Stern's show. On May 21, 2013, she thanked the radio host for his support.
"I want to thank you for saying that, because I will support you to the end," Stern responded. "I don't care what the circumstances are. You do not treat a woman that way, especially the mother of your child."
After a further exchange, Grigorieva told Stern, "You know what? You have to embrace your experience and even — it doesn't matter how painful it might be at the time, and that darker experience, learn from it."
Grigorieva also said that she planned to work with a domestic violence charity.
As a result of this interview, Gibson filed a request for an order to discharge his obligations to pay future installments under the parties' settlement agreements. Grigorieva's attorneys argued that statements referred only to "unspecified domestic abuse" and that Gibson couldn't establish a breach based on inference. The California appeals court rejects this.
"While it is true that the confidentiality clause did not require [Grigorieva] to police what other people might say about her past relationship with [Gibson], it expressly restricted her capacity to make statements 'related to' her domestic violence claims against him," states the appellate court's opinion. "Construing the 'related to' language according to its popular meaning and in the context of the larger instrument's purpose, it is reasonable to infer that the parties intended the confidentiality clause to encompass not only express statements about [Grigorieva's] domestic violence claims against [Gibson], but also implicit assertions about those claims made through reference to what others might say. Thus, even accepting [Grigorieva's] premise that she was not required to control what others would say, nor prohibited from speaking about domestic violence generally, it still follows from the language of the confidentiality clause that she could not insinuate [Gibson] committed domestic violence on her by piggybacking on Stern's comments about what she had 'been through with [Gibson].'"
The appeals court also rejects Grigorieva's argument that the $750,000 payment was a child support obligation that couldn't be relieved without a finding concerning the daughter's best interest. The appeals court additionally upholds a $13,500 sanctions order against Grigorieva for not cooperating with Gibson's request that she authenticate a transcript of what she said on Stern's show.
Correction: The original post stated that Grigorieva was Gibson's ex-wife. The two were never married.
Eriq firstname.lastname@example.com eriqgardner


text:
I was at a wading pool. The water was so so cold and the weather was so so hot. I sat beside two little girls as they played in the pool. One of them dribbled some cold water on my hot leg and it felt delicious.
They were delighted at my delight. They spent a long time filling up their buckets with cold water and pouring it on my feet. My knees. My legs. I oohed and aahed. They loved it. And then I asked one of the girls if she wanted to feel what it felt like. We switched positions; I filled the bucket and poured cold water on her skin.
It felt like a sacred act – pleasure being given and received from woman to girl and back again. I thought about how little we do this for each other. Moms and daughters. Girlfriends. Women to each other.
Asking for, allowing and receiving pleasure has been so tainted by porn and a puritanical distrust of anything that feels good that most of us have a rock-hard resistance to surrendering to pleasure. We women learn our lessons well, don't we? And in a culture where we are yearning to be touched but everything encourages us to keep a respectful distance from each other, giving and receiving pleasure seems like an indecently intimate act.
This moment with myself and these two girls was exquisite. It felt like the most beautiful and natural thing to do and utterly unnatural and forbidden at the same time.
The way we deprive ourselves daily, of pleasure, is such a deep shame. I believe that our skin is yearning to be touched gently. Our senses are designed to moan over that first gorgeous bite of food. Our backs want to arch in ecstasy when that perfectly breathtaking warm breeze finds it's way through our hair and down our neck. We are built to ooh and aah over a smell, close our eyes over the exact right tickle. What ecstasy the world can offer us when we lose our minds in the pleasure of being adored, gifted, opened, relaxed, seduced, satiated and overcome by smells and touch and food and sound.
Have you ever found yourself holding back that sigh of pleasure, that moan of ecstasy? Have you ever wanted to shift your body during a tickle to receive it in even more of a delicious way, but stopped yourself? Have you ever found someone's full sensual enjoyment of something, uncomfortable?
In the comments below, I'd love to hear what your experience is with pleasure. How you think about it in your life. Whether it has a place there or whether it doesn't. What you were taught about the place of pleasure in your life.


text:
Revisiting Natural Magic
I periodically return and review each of the Seven States of Magic because it's important I understand what's going on in my head at any given time — and how it's changed from whatever the last thing I thought was there.
"Natural" magic presents all kinds of problems that are difficult to pronounce. It has to be the magic of Fighters and Warlords and stuff, but it also has to stretch suspension of disbelief to the point of being magic without breaking.
For over a year now, one of my assumptions about the nature of Natural magic was that it generally formed the basis of matter and was as such, Material magic. Anything that had to do with Natural magic therefor made things. Then breaking it would be conjuration — the magic of making something from nothing.
My work on Wizards from the 4e Player's Handbook has had me doing a lot with conjuration lately, defining its boundaries and whatnot, and this morning I hit a serious snag — if conjuration is Natural magic, then Fighters are conjurers.
It doesn't make sense, and that's the problem. It didn't seem like a problem on paper a year ago — but those were broad strokes, not practical applications. Facing the emergency, I reviewed my notes about the different magic types, the underlying principles, and my notes for the reasoning behind each.
It looked really bad.
Then completely by accident, I wrote something about magic violating "conservation" and that got me on a tack that took me from conjuration to evocation — and got me to reexamine conclusions I'd recently drawn about Fighters, Rogues, and the like — and put them in "magical context."
See, the whole point behind the Seven States is to make the powers of character classes make sense in the context of the power sources that grant them. That's all really. I started at the top and have been working my way down to classes.
Well actually, I've been hacking at the problem from both ends — working on power sources at the top level downward, and working on classes from the bottom level upward. It helps keep me sane, alternating between the two projects.
I still rewrote the magical concept underlying Natural magic, which is now "conservation," but it means I can move "material" over to a much more-deserving state and eliminate one of the less palatable magical concepts ("challenge").
The new idea is that Natural magic represents a kind of metaphysical status quo, and that violations of that status quo (in other words, "magic") are "evocations." They're bursts of activity, "magical changes" that alter the balance or equilibrium of things. It's like inertia and laws of motion, I suppose. Kind of.
Natural magic gives form to "stances," which represent sudden, minute changing states within characters… weird, but "standing differently" is what I'm calling magical here. You could also say that movement, from jumping and flying to uh, falling, to falling down, are all expressions of Natural magic.
Maybe I am saying that inertia is magic. I don't know.


text:
In this demo I have tried to implement touch functionality in Box2dWeb. For this I have used jQuery Mobile. Just touch the body with your finger and try to move the body. What happens is when you touch the body, a mouse joint is created with the body. When you release the finger, mouse joint is destroyed and the body is released.
There is only one drawback, albeit a major one, that you can move only ONE body at a time. You cannot move multiple bodies at one time.
I'm also working on a demo for moving multiple bodies at once (using multiple fingers -- depends on your device) but I can't get it to work properly. Also I don't have a touch device to check my demos on. So Steven Lu has helped me a lot in testing this demo as well as the "multiple touch" one (in works). So a big thanks to him.
Meanwhile here's the demo. Also if there happens to be any problem with this demo please comment or give me a feedback (Reply section).
UPDATE: This demo may have some issues. Please check this demo which is 100% working.
By administrator at 03:02:22 PM 4 Comment(s)


text:
Abandoned Town – Novi Cidade de Kilamba (or Kilamba New City), near Luanda, Angola
The city was designed to house up to 500,000 people when complete, and built by the state-owned China International Trustand Investment Corporation few years ago. It has 750 colorful eight-story apartment blocks, a dozen schools, shopping malls with cinema, a five-star hotel and more than 100 retail units. Only 220 apartments had been sold from the first 2800 until July 2015 but now the city is abandoned


text:
Pancreas Centre BC together with Pancreatic Cancer Canada held the first ever education day for patients with pancreatic cancer, their families and supporters on Saturday 6th December. Over 80 people attended.
Presentations covered many topics including:
- An overview of pancreatic cancer
- Surgery
- Research & clinical trials
- Screening & surveillance
- Hereditary cancer
- Nutrition and support
- Patient stories
The event was an opportunity to bring together patients, families and leaders in the pancreatic field for presentations and Q&A. Two patients kindly shared their experiences. Attendees provided useful feedback on what they found most valuable and how to improve the event next year. The presentations were recorded. Please click here to go to our Education page to view the videos.


text:
W R Davies Citroen Motability
3 - 5 November 2020
StaffordW R Davies Citroen Motability
Dealer event description
W R Davies Citroën is hosting the Motability Open Door Event between 3rd – 5th November 2020.
Over the week we'll have experts on hand to offer all the help and advice you need. Trained to support and advise you throughout each step of the scheme, our specialist knowledge will help you make the best choice for your individual needs.
Our showroom is open if you wish to speak to our experts in person - we're COVID safe and following strict social distancing measures to ensure our team's and your safety. If you prefer, we can offer online appointments so you don't even need to leave your home.
Citroën offers a wide range of cars through Motability, meaning that whatever your taste and budget, you'll find a car to suit every need. Many of our models have no upfront cost and you don't need to modify them to qualify for the scheme.
Whether you're new to Motability or know all about the scheme already, we'd like to give you a few reasons to see W R Davies Citroën in November. Come and chat with our Motability Specialists - we look forward to meeting you.
For more information on the event please call W R Davies Citroën Stafford on 01785 275000
Dealer event hosted by
- W R Davies Citroen Stafford
Opening days and times
- 3 November - 9:00 to 18:00
- 4 November - 9:00 to 18:00
- 5 November - 9:00 to 18:00
Event location
W R Davies Citroen Stafford
115 Lichfield Rd


text:
Stretch wool and cotton jersey jacket featuring a striped pattern. Embellished by an undercollar with contrasting striped tie-print design and decorated inside by a silk crêpe lining with a print that flanks regimental ribbons with Pegaso, emblem of the Maison.
Product Details
• Exterior: 51% wool, 26% cotton, 23% polyester
• Lining: 100% silk; sleeve lining: 57% viscose, 43% polyester
• Regular fit
• Peak lapels
• Single-breasted
• Horn buttons
• Piped breast pocket
• Flapped front pockets
• Piped inside pockets
• Rear slits
• Made in Italy
• The model is 1.87 cm in height and wears size 48
Sku: 202U1G41701000200
We offer Express shipping, with delivery within 1-4 business days (possibly longer for shipments to islands and remote locations).
The times for returns has also been extended until to 45 days. The returns process is user-friendly with no additional charges and without any risk of goods getting lost.For further information please see our Return Management section.
€ 1.065,00