text:
- "I am the Knowing. I observe and record. I observe and collate."— The Knowing
The Knowing was located behind a series of corridors buried underneath Ariel's mining facilities, and filled with traps, such as wall-mounted, motion-activated lasers. Its function was to observe, record, and organize information over the course of history. Presumably, it had been collecting information for the 100,000 years since the disappearance of the Forerunners after activating the Halo Array.
During the Battle of Ariel, ODSTs Dutch and Romeo found The Knowing after their stolen Phantom crash-landed in a room containing the missing colonists, whom the Covenant had been sending through the tunnels to find traps.
Upon entering the Knowing's chamber, it acknowledged their primacy, and offered to answer any questions they had. When it was revealed that the Covenant would be able to use the Knowing's information to destroy the human race "down to [their] last DNA strand," the ODSTs decided to tell the Knowing to self-destruct itself before the Covenant could reach it. Its destruction gave cause for the Covenant to leave Ariel, seeing no reason to remain after their goal had been destroyed - they didn't even bother to glass the planet.


École normale supérieure
From Wikipedia, the free encyclopedia
 (Redirected from Écoles Normales Supérieures)
Jump to: navigation, search
An école normale supérieure (French pronunciation: [ekɔl nɔʁmal sypeʁjœʁ]) or ENS is a type of publicly funded higher education in France. A portion of the student body who are French civil servants are called Normaliens.
The history of écoles normales supérieures goes back to 30 October 1794 (9 brumaire an III) when École normale de l'an III was established during the French Revolution.[1] The school was subsequently reestablished as pensionnat normal from 1808 to 1822, before being recreated in 1826 and taking the name of École normale in 1830. When institutes for primary teachers training called écoles normales were created in 1845, the word supérieure (meaning upper) was added to form the current name.
The Savary law of 1984 restructured higher education in France and classified écoles normales supérieures within Établissement public à caractère scientifique, culturel et professionnel.[2] Since January 2014, there are four ENS: the École Normale Supérieure located in Paris, the École Normale Supérieure de Lyon located in Lyon, the École Normale Supérieure de Cachan in Cachan near Paris and the École Normale Supérieure de Rennes near Rennes.
Key decrees and laws on the upper part of the entrance of École Normale Supérieure, 45 rue d'Ulm
After the suppression of the Society of Jesus in France in 1762, a debate arose on how to replace their role in education. The idea of an école normale, a place to train teachers for the secondary schools, is already mentioned in a report on education made in 1768 by Rolland, president of the Parliament of Paris.[3]
The first école normale was established by the National Convention in a decree dated October 30, 1794.[1] Educated people from all parts of France were to be selected to attend the school an to subsequently return to found an école normale in their department for the education of primary schools teachers. The école normale de l'an III had renown teachers such as Laplace, Lagrange, and Berthollet but was actually in function during only four months, from 20 January 1795 to 19 May 1795 or in the then in use French Republican Calendar from 1er pluviose of year III until 30 floréal of year III.
In the decree of Napoleon of March 17, 1808, the institution was re-established as pensionnat normal.[1] The candidates most promising for administration and education roles were admitted through a competitive examination.[4] The students could attend courses at Collège de France, Muséum d'histoire naturelle or École polytechnique.[4] At école normale, they received support from tutors for revising, laboratory experiments and teaching the art of teaching.[4]
In 1880, Camille Sée established secondary education for girls. Subsequently, a law dated 29 July 1881 founded the École normale supérieure de jeunes filles located in Sèvres.
Jules Ferry got a law passed on 9 August 1879 in order to force each department to establish and fund an institution to train primary school teachers for each gender (école normale de garçons and école normale de filles).[5] In order to train the teaching body of these schools, so-called écoles normales supérieures de l'enseignement primaire were needed. A decree dated 13 July 1880 set up the one for young women in Fontenay-aux-Roses, and later in March 1882 the male equivalent opened in Saint-Cloud.[5]
Starting in 1891, a section for teacher training named sections normales was established in the École des Arts et métiers of Châlons-sur-Marne (decree of 11 June 1891) and in the École des Hautes Études Commerciales de Paris (decree of 21 July 1894). A decree published on 15 June 1899 organized sections normales for women. These sections normales were grouped together in 1912 into a single school which was named "École normale supérieure de l'enseignement technique" in 1934.
Academic profile[edit]
Their competitive entrance exams are extremely selective. They recruit mainly from scientific and humanities Prépas (Taupe / BCPST and Khâgne), even though a small number of their students (less than 10 each year) are recruited separately on the basis of highly selective exams. The students from France and other European Union countries are considered civil servants in training, and as such paid a monthly salary, in exchange for an agreement to serve France for 10 years, including those of their studies.
The École Normale Supérieure located in Paris is nicknamed "Ulm" from its address rue d'Ulm (Ulm Street). It teaches sciences and humanities. École Normale Supérieure de Lyon in Lyon also teaches sciences and humanities. École Normale Supérieure de Cachan located in Cachan, a suburb of Paris and École Normale Supérieure de Rennes located near Rennes teache theoretical and applied sciences, engineering, social sciences, economics and management and foreign languages.
Until recently and unlike most of the other grandes écoles, the écoles normales supérieures did not award any specific diplomas (students who had completed the curriculum they had agreed to with the office of the Dean upon arrival were simply entitled to be known as "ENS Alumni" or "Normaliens"), but they keep encouraging their students to obtain university diplomas in partner institutions whilst providing extra classes and support. Many ENS students obtain more than one university diploma.
 1. ^ a b c Edwards, Reginald (Fall 1991). "Theory, History, and Practice of Education: Fin de siècle and a new beginning". McGill Journal of Education 26 (3). )
 2. ^ "Loi n°84-52 du 26 janvier 1984 sur l'enseignement supérieur" (pdf). JORF. 27 January 1984.
 3. ^ Cubberley, Ellwood P. (1920). The history of Education. p. 510.
 4. ^ a b c Favier, Jean (1994). "Des arts libéraux à la pluridisciplinarité : approches de l'encyclopédisme". Comptes-rendus des séances de l'Académie des Inscriptions et Belles-Lettres (in French) (4): pp. 911–923. doi:10.3406/crai.1994.15420. Retrieved 03 April 2011.
 5. ^ a b Luc, Jean-Noël (1980). "La formation des professeurs de maîtres d'école en France avant 1914". Revue française de pédagogie (in French) 51 (1): 50–57. doi:10.3406/rfp._PHONE_. Retrieved 05 April 2011.


text:
The total pressure for the system H2O-CH 4 is given by p(total) = P(H2O,t) + exp10[log x(CH 4) - a - b x(CH4)], where P(H2O,t) is the vapor pressure of H2O liquid at the temperature t (?C) and x(CH 4) is the molal concentration of methane in the solution. The terms a and b are functions of temperature only. Where the total pressure and temperature are known, the concentration of methane, x(CH4), is found by iteration. The concentration of methane in a sodium chloride brine, y(CH4), is estimated using the function log y(CH4) = log x(CH4) - A I, where A is the salting out constant and I is the ionic strength. For sodium chloride solutions, the ionic strength is equal to the molality of the salt. The equations are valid to 360?C, 138 MPa, and 25 weight percent sodium chloride.
Additional publication details
USGS Numbered Series
An empirical equation with tables of smoothed solubilities of methane in water and aqueous sodium chloride solutions up to 25 weight percent, 360 degrees C, and 138 MPa

source: m-a-p/FineFineWeb


text:
Lactose breakdown. LacY permease is an enzyme found in the bacterium E. coli that is involved in breaking down lactose. It has both hydrophilic (water-bonding) and hydrophobic (water-repelling) properties. After translating the amino-acid sequence into music, scientists hoped to be able to pick out hydrophilic versus hydrophobic patterns. "If you listen to the notes slowly, you can hear some of the differences and similarities," says Takahashi.
(View the full musical score) (Click here to play the music file)


1. Home
 2. Docs
 3. LicenceMe
What does a licensing system do?
A licence is an official permission or permits to do, use, or own something. A license can be granted by a party to another party as an element of an agreement between those parties. A shorthand definition of a license is "an authorization to use licensed material." Licensing systems manage the creation and validation of licences.
What does LicenceMe do?
LicenceMe allows you to manage game or application licensing by yourself, making you independent of selling platforms. You obtain the possibility to solve the three common licensing questions (and even more):
 - Creation and validation of product keys (Like: SJJDNK-KT6NL4-2RE7DH-NSCYZY)
 - Creation and validation of trials or demos.
 - Creation and validation of licences bond to devices or companies.
But how does LicenceMe do this?
It combines two methods: Partial Key Verification (PKV) (commonly used in the game industry to create product keys) and RSA (an asymmetric encryption / decryption algorithm).
PKV gives you the opportunity to create product keys and simple condition based product keys, for example username/email/… depending.
The RSA encryption allows you to create trials/demos or complex condition based licences (for example device/company/… depending),
by repacking and encrypting the PKV created product key.


AudienceView Connect
AudienceView Documentation
Defining the Default Date and Time Formats
You can change the format AudienceView uses to display dates and times if you have the permission to do so. The default date format is YYYY-MM-DD. Changing the default date format will be used across all AudienceView applications including Desktop, online sales, kiosk sales and access control. It is recommended that you only use numeric formats for displaying dates and times and avoid using abbreviations or full names of the day or month.
Information
Some date and time formats displayed within the core reports are fixed and display YYYY-MM-DD or YYYY/MM/DD.
You can override the default date and time format at the Business Object or Collection Object level to meet your needs. For example, if you want users to see the full name of the day and month when searching for performances, you could modify the Start Date within TSperformanceCO to change the date format.
Information
At the Business Object and Collection Object level, the date formatting options are controlled using the dateFormats list. If the desired date format is not available, you can modify this list to include the desired option.
Once you change the date format, you should verify the date format displayed in the following areas:
 - Price Charts
 - Performances
 - Series
To define the default date and time format, complete the following:
 1. Define the date and time format within the Registry.
 For more information, refer to Defining the Default Date and Time Format within the Registry.
 2. Define the date and time format on the application server.
 For more information, refer to Changing Windows Date and Time Settings.
Information
The date and time format defined for the application server (using Regional and Language Options in the Windows Control Panel) must match the date format defined in the AudienceView Registry. If the two do not match, the application will interpret ambiguous dates based on the Windows settings. An example of an ambiguous date is 01/02/2011 which could be January 2, 2011 or February 1, 2011. If the Windows setting is MM/DD/YYYY and the AudienceView setting is DD/MM/YYYY, the date 01/02/2011 entered in AudienceView will be considered MM/DD/YYYY not DD/MM/YYYY as expected.


The PTF identified Albertus Magnus College's past successes and recorded the data created by the process. The information that resonated most strongly from the data gathered during the process was the importance of communication, champions, ownership, resources, and cross boundary collaboration in Albertus' successes.
The PTF members will utilize the Accomplishment Design strategy they learned when they reach out to other members of the College community to gather more input and data.
Lessons Learned
Improved communication between departments
Better student retention in a program
Electronic newsletterkeep people informed
Improved academic program
Cross disciplinary research papers
Improved employee engagement / student engagement
Better community relations
Started up a program/source
Task for that improved
Cross Boundary/Cooperative Effort
What Resonates Strongly
Cross boundary collaboration
Full PTF Accomplishments Activity Results
Please follow the link above to view full results of the Accomplishments Activity conducted by the Planning Task Force.


Skip to main content
Version: 3.12
Getting Started with Using Python for ScalarDB Cluster
This document explains how to write gRPC client code for ScalarDB Cluster by using Python.
Prerequisites
Sample application
This tutorial illustrates the process of creating an electronic money application, where money can be transferred between accounts.
Step 1. Create schema.json
The following is a simple example schema.
Create schema.json, and add the following to the file:
{
"emoney.account": {
"transaction": true,
"partition-key": [
"id"
],
"clustering-key": [],
"columns": {
"id": "TEXT",
"balance": "INT"
}
}
}
Step 2. Create database.properties
You need to create database.properties for the Schema Loader for ScalarDB Cluster. But first, you need to get the EXTERNAL-IP address of the service resource of the LoadBalancer service (scalardb-cluster-envoy).
To see the EXTERNAL-IP address, run the following command:
$ kubectl get svc scalardb-cluster-envoy
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
scalardb-cluster-envoy LoadBalancer 10.105.121.51 localhost 60053:30641/TCP 16h
In this case, the EXTERNAL-IP address is localhost.
Then, create database.properties, and add the following to the file:
scalar.db.transaction_manager=cluster
scalar.db.contact_points=indirect:localhost
To connect to ScalarDB Cluster, you need to specify cluster for the scalar.db.transaction_manager property. In addition, you will use the indirect client mode and connect to the service resource of Envoy in this tutorial. For details about the client modes, see Developer Guide for ScalarDB Cluster with the Java API.
Step 3. Load a schema
To load a schema via ScalarDB Cluster, you need to use the dedicated Schema Loader for ScalarDB Cluster (Schema Loader for Cluster). Using the Schema Loader for Cluster is basically the same as using the Schema Loader for ScalarDB except the name of the JAR file is different. You can download the Schema Loader for Cluster at Releases. After downloading the JAR file, you can run the Schema Loader for Cluster with the following command:
$ java -jar scalardb-cluster-schema-loader-3.12.2-all.jar --config database.properties -f schema.json --coordinator
Step 4. Set up a Python environment
You can choose any way you like to manage your Python environment. For the purpose of this guide, we assume that your Python application is running in an environment by using venv.
Create a working directory anywhere, and go there. Then, run the following command to activate venv by running the following command:
$ python3 -m venv venv
$ source venv/bin/activate
Let's install the gRPC packages with the pip command:
$ pip install grpcio grpcio-tools
Step 5. Generate the stub code for ScalarDB Cluster gRPC
To communicate with the gRPC server for ScalarDB Cluster, you will need to generate the stub code from the proto file.
First, download the scalardb-cluster.proto file, then save it in the working directory. For ScalarDB Cluster users who have a commercial license, please contact us if you need the scalardb-cluster.proto file.
You can generate the stub code by running the following command:
$ python -m grpc_tools.protoc -I . --python_out=. --pyi_out=. --grpc_python_out=. scalardb-cluster.proto
The following files will be generated:
 - scalardb_cluster_pb2.py
 - scalardb_cluster_pb2.pyi
 - scalardb_cluster_pb2_grpc.py
Step 6. Write a sample application
The following is the sample Python application (electronic_money.py) that uses the stub code. This program does the same thing as the ElectronicMoney.java program in Getting Started with ScalarDB. Note that you have to update the value of SERVER_ADDRESS based on the EXTERNAL-IP value of the ScalarDB Cluster LoadBalancer service in your environment.
import argparse
from typing import Optional
import grpc
import scalardb_cluster_pb2_grpc
from scalardb_cluster_pb2 import (
BeginRequest,
BeginResponse,
Column,
CommitRequest,
Get,
GetRequest,
GetResponse,
Key,
Put,
PutRequest,
RequestHeader,
RollbackRequest,
)
SERVER_ADDRESS = "localhost:60053"
NAMESPACE = "emoney"
TABLENAME = "account"
ID = "id"
BALANCE = "balance"
request_header = RequestHeader(hop_limit=10)
def charge(id: str, amount: int) -> None:
with grpc.insecure_channel(SERVER_ADDRESS) as channel:
stub = scalardb_cluster_pb2_grpc.DistributedTransactionStub(channel)
begin_response: BeginResponse = stub.Begin(
BeginRequest(request_header=request_header)
)
transaction_id = begin_response.transaction_id
try:
pkey = Key(
columns=[
Column(
name=ID,
text_value=Column.TextValue(value=id),
)
]
)
# Retrieve the current balance for id
get = Get(
namespace_name=NAMESPACE,
table_name=TABLENAME,
get_type=Get.GetType.GET_TYPE_GET,
partition_key=pkey,
)
get_response: GetResponse = stub.Get(
GetRequest(
request_header=request_header,
transaction_id=transaction_id,
get=get,
)
)
# Calculate the balance
balance = amount
if get_response.result.columns:
balance_column = next(
c for c in get_response.result.columns if c.name == BALANCE
)
current = balance_column.int_value.value
balance += current
# Update the balance
put = Put(
namespace_name=NAMESPACE,
table_name=TABLENAME,
partition_key=pkey,
columns=[
Column(name=BALANCE, int_value=Column.IntValue(value=balance))
],
)
stub.Put(
PutRequest(
request_header=request_header,
transaction_id=transaction_id,
puts=[put],
)
)
# Commit the transaction
stub.Commit(
CommitRequest(
request_header=request_header,
transaction_id=transaction_id,
)
)
except Exception as e:
# Rollback the transaction
stub.Rollback(
RollbackRequest(
request_header=request_header,
transaction_id=transaction_id,
)
)
raise e
def pay(from_id: str, to_id: str, amount: int) -> None:
with grpc.insecure_channel(SERVER_ADDRESS) as channel:
stub = scalardb_cluster_pb2_grpc.DistributedTransactionStub(channel)
begin_response: BeginResponse = stub.Begin(
BeginRequest(request_header=request_header)
)
transaction_id = begin_response.transaction_id
try:
from_pkey = Key(
columns=[
Column(
name=ID,
text_value=Column.TextValue(value=from_id),
)
]
)
to_pkey = Key(
columns=[
Column(
name=ID,
text_value=Column.TextValue(value=to_id),
)
]
)
# Retrieve the current balances for ids
from_get = Get(
namespace_name=NAMESPACE,
table_name=TABLENAME,
get_type=Get.GetType.GET_TYPE_GET,
partition_key=from_pkey,
)
from_get_response: GetResponse = stub.Get(
GetRequest(
request_header=request_header,
transaction_id=transaction_id,
get=from_get,
)
)
to_get = Get(
namespace_name=NAMESPACE,
table_name=TABLENAME,
get_type=Get.GetType.GET_TYPE_GET,
partition_key=to_pkey,
)
to_get_response: GetResponse = stub.Get(
GetRequest(
request_header=request_header,
transaction_id=transaction_id,
get=to_get,
)
)
# Calculate the balances (it assumes that both accounts exist)
new_from_balance = (
next(
c for c in from_get_response.result.columns if c.name == BALANCE
).int_value.value
- amount
)
new_to_balance = (
next(
c for c in to_get_response.result.columns if c.name == BALANCE
).int_value.value
+ amount
)
if new_from_balance < 0:
raise RuntimeError(from


Technical Manual of the Ceylan-Traces Layer
Copyright (C) 2010-2021 Olivier Boudeville
about (dash) traces (at) esperide (dot) com
Creation date:
Sunday, August 15, 2010
Lastly updated:
Monday, February 8, 2021
Work in progress
Users and maintainers of the Traces layer.
The role of the Traces layer (part of the Ceylan project) is to provide Erlang applications with advanced trace services, so that the user can efficiently log, browse and search through detailed runtime messages that may be emitted concurrently (i.e. in a parallel, distributed way) by all kinds of processes.
We present here a short overview of these services, to introduce them to newcomers. The next level of information is to read the corresponding source files, which are intensely commented and generally straightforward.
This layer is in charge of providing Erlang programs with the means of emitting, collecting, storing and browsing applicative traces (i.e. logs - not related in any way to Erlang tracing).
This means that both user-originating traces (that your code emits thanks the Traces API) and standard Erlang logs are routed and centralised in a single view whose purpose is to help monitoring your application(s) as a whole.
For that, various types of components have been designed and implemented, such as a trace aggregator, emitter, listener, supervisor, bridge, etc.
They collectively constitute the Traces layer, whose only prerequisites (besides Erlang itself, of course) are the WOOPER layer (for object-oriented primitives) and the Myriad layer (for many lower-level services; itself a prerequisite of WOOPER).
The project repository is located here.
The main purpose of this Traces layer is thus to provide adequate traces (i.e. advanced logs) for distributed systems (a rather critical feature in order to debug in these difficult contexts), and to ease their study and browsing. A few backends are available for that, from the direct reading of basic (text) trace files to considerably more user-friendly solutions, such as the generation of PDF reports or the use of our more advanced trace format, which can be read notably by commercial tools such as LogMX [1].
[1]The Ceylan-Traces layer defined a trace format of its own, supported by our Java-based parser for LogMX. For what it is worth, LogMX is the only non-free, commercial tool on which we rely, as we find it quite convenient. Devising an interface to any other log browsing tool of interest is certainly a rather reasonable option. Pull requests welcome!
Finally, an effort has been made to lessen the runtime impact of this service when it is enabled, and to pretty remove it as a whole (hence with no runtime overhead) when disabled (through flexible build options).
Trace Severities
Traces now relies on the same conventions as the ones of the newer standard logging facility in Erlang/OTP, logger, which itself obeys the Syslog protocol, as defined in RFC 5424.
There are eight built-in levels for trace channels, of increasing severity:
Trace Severity Mapped Priority
debug 7
info 6
notice 5
warning 4
error 3
critical 2
alert 1
emergency 0
Starting from warning onward (thus included), these severities are considered as error-like, and as such will never be disabled and will be echoed on the console as well.
There is also an addition trace severity, void, that designates traces that shall be muted in all cases.
Its purpose is to provide another means of muting/unmuting some traces, instead of commenting out/uncommenting said traces.
Trace Content
This section is not of interest for Traces users, it is only useful if wanting to integrate other tools or simply to have a look under the hood.
The traces corresponding to an execution are represented as an wallclock-time ordered stream of trace messages.
These traces are possibly exchanged over the network or stored in a file, whose extension is conventionally.traces.
For example the traces for a test named my_foobar_test are typically stored in a my_foobar_test.traces file, generated by the trace aggregator in the directory from which the corresponding test was launched.
Following data is associated to a given trace:
 1. technical identifier of the emitter, as a string (ex: <9097.51.0> for the PID of a distributed Erlang process)
 2. name of the emitter (ex: "Instance tracker")
 3. dotted categorization of the emitter (ex: "Core.Tracker.Instances"); here for example the emitter is an element of the service in charge of the instances, which itself belongs to the tracker services, which themselves belong to the (even more general) core services
 4. application-level timestamp (ex: operation count, relative tick, absolute timestep, or any complex, application-specific timestamp, etc.), possibly none, or undefined if not applicable (ex: a simulation that would not be started yet)
 5. wall-clock timestamp, in the "Year/Month/Day Hour:Minute:Second" format (ex: "2016/6/10 15:43:31"); this is an emitter-side timestamp (hence not related to the wallclock time known of the trace aggregator)
 6. emitter location, as a string (ex: the name of the Erlang node, possibly including the name of the application use case, of the user and of the host; ex:
 7. dotted categorization of the trace message itself (ex: MyApp.MyTopic.MyTheme)
 8. severity of the trace message (mapped to an integer level, as discussed above)
 9. the trace message itself, an arbitrary text of arbitrary length
Trace Emission
The following header is to be included so that an Erlang process can send traces:
or, better, in an OTP-compliant fashion:
This process can be a standalone module (ex: a test or an application launcher, see trace_management_test.erl) or, more frequently, it might correspond to a WOOPER (active or passive) instance, in which case it shall inherit, directly or not, from class_TraceEmitter (see class_TestTraceEmitter.erl for a complete example of it).
Traces can also be emitted thanks to Myriad's trace_bridge. This is especially useful when developing lower-level libraries that can depend on Myriad, but may introduce extra runtime dependencies such as WOOPER and Traces only optionally. Using that bridge, the traces will by default go through Myriad's low level trace_utils, unless Traces is available, in which case its default trace aggregator will be used.
Such a bridge is also useful whenever spawning processes that have not direct trace emitter state of their own, yet may at least in some cases send traces; the bridge allows them to use a designated trace emitter as a relay.
From member methods
Then sending-primitives can be used, such as:
?info("Hello world!")
?info_fmt("The value ~B is the answer.",[MyValue])
Many API variations exist (see class_TraceEmitter.hrl), to account for the various trace content, contexts, etc., but?S(Message) and?S_fmt(MessageFormat,MessageValues), for S corresponding to a trace severity (ex: S being notice), are by far the most frequently used.
From constructors
Note that for example?debug(Message) is a macro that (if Traces is enabled) expands (literally) to:
As a result, the availability of a State variable in the scope of this macro is expected. Moreover, this WOOPER state variable shall be the one of a class_TraceEmitter instance (either directly or, more probably, through inheritance).
This is not a problem in the most common case, when using traces in member methods (as by design they should be offering such a State), yet in constructors the initial state (i.e. the State variable directly fed to the construct operator of this class) is generally not the one of a trace emitter already (it is a blank state).
As a result, an instance will not be able to send traces until the completion of its own class_TraceEmitter constructor, and then it shall rely on that resulting state (for example named TraceState). Sending a trace of severity S from that point should be done using a send_S macro (ex:?send_debug(TraceState,Message)) - so that an appropriate state is used.
An example of some class Foobar inheriting directly from TraceEmitter will be clearer:
construct(State,TraceEmitterName) ->
 TraceState = class_TraceEmitter:construct(State,TraceEmitterName),
 % Cannot use here?info("Hello!), as it would use 'State',
 % which is not a trace emitter yet! So:
Trace Categorisation
In addition to browsing the produced traces per emitter, origin, theme, wallclock or applicative timestamps, etc. it is often useful to be able to sort them per emitter categorisation, such a categorisation allowing to encompass multiple emitter instances of multiple emitter types.
Categories are arbitrary, and are to be nested from the most general ones to the least (a bit like directories), knowing that subcategories are to be delimited by a dot character, like in: Art.Painting.Hopper. As a consequence, any string can account for a category, keeping in mind dots have a specific meaning.
Hierarchical categorisation allows to select more easily a scope of interest for the traces to be browsed.
For example, should birds, cats and dogs be involved, introducing following


text:
Waste & Resources Action Programme (WRAP) have published a Roadmap for the Organics Sector. This document is a constructive road map with the overarching aim of ensuring that, as the sector continues to grow in the future, that it remains a trusted and welcomed option for waste treatment that delivers valuable products. This document is published in the context of recent questions regarding some current sector practices. The Roadmap provides clear objectives and actions for local authorities, organic processors, policy makers, and regulators to tackle challenges such as feedstock contamination for organic processors, recycling rates and feedstock supply, and environmental protection.
The challenges the Roadmap intends to address are:
- The absolute need for quality – quality inputs, quality operations and quality outputs.
- The need to reduce emissions of ammonia from the generation, spreading and use of digestates.
- The need to fully value the products the organic sector produce.
The process of managing the roadmap and the completion of its actions will be undertaken by WRAP, on behalf of Defra. WRAP will convene the actions owners, monitor and report progress, and ensure that the roadmap remains a live and relevant document and plan.
The REA have been involved in the drafting of some of the actions and will be leading on delivering some of them. Please contact us if you would like any further information.

source: openbmb/Ultra-FineWeb


text:
Outcomes of an Interprofessional Fall Risk Assessment Program for Health Science Students (poster 8)
Haddad, Ann Ryan
Stricklett, Kate Martens
MetadataShow full item record
Background/Introduction: The interprofessional fall risk assessment program was first piloted in Spring 2011. Since then, it has been offered annually at both independent living and assisted living facilities in the Omaha area.Methods: From 2012 - 2014, 188 students participated in interprofessional fall risk assessment programs at 3 senior living communities. Students were recruited to participate through the Office of Interprofessional Scholarship, Service and Education in the School of Pharmacy and Health Professions. Students attended an orientation, met their team, and completed the pre-Team Skills Scale survey prior to the event.Students completed their discipline-specific assessments onsite with senior residents who volunteered to participate in the fall risk assessment program. Nursing students completed interviews to collect health history information. Pharmacy students completed medication reviews or medication fall risk scores. Physical therapy students conducted Berg Balance assessments. Occupational therapy students completed home safety checklists.Interprofessional teams generated client-centered recommendations under the supervision of licensed healthcare professionals. These recommendations were provided to the older adults in fall risk report cards. Facility staff received recommendations via care plans and medication action plans to discuss with their senior residents. Students then completed a post-Team Skills Scale survey.Results: The response rate ranged from 81-85% dependent upon students' completion of both pre/post Team Skills Scale survey questions. Scores for all questions improved significantly from preto post-measures.Conclusion: These opportunities allow students to interact with older adults, become proficient with health assessments, collaborate interprofessionally, and provide clinical recommendations. Student benefits of participating include applying clinical skills before clinical rotations, interacting with real clients (not patient simulations), developing team skills, and having the safety net of faculty onsite to supervise and coach them. The older adults received assessments not typically provided in these senior living communities.


primitive values unchanged. This means you can use Debugger.Object.prototype.copy as a generic "debugger value to debuggee value" conversion function—within the limitations of the "structured cloning" algorithm.
create(prototype, [properties])
Create a new object in the referent's global (and thus in the referent's compartment), and return a Debugger.Object referring to it. The new object's prototype isprototype, which must be an Debugger.Object instance. The new object's properties are as given byproperties, as ifproperties were passed to Debugger.Object.prototype.defineProperties, with the new Debugger.Object instance as the this value.
makeDebuggeeValue(value)
Return the debuggee value that representsvalue in the debuggee. Ifvalue is a primitive, we return it unchanged; ifvalue is an object, we return the Debugger.Object instance representing that object, wrapped appropriately for use in this Debugger.Object's referent's compartment.
Note that, ifvalue is an object, it need not be one allocated in a debuggee global, nor even a debuggee compartment; it can be any object the debugger wishes to use as a debuggee value.
As described above, each Debugger.Object instance presents its referent as viewed from a particular compartment. Given a Debugger.Object instanced and an objecto, the call d.makeDebuggeeValue(o) returns a Debugger.Object instance that presentso as it would be seen by code ind's compartment.
decompile([pretty])
If the referent is a function that is debuggee code, return the JavaScript source code for a function definition equivalent to the referent function in its effect and result, as a string. Ifpretty is present and true, produce indented code with line breaks. If the referent is not a function that is debuggee code, return undefined.
call(this,argument, …)
If the referent is callable, call it with the giventhis value andargument values, and return a completion value describing how the call completed.This should be a debuggee value, or { asConstructor: true } to invoke the referent as a constructor, in which case SpiderMonkey provides an appropriate this value itself. Eachargument must be a debuggee value. All extant handler methods, breakpoints, and so on remain active during the call. If the referent is not callable, throw a TypeError. This function follows the invocation function conventions.
apply(this,arguments)
If the referent is callable, call it with the giventhis value and the argument values inarguments, and return a completion value describing how the call completed.This should be a debuggee value, or { asConstructor: true } to invokefunction as a constructor, in which case SpiderMonkey provides an appropriate this value itself.Arguments must either be an array (in the debugger) of debuggee values, or null or undefined, which are treated as an empty array. All extant handler methods, breakpoints, and so on remain active during the call. If the referent is not callable, throw a TypeError. This function follows the invocation function conventions.
executeInGlobal(code, [options])
If the referent is a global object, evaluatecode in that global environment, and return a completion value describing how it completed.Code is a string. All extant handler methods, breakpoints, and so on remain active during the call. This function follows the invocation function conventions. If the referent is not a global object, throw a TypeError exception.
Codeis interpreted as strict mode code when it contains a Use Strict Directive.
This evaluation is semantically equivalent to executing statements at the global level, not an indirect eval. Regardless ofcode being strict mode code, variable declarations incode affect the referent global object.
Theoptions argument is as for Debugger.Frame.prototype.eval.
executeInGlobalWithBindings(code,bindings, [options])
Like executeInGlobal, but evaluatecode using the referent as the variable object, but with a lexical environment extended with bindings from the objectbindings. For each own enumerable property ofbindings namedname whose value isvalue, include a variable in the lexical environment in whichcode is evaluated namedname, whose value isvalue. Eachvalue must be a debuggee value. (This is not like a with statement:code may access, assign to, and delete the introduced bindings without having any effect on thebindings object.)
This method allows debugger code to introduce temporary bindings that are visible to the given debuggee code and which refer to debugger-held debuggee values, and do so without mutating any existing debuggee environment.
Note that, like executeInGlobal, any declarations it contains affect the referent global object, even ascode is evaluated in an environment extended according tobindings. (In the terms used by the ECMAScript specification, the VariableEnvironment of the execution context forcode is the referent, and thebindings appear in a new declarative environment, which is the eval code's LexicalEnvironment.)
Theoptions argument is as for Debugger.Frame.prototype.eval.
asEnvironment()
If the referent is a global object, return the Debugger.Environment instance representing the referent's global lexical scope. The global lexical scope's enclosing scope is the global object. If the referent is not a global object, throw a TypeError.
unwrap()
If the referent is a wrapper that this Debugger.Object's compartment is permitted to unwrap, return a Debugger.Object instance referring to the wrapped object. If we are not permitted to unwrap the referent, return null. If the referent is not a wrapper, return this Debugger.Object instance unchanged.
unsafeDereference()
Return the referent of this Debugger.Object instance.
If the referent is an inner object (say, an HTML5 Window object), return the corresponding outer object (say, the HTML5 WindowProxy object). This makes unsafeDereference more useful in producing values appropriate for direct use by debuggee code, without using invocation functions.
This method pierces the membrane of Debugger.Object instances meant to protect debugger code from debuggee code, and allows debugger code to access debuggee objects through the standard cross-compartment wrappers, rather than via Debugger.Object's reflection-oriented interfaces. This method makes it easier to gradually adapt large code bases to this Debugger API: adapted portions of the code can use Debugger.Object instances, but use this method to pass direct object references to code that has not yet been updated.
forceLexicalInitializationByName(binding)
Ifbinding is in an uninitialized state initialize it to undefined and return true, otherwise do nothing and return false.
Source Metadata
Generated from file:

js/src/doc/Debugger/Debugger.Object.md
Watermark:
sha256:769e72a8136b921b313d24b17ffc23ab290ce65b413ed8ba86e597904261acb2
Changeset:
7ae377917236
Document Tags and Contributors
 Contributors to this page: Sebastianz, jimblandy, erxin
 Last updated by: Sebastianz,


text:
Loziba Community Conservancy (Kwazulu-Natal), has been identified as a priority project site for investment and proof of concept of the Multiple Land Use, Multiple Revenue Stream Community Conservancy Planning, Development and Management Model.
An estimated investment of £5m* over 5 years, will enable the establishment of an innovative and diverse portfolio of agri-wildlife businesses within the Loziba Community Conservancy, which includes the Loziba Wildlife Reserve(_URL_ ) in the centre of the Community Conservancy.
*this is a desktop estimate. A full ground truthing and budget exercise is needed to prepare a comprehensive and collaboratively agreed development program and budget as well as business plans for the agri-wildlife businesses envisaged to be optimal for the area.
A signed constitution is in place with the communities to proceed with the proposed Conservancy development programme, with the project having already had initial investments in a range of community development projects including the Loziba Wildlife Reserve.
Ultimately a sustainable and profitable regenerative agri-wildlife micro- conservation economy will be established, consisting potentially of the following businesses:
- Wildlife production (game) farming and a business incubator – supporting the game meat value chain enterprises.
- Regenerative Community Cattle Farming – using livestock to Regenerate rangelands, whilst producing organic red meat.
- Eco-Farm – climate smart, efficient, technology-driven food production business, including aquaculture linking into Agri-Hubs for agro-processing, product distribution and supplying regenerative agri-wildlife materials (e.g. seed) and equipment to the Eco-Farms.
- "Regenerated" open-field agriculture
- Intensive regenerative vegetable production
- Broad-ranging food security programmes
- Development of small scale farmers (Out-growers) towards increasing levels of commercial production


text:
Introduction: Help! My Kitten's Toe Has Fallen Off! (April Fool's Prank)
You will need the following:
1. A kitten or cat (can be yours or someone elses :)
2. A pussy willow tree (_URL_
3. An unsuspecting victim!
4. Some tissue paper.
Step 1: The Prank
This is an easy one, it's really all in the delivery :)
Step 1. Take one little pussy willow or "catkin" off of the tree and stuff it in some kleenex.
Step 2. Walk non-chalantly up to your unsuspecting victim.
Step 3. Explain in a confused and somewhat upset voice that (insert name of kitten here) was acting all crazy this morning and you saw them pull of one of their toes and that you might need some help to figure out how to get it back on.
Step 4. Take the kleenex out of your hand and hand the little catkin to your unsuspecting victim
Step 5. Watch as they recoil in horror! :D
Step 2: Good Luck!
You can get more than one person with this prank, just make sure they are not within earshot of the first victim :)
Thank you to wikipedia for the images :)


text:
23 August, 2023 – Ivana Saula, IAM Canada's Director of Research and Women and Human Rights presented her years of research on artificial intelligence (AI) to the IAM Unity and Growth Conference today. She added her ongoing monitoring of developments in AI to bring up-to-the-minute news to organisers at the conference.
Saula shed light on the impact of #AI on unions and the need for a clear framework that protects workers' rights and their jobs and illustrated it on how and what corporations are using AI to either avoid unions, or how to exploit weaknesses they may have.
Starting with the basics, Saula led the conference through challenges to union organizing, new work arrangements and new technologies, as well as the impact of new technology.
Remote work, hybrid work and gig work (where workers have no legal status as workers) are challenges to unions trying to engage in organising.
Artificial Intelligence presents a unique challenge as data from the "new" ways of working allows employers to collect a vast amount of information on the workers they use. She also pointed out the limits AI places on collective action by workers seeking to join a union through the use of CCTV camera/webcam, laptops or tablets, mobile phones, portable fitness or location trackers or health monitors.
The monitoring can take place through tracking of both location and body movements, monitoring of keyboard activity, tone of voice, expressions, duration of time at work and/or time taken to complete tasks. And this can happen when on or off the clock!
AI is also being used to predict the probability of organising drives in a particular geographical area by mapping other data, such as the number of successful certifications, how and where unions spend money and the success rate of collective agreements in certain areas.
Amazon used these techniques when trying to avoid unionisation efforts at its Whole Foods brand.
Saula ended her presentation on a positive note by mentioning the WeClock app, which tracks information such as work done outside regular work hours i.e., unpaid work.
"Overall, in studies measuring the social utility of organizing and union density, life satisfaction is directly related to the level of unionization in a country," said Saula. "Union members report higher life satisfaction than non-union members and in countries with unions, there is more equity, fairness and justice- all key elements to happiness and satisfaction."
In ending her presentation, Saula said the best way to continue with the great work unions do is to "Educate, Agitate, Organise". Delegates energetically repeated the three words after her.


whose name matches the argument specified. It is an error if this property is not an inherited property.
Function: numeric label-end()
The label-end function returns the calculated label-end value for lists. See the definition of the provisional-label-separation property.
Function: numeric body-start()
The body-start function returns the calculated body-start value for lists. See the definition of the provisional-distance-between-starts property.
NOTE:
When this function is used outside of a list, it still returns a calculated value as specified.
Function: object from-parent( NCName)
The from-parent function returns a computed value of the property whose name matches the argument specified. The value returned is that for the parent of the formatting object for which the expression is evaluated. If there is no parent, the value returned is the initial value. If the argument specifies a shorthand property and if the expression only consists of the from-parent function with an argument matching the property being computed, it is interpreted as an expansion of the shorthand with each property into which the shorthand expands; each having a value of from-parent with an argument matching the property. It is an error if arguments matching a shorthand property are used in any other way.
Function: object from-nearest-specified-value( NCName)
The from-nearest-specified-value function returns a computed value of the property whose name matches the argument specified. The value returned is that for the closest ancestor of the formatting object for which the expression is evaluated on which there is an assignment of the property in the xml result tree in the fo namespace. If there is no such ancestor, the value returned is the initial value. If the argument specifies a shorthand property and if the expression only consists of the from-nearest-specified-value function with an argument matching the property being computed, it is interpreted as an expansion of the shorthand with each property into which the shorthand expands; each having a value of from-nearest-specified-value with an argument matching the property. It is an error if arguments matching a shorthand property are used in any other way.
Function: object from-table-column( NCName)
The from-table-column function returns the inherited value of the property whose name matches the argument specified, from the fo:table-column whose column-number matches the column for which this expression is evaluated and whose number-columns-spanned also matches any span. If there is no match for the number-columns-spanned, it is matched against a span of 1. If there is still no match, the initial value is returned. It is an error to use this function on formatting objects that are not an fo:table-cell or its descendants.
Function: numeric proportional-column-width( numeric)
The proportional-column-width function returns proportional factor (the argument) units of proportional measure. The column widths are first determined ignoring the proportional measures. The difference between the table-width and the sum of the column widths is the available proportional width. One unit of proportional measure is the available proportional width divided by the sum of the proportional factors. It is an error to use this function on formatting objects other than an fo:table-column. It is also an error to use this function if the fixed table layout is not used.
Function: object merge-property-values( NCName)
The merge-property-values function returns a value of the property whose name matches the argument. The value returned is the specified value on the last fo:multi-property-set, of the parent fo:multi-properties, that applies to the User Agent state. If there is no such value, the computed value of the parent fo:multi-properties is returned.
NOTE:
The test for applicability of a User Agent state is specified using the "active-state" property.
It is an error to use this function on formatting objects other than an fo:wrapper that is the child of an fo:multi-properties.
5.10 Property Datatypes
Certain property values are described in terms of compound datatypes, in terms of restrictions on permitted number values, or strings with particular semantics.
The compound datatypes, such as space, are represented in the result tree as multiple attributes. The names of these attributes consist of the property name, followed by a period, followed by the component name. For example a the "space-before" property may be specified as:
space-before.minimum="2.0pt"
space-before.optimum="3.0pt"
space-before.maximum="4.0pt"
space-before.precedence="0"
space-before.conditionality="discard"
A short form of compound value specification may be used, in cases where the datatype has some numeric components. Such a specification consists of giving a numeric value to an attribute with a name matching a property name. Such a specification gives that value to each of the numeric components and the initial value to all the non-numeric components. For example:
space-before="4.0pt"
is equivalent to a specification of
space-before.minimum="4.0pt"
space-before.optimum="4.0pt"
space-before.maximum="4.0pt"
space-before.precedence="0"
space-before.conditionality="discard"
Short forms may be used together with complete forms; the complete forms having precedence over the expansion of a short form. For example:
space-before="4.0pt"
space-before.maximum="6.0pt"
is equivalent to a specification of
space-before.minimum="4.0pt"
space-before.optimum="4.0pt"
space-before.maximum="6.0pt"
space-before.precedence="0"
space-before.conditionality="discard"
Compound values of properties are inherited as a unit and not as individual components.
The following datatypes are defined:
<integer>
A signed integer value which consists of an optional '+' or '-' character followed by a sequence of digits. A property may define additional constraints on the value.
<number>
A signed real number which consists of an optional '+' or '-' character followed by a sequence of digits followed by an optional '.' character and sequence of digits. A property may define additional constraints on the value.
<length>
A signed length value where a 'length' is a real number plus a unit qualification. A property may define additional constraints on the value.
<length-range>
A compound datatype, with components: minimum, optimum, maximum. Each component is a <length>. A property may define additional constraints on the values.
<length-conditional>
A compound datatype, with components: length, conditionality. The length component is a <length>. The conditionality component is either "discard" or "retain". A property may define additional constraints on the values.
<length-bp-ip-direction>
A compound datatype, with components: block-progression-direction, and inline-progression-direction. Each component is a <length>. A property may define additional constraints on the values.
<space>
A compound datatype, with components: minimum, optimum, maximum, precedence, and conditionality. The minimum, optimum, and maximum components are <length>s. The precedence component is either "force" or an <integer>. The conditionality component is either "discard" or "retain".
<keep>
A compound datatype, with components: within-line, within-column, and within-page. The value of each component is either "auto", "always", or an <integer>.
<angle>
An <integer> representing an angle.
<percentage>
A signed real percentage which consists of an optional '+' or '-' character followed by a sequence of digits followed by an optional '.' character and sequence of digits followed by '%'. A property may define additional constraints on the value.
<character>
A single Unicode character.
<string>
A sequence of characters.
<name>
A string of characters representing a name. It must not contain any whitespace, or space characters.
<family-name>
A string of characters identifying a font.
<color>
Either a string of characters representing a keyword or a color function defined in [5.9.2 Color Functions]. The list of keyword color names is: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, and yellow.
<country>
A string of characters conforming to an ISO 3166 country code.
<language>
A string of characters conforming to the ISO 639 3-letter code.
<script>
A string of characters conforming to an ISO 15924 script code.
<id>
A string of characters conforming to the XML NMTOKEN definition that is unique within the stylesheet.
<idref>
A string of characters conforming to the XML NMTOKEN definition that matches an ID property value used within the stylesheet.
<uri>
A sequence of characters conforming to a URI value as specified in the URI specification.
<uri-reference>
A sequence of characters conforming to a "URI-reference" as defined in RFC 2396.
6 Formatting Objects
6.1 Introduction to Formatting Objects
The


text:
OPINION: Drug drivers under watch
IT IS timely for us all to take note that the Queensland Police Service is now conducting roadside drug driving testing.
Below is an extract taken from its web page on the drug testing process:
What is the testing process?
You will undergo a simple and painless preliminary saliva test (screening test) which will take three to five minutes. If a negative result is returned you will be free to go. If a positive result (drug detected) is returned you will be taken to a police vehicle for a second saliva test.
If the second saliva test is positive for drugs, your driver licence will be suspended for 24 hours and the remainder of the saliva sample will be sent for laboratory analysis. Following a positive laboratory result, motorists will be notified and charged with a traffic offence for drug driving. If you are unable to provide a saliva sample you will be required to provide a specimen of blood for analysis.
What level of drugs can be detected without penalty?
There will be zero tolerance. Any trace of the nominated drugs in your system and you can be penalised.
What are the penalties?
A first offence carries a penalty of up to $1593 and you could be disqualified from driving for up to three months. Any subsequent offences can carry higher penalties and driver licence suspensions prior to appearances in court.
It is also worth noting that unlike alcohol, which is metabolized by your body relatively quickly, drugs stay in detectable levels within your system for much longer periods.
Weeks in some cases.
This along with zero tolerance spells disaster for your licence if you are stupid enough to use drugs and drive.
If you still stupidly think using drugs is something you want to do, then maybe you need to factor in not driving for a couple of months until it's out of your system.... sooner or later you will be caught. If you are caught, there goes your licence, your insurance and if you kill or maim somebody in the process you will have a holiday at taxpayers' expense.


Planet of Geniuses
Planet of Geniuses
Broadcast: 0th November 19xx
Starring: John Campbell Jr
Added: Feb 21 2004
The term genius is fairly common in our language today. I wonder how many of you realise that the term originated with the old Arabian Knight's concept of the Genie, the magical creature that came in a bottle and had such wonderful powers. Laboratory scientists have as much fun as anybody else you know. One of the laboratory laws goes "In any laboratory experiment if something can go wrong it will". For this is a story about a planet size laboratory experiment in which something could go wrong…


Explore BrainMass
Business math key concepts
Business Math: discuss how the course has affected you in your professional and personal life, as well encouraging academic success.
Solution Preview
I will discuss key business math concepts such as time value of money, present value, opportunity cost etc.
The basic idea of time value of money is that a dollar today is worth more than a dollar tomorrow. (finance professor, 2009) The investor has time preference of money because he can reinvest the funds, which are received early and can earn additional money. Present value, is the future value being discounted by the rate of interest. This concept is important because the major financial objective of the organization "Wealth maximization" is based on present value concept. Wealth maximization is preferable to profit maximization as it is based on cash flow which is unambiguous and considers time value of money and risk.
Opportunity cost
As per net mba, Opportunity cost is based on what must be given up (the next best alternative) as a result of the decision. Any decision that involves a choice between two or more options has an opportunity cost. Hence opportunity cost is the cost of foregone choice. Example of Opportunity...
Solution Summary
Response discusses business math key concepts


text:
Tailings storage facilities (TSFs) and embankment dams play a vital role in the mining and infrastructure sectors, serving as impoundments for the storage of waste materials and water, respectively. The seepage of water through these structures presents a significant stability challenge, with potential geotechnical, environmental and safety implications. Traditionally, seepage monitoring methods have primarily relied on groundwater monitoring wells, piezometers and downstream weirs/flumes. However, temperature cables, while not commonly deployed for seepage monitoring, offer a promising solution. In this blog post, we will explore how temperature data from these cables can serve as a valuable tool for monitoring seepage in tailings storage facilities and embankment dams, providing a more cost-effective and efficient approach.
Tailings dams are reservoirs used to store waste materials generated from mining activities, such as rock fragments, which have often been crushed into sand and fine grained particle sizes, and liquid discharge. While these dams serve a crucial purpose in managing waste, the seepage of liquids can lead to geotechnical instability of these structures and can pose a significant environmental risk if contaminated fluids seep into the surrounding area. According to the latest statistics, approximately 3,500 tailings dam facilities exist globally, with a substantial number displaying signs of seepage issues. In fact, a recent report indicated that more than 10% of active tailings dams have experienced concerning levels of seepage, leading to potential contamination of nearby water sources (Piciullo, et. al., 2022). These alarming figures call for immediate action and emphasize the need for effective monitoring systems.
Understanding Dam Seepage
Understanding the dynamics of tailings dam seepage begins with acknowledging the seasonal temperature variations within impounded water in tailings ponds or reservoirs. As water permeates through the dam, it carries the temperature signature of the reservoir, providing a unique opportunity for monitoring using temperature cables. Detecting changes in seepage is vital for safeguarding dam safety and environmental integrity, as any breaches can result in severe downstream consequences, including fatalities, infrastructure loss, water source contamination and habitat destruction. It's important to recognize that seepage, inherent in all dams, must be carefully managed to control both its velocity and quantity. Seepage can manifest anywhere on the downstream face, beyond the toe, or on the downstream abutments (EGLE, n.d.).
According to a study by Yun, Butler, and MacQuarie (2023), 'Seasonal subsurface temperature monitoring, which exploits the fact that increased seepage flow may locally alter the temperature distribution, is a useful approach for leakage monitoring and evaluation within embankment dams and their foundations' (p. 1).
Therefore, leveraging temperature data to detect and model seepage is crucial for ensuring the long-term sustainability and safety of tailings storage facilities and embankment dams.
Using Temperature Cables for Seepage Monitoring
Temperature cables serve as a sophisticated tool for monitoring seepage in TSFs and embankment dams, leveraging their unique capabilities to detect subtle changes in temperature. These cables typically consist of multiple thermistors distributed along their length, allowing for precise measurement of temperature variations. The installation process of temperature cables within dams varies depending on the construction phase. During initial construction, horizontal installation is integrated into the dam structure, providing continuous monitoring capabilities from the outset. For existing dams, temperature cables can be retrofitted into abandoned standpipes or inclinometer casings, or buried horizontally along the toe, avoiding the need for extensive drilling. This retrofitting approach minimizes disruption to the existing infrastructure while enhancing the dam's monitoring capabilities. The aim is to create a grid of temperature sensors within the dam to detect spatial temperature changes due to water flow (See Fig. 1).
The significance of capturing spatial variability of seepage cannot be overstated, as it provides critical insights into the integrity of the dam structure. By strategically placing multiple thermistors along each cable, engineers can monitor seepage changes and patterns with precision, enabling thermal modeling of the structure and leading to proactive intervention when necessary. Additionally, recording reservoir temperature serves as a vital reference point for comparing temperature variations within the dam. This comprehensive approach to temperature cable installation and monitoring facilitates efficient and cost-effective seepage detection, ensuring the continued safety and stability of TSFs and embankment dams.
Digital Temperature Cables (DTCs) vs Distributed Fiber Optic Systems (DFOS)
According to the Canadian Dam Association's webinar1 on Detection of Seepage through Dams/Abutments using Non-Destructive Investigation Techniques (2023), Digital Temperature Cables (DTCs) and Distributed Fiber Optic Systems (DFOS) stand as two prominent methods for temperature monitoring in dam seepage detection. DFOS, although sporadically implemented in practice and more prevalent in the literature, is commonly utilized in Swedish dams. It provides extensive coverage, featuring fiber optic sensor cables that span several kilometers and offer continuous measurements along their length. DTCs instead provide a practical alternative with distinct advantages. beadedstream's DTCs, for instance, utilize 1-wire technology, enabling up to 125 discrete, digitally addressable sensors on a single cable (with user defined spacing), all powered and transmitting data through the same set of 3 conductors (See Fig. 2). This innovative design allows for tight, although not continuous, measurements of temperature of lengths of up to 750m.
DTCs can be connected to simple geotechnical data loggers, including the same or similar models already in use to read other dam instrumentation such as VW piezometers, in-place inclinometers and SAA's, for a seamless monitoring experience. DFOS, on the other hand, requires an interrogator to monitor the cables which can be cost prohibitive for many projects. The data output from a DTC is a simple array of temperature data in °c or °f, while DFOS requires specialized data interpretation of the raw output to result in temperature readings.
Despite DFOS's continuous monitoring advantages, it comes with certain complexities, including costly installations, intricate data processing, and advanced technological understanding requirements. Conversely, temperature cables present a simpler and more cost-effective solution, enabling straightforward installations and integration at any phase of the project (Mohamed, et. al., 2021). This makes them particularly advantageous for dam seepage monitoring, where the ability to detect subtle temperature changes with precision is paramount for early intervention and mitigation.
Monitoring Seepage with Temperature Data
Monitoring seepage with temperature data involves a meticulous process that utilizes the capabilities of digital temperature cables to measure seasonal variations as water permeates through the dam structure. Equipped with multiple sensor points at regular intervals, these cables accurately capture temperature fluctuations, providing insights into the movement of impounded water within the dam. These fluctuations include spatial and temporal changes. By monitoring these variations over time, engineers can detect subtle changes indicative of seepage, facilitating early intervention and mitigation measures to uphold dam integrity and environmental safety.
One crucial aspect of temperature-based seepage monitoring involves analyzing the time offset between temperature readings within the dam and those recorded in the reservoir. The temperature in the reservoir changes seasonally, depending on the location's climate, and the water seeping through the dam carries this seasonal temperature to the location of the temperature sensors. Monitoring this time offset from the reservoir to each sensor, to establish a baseline, allows engineers to observe changes from this standard.
Maximizing the Value of Thermal Data
Harnessing the insights gained from temperature-based seepage monitoring, engineers and consultants can take proactive steps to ensure the structural integrity and safety of embankment dams. By employing advanced numerical modeling techniques, such as finite element methods, they can delve into the complexities of thermal behavior within the dam body. These models enable the simulation of heat conduction, advection, and dispersion, providing a comprehensive understanding of seepage dynamics (Yousefi, et. al, 2013). Armed with this knowledge, engineers can estimate quantities of seepage flow rates and predict potential leakage, crucial for assessing dam safety.
Furthermore, engineers can leverage the power of thermal data to optimize monitoring strategies. By analyzing temperature fluctuations over time, they can detect subtle variations indicative of seepage, facilitating early intervention and mitigation measures. Monitoring the time offset between temperature readings within the dam and those in the reservoir allows for real-time assessment, promptly identifying potential issues. Moreover, observing temperature changes within specific areas of the dam provides valuable insights into flow patterns and potential breach points, enabling targeted interventions to address seepage effectively. Through the strategic utilization of thermal data and advanced modeling techniques, engineers can proactively safeguard dam infrastructure and environmental integrity.
Taking Action Based on Monitoring Data
Timely intervention is paramount in mitigating the risks associated with seepage. Engineers interpret temperature data rigorously, implementing tailored mitigation strategies to address identified issues promptly. These strategies may encompass reinforcing dam structures, adjusting operational procedures, or augmenting monitoring measures to bolster the facility's resilience against seepage-related risks. The proactive use of temperature data empowers decision-makers to safeguard critical infrastructure and surrounding ecosystems from potential harm.
In conclusion, the utilization of temperature cables offers a cost-effective and efficient solution for seepage monitoring in TSFs and embankment dams. When combined with complementary monitoring instruments and systems, such as piezometers and remote sensing technologies, temperature-based monitoring methods provide a holistic approach to assessing dam integrity and mitigating risks effectively. beadedstream stands at the forefront of this innovative landscape, offering digital temperature cables, data loggers, and the capability to seamlessly connect to major 3rd party data loggers already in use in many tailings and embankment dams. Additionally, beadedstream provides a cloud-based temperature


State of Somaliland
From Wikipedia, the free encyclopedia
Jump to: navigation, search
State of Somaliland
Independent state
Location of the State of Somaliland.
Capital Hargeisa
Languages Somali
Religion Islam
Political structure Independent state
Prime Minister Muhammad Haji Ibrahim Egal[1]
 - Independence from the United Kingdom June 26, 1960
 - Unification with the Trust Territory of Somaliland to form the Somali Republic July 1, 1960
Currency Somali shilling
The State of Somaliland was a short-lived independent state in the territory of present-day northwestern Somalia.[1] It was the name assumed by the former British Somaliland protectorate in the five days between independence from the United Kingdom on 26 June 1960 and union with the Trust Territory of Somaliland which was under Italian administration on 1 July 1960 to form the Somali Republic.
In May 1960, the British government stated that it would be prepared to grant independence to the then protectorate of British Somaliland, with the intention that the territory would unite with the Italian-administered Trust Territory of Somaliland under Italian Administration (the former Italian Somaliland). The Legislative Council of British Somaliland passed a resolution in April 1960 requesting independence and union with the Trust Territory of Somaliland, which was scheduled to gain independence on July 1 that year. The legislative councils of both territories agreed to this proposal following a joint conference in Mogadishu.[2]
On June 26, 1960, the former British Somaliland protectorate briefly obtained independence as the State of Somaliland, with the Trust Territory of Somaliland following suit five days later.[3][4] The following day, on June 27, 1960, the newly convened Somaliland Legislative Assembly approved a bill that would formally allow for the union of the State of Somaliland with the Trust Territory of Somaliland on July 1, 1960.[2]
According to the Chinese government, all state activity in the Somali territories during this five day transitional period was geared toward preparing to unify the two partitioned Somalilands, as had previously been negotiated.[5] Muhammad Haji Ibrahim Egal, who had previously served as an unofficial member of the former British Somaliland protectorate's Executive Council and the Leader of Government Business in the Legislative Council, became the Prime Minister of the State of Somaliland during its brief period of independence until the union with the Trust Territory of Somaliland.[6]
On July 1, 1960, five days after the former British Somaliland protectorate obtained independence as the State of Somaliland, the territory united as scheduled with the Trust Territory of Somaliland to form the Somali Republic (Somalia).[3][4]
A government was formed by Abdullahi Issa, with Haji Bashir Ismail Yusuf as President of the Somali National Assembly, Aden Abdullah Osman Daar as President and Abdirashid Ali Shermarke as Prime Minister, later to become President (from 1967–1969). On July 20, 1961 and through a popular referendum, the people of Somalia ratified a new constitution, which had been first drafted in 1960.[7] 90.59% of voters (1,760,540) voted in favor of the constitution.[8]
Republic of Somaliland[edit]
The Republic of Somaliland is a self-declared sovereign state that is regarded as an autonomous region of Somalia by the international community.[9][10][11] Established in 1991, its government regards the territory as the successor state to the State of Somaliland,[12][13] and seeks self-determination under the name Republic of Somaliland.[14][15][16]
The administration the self-declared Republic of Somaliland claims that 35 countries diplomatically recognised a State of Somaliland during the five-day period of independence between 26 June and 1 July 1960, including all five permanent members of the United Nations Security Council (the Republic of China, the French Republic, the Union of Soviet Socialist Republics, the United Kingdom of Great Britain and Northern Ireland, and the United States of America).[17] The Northern Somali Unionist Movement, a unionist group hailing from the northwestern region of Somalia coextensive with the former British Somaliland protectorate, disputes this claim; it asserts that no such records exist and that these nations instead only diplomatically recognized the Somali Republic (Somalia) as a whole.[18] Additionally, the US Department of State indicates in its Document 62 that the United States did not extend formal recognition to a state of Somaliland in 1960, as the enclave's brief independence from Britain was intended to allow it to unite with the Trust Territory of Somaliland a few days later. Secretary of State Christian Herter instead sent a congratulatory message to the Somaliland Council of Ministers on June 26, 1960.[19] Upon union of the two Somalilands, the United States recognized the Somali Republic on July 1, 1960, in a congratulatory message from US President Dwight D. Eisenhower to President of Somalia Aden Abdullah Osman Daar.[20] In 2007, the Government of China issued an affidavit on behalf of the Somali Republic at the International Court of Justice, which similarly indicates that the international community recognized the Somali Republic when it was accepted into the United Nations on September 20, 1960. The Chinese government therein also notes that the sole purpose of gaining independence from Britain was to unite the former British Somaliland and Italian Somaliland territories.[5]
 1. ^ a b Somalia - British Somaliland and Somaliland
 2. ^ a b
 3. ^ a b Somalia
 4. ^ a b Encyclopædia Britannica, The New Encyclopædia Britannica, (Encyclopædia Britannica: 2002), p.835
 5. ^ a b "MEMORIAL SUBMITTED BY THE EXPERT, PEOPLE'S REPUBLIC OF CHINA" (PDF). Expert from the People's Republic of China. Retrieved 1 April 2015.
 6. ^ Paolo Contini, The Somali Republic: an experiment in legal integration, (Routledge, 1969), p.6.
 8. ^ "20 June 1961 Constitutional Referendum". African Election Database. Retrieved 1 April 2015.
 9. ^ Lacey, Marc (2006-06-05). "The Signs Say Somaliland, but the World Says Somalia". New York Times. Retrieved 2010-02-02.
 10. ^ "The Transitional Federal Charter of the Somali Republic" (PDF). University of Pretoria. 2004-02-01. Retrieved 2010-02-02. "The Somali Republic shall have the following boundaries. (a) North; Gulf of Aden. (b) North West; Djibouti. (c) West; Ethiopia. (d) South south-west; Kenya. (e) East; Indian Ocean."
 11. ^ UN in Action: Reforming Somaliland's Judiciary
 12. ^ "Somaliland Marks Independence After 73 Years of British Rule" (fee required). The New York Times. 1960-06-26. p. 6. Retrieved 2008-06-20.
 13. ^ "How Britain said farewell to its Empire". BBC News. 2010-07-23.
 14. ^ "Country Profile". Government of Somaliland. Retrieved 2010-02-02.
 15. ^ Schoiswohl, Michael (2004). Status and (Human Rights) Obligations of Non-Recognized De Facto Regimes in International Law. University of Michigan: Martinus Nijhoff Publishers. p. 351. ISBN 978-90-04-13655-7.
 16. ^ "Regions and Territories: Somaliland". BBC News. 2009-09-25. Retrieved 2010-02-02.
 17. ^ "Somaliland: An Oasis of Stability Makes Its Case for Independence". Halbeegnews. Retrieved 1 April 2015.
 18. ^ "The Consequences of Somaliland's International Recognition" (PDF). Northern Somali Unionist Movement. Retrieved 1 April 2015.
 19. ^ Office of the Historian, Bureau of Public Affairs, United States Department of State. "Foreign Relations of the United States, 1958–1960 Volume XIV, Africa, Document 62". US Department of State. Retrieved 1 April 2015.
 20. ^ Office of the Historian, Bureau of Public Affairs, United States Department of State. "A Guide to the United States' History of Recognition, Diplomatic, and Consular Relations, by Country, since 1776: Somalia". US Department of State. Retrieved 1 April 2015.
External links[edit]


frankdenneman Frank Denneman is a Chief Technologist at VMware, primarily focusing on Machine Learning technology. He is an author of the vSphere host and clustering deep dive series, podcast host for the Unexplored Territory podcast, and you can follow him on Twitter @frankdenneman.
Calculating the bandwidth usage and duration of a vMotion process?
2 min read
Every once in a while I get the question if I have a calculator that can determine the lead-time and the bandwidth consumption of a vMotion process. Unfortunately I haven't got such a calculator, as there isn't an easy way to calculate the consumed bandwidth and the duration of a vMotion process.
CPU
vMotion tries to move the used memory blocks as fast as possible. vMotion uses all the available bandwidth depending on the available CPU speed and bandwidth. Depending on the detected line speed, vMotion reserves an X amount of CPU speed at the start of a vMotion process. vMotion computes its desired host vMotion CPU reservation. For every 1GBe vMotion link speed it detects vMotion in vSphere 5.1 reserved 10% of a CPU core with a minimum desired CPU reservation of 30%. This means that if you use a single 1GBe, vMotion reserves 30% of a core, if you use 4 x 1GBe connections, that means vMotion reserves 40% of a core. A 10GBe link is special as vMotion reserves 100% of a single core.
vMotion creates a (system) resource pool and sets the appropriate CPU reservation on the resource pool. It's important to note that this is being done to the vMotion resource pool, which means that the reservation is shared across all vMotions happening on the host.
vMotion system Resource Pool
Warning: DO NOT CHANGE the default settings of the system vMotion resource pool. This is set dynamically by the kernel depending on its memory state, manually adjusting this setting will likely hurt performance. Please do not attempt to be smarter then the kernel, many have tried, very few have succeeded.
DRS
When DRS is enabled, it can decide to migrate virtual machines as well. It might happen that this occurs at the same time your vMotion process is running. All vMotions will be placed into the vMotion resource pool contesting for the resources acquired by the resource pool of vMotion. If high priority for the manual vMotion is selected (User interface uses the term: Reserve CPU for optimal vMotion performance) then the vMotion process receives a higher priority within the vMotion resource pool. In which case the high priority vMotion will have double the relative CPU shares, and as a result probably complete more quickly than their lower priority counterparts. However it still need to share the resources claimed by the vMotion resource pool. Although it has a higher priority over DRS vMotions, sharing resources still may have an effect on the duration of the vMotion process.
Memory
vMotion copies only the used memory blocks, a virtual machine doesn't always have to use all of its memory. Therefor its not easy to determine the required bandwidth. To make it more complex, as we are migrating a live virtual machine, the virtual machine can dirty (re-use) memory blocks that are already copied over, those blocks have to be sent again. Prolonging the duration of the process and the used bandwidth.
Swap file
If the swap file is located on a non-shared datastore and pages has been stored in the swap file, those pages are copied over to the new swap file on a location accessible by the destination host. This will increase the demand for bandwidth and increases the duration of the vMotion process. For more information about the impact of non-shared swap files, please read the following articles: (Alternative) VM swap file locations Q&A and (Alternative) VM swap file locations Q&A – part 2.
Conclusion
As you can see, it's very difficult to determine the duration of a vMotion process and the actual bandwidth it consumes.
frankdenneman Frank Denneman is a Chief Technologist at VMware, primarily focusing on Machine Learning technology. He is an author of the vSphere host and clustering deep dive series, podcast host for the Unexplored Territory podcast, and you can follow him on Twitter @frankdenneman.
Help Us Make vMotion Even Better
The vMotion product team is looking for input on how to improve vMotion. vMotion has proven to be a paradigm shift of datacenter management....
frankdenneman
21 sec read
Disable vMotion for a single VM
This question pops up regularly on the VMTN forums and reddit. It's a viable question but the admins who request this feature usually don't...
frankdenneman
1 min read
vSphere 5.1 update 1 release fixes Storage vMotion rename…
vSphere 5.1 update 1 is released today which contains several updates and bug fixes for both ESXi and vCenter Server 5.1. This release contains...
frankdenneman
29 sec read


text:
Cool roofs can mitigate cooling energy demand for informal settlement dwellers
On This Page
Related YSE Profiles
Cities are critical to meeting our sustainable energy goals. Informal settlement redevelopment programs represent an opportunity to improve living conditions and curb increasing demand for active cooling. We introduce an energy modeling framework for informal settlements to investigate how building design decisions influence the onset of heat stress and energy-intensive cooling demand. We show that occupants of tropically-located informal settlements are most vulnerable to prolonged heat stress year-round. Up to 98% of annual heat stress exposure can be mitigated by improving the building envelope. We find a universal solution (cool roofs) that reduces up to 91% of annual heat stress exposure. Finally, we show how proposed redevelopment building schemes could worsen thermal conditions of dwellers and further increase urban energy demand. Our results underscore how building design affects human well-being and highlight potential near-term and long-term pathways for reducing energy-intensive cooling demand for 800+ million informal settlement dwellers worldwide.


text:
Excessive gassing is the immediate consequence of overcharging a battery (source). One way to overcharge your lawnmower battery is by leaving it connected to the charger for an extended period—like overnight. However, due to the emergence of smart chargers that stop charging when they reach the correct voltage, you may want to know if it's safe to charge your lawnmower battery overnight.
Charging a lawnmower battery overnight is unsafe when using a regular charger. It can overcharge your battery, risking excessive heating, sulfation, and gas venting. However, using smart trickle chargers with 6 or 12-volt settings is safer. These chargers detect when they attain the correct battery voltage—and stop charging.
In the rest of this article, I'll explain the consequences of overcharging your lawnmower's battery. I'll also discuss what to consider if you want to charge your lawn mower battery overnight. Let's get started!
Why Is It Unsafe To Charge a Lawnmower Battery Overnight?
The cost of a quality lawn mower battery is often more than $200. You don't want to incur unnecessary charges by simply overcharging your lawnmower's battery. Leaving a lawnmower charging overnight may have more consequences than just economic—let's explore these potential issues below!
Overcharging Creates Excessive Heat
At one point, you might have touched a charging battery and realized it was warm. When you charge a battery, chemical reactions occur in the cells, releasing heat as the by-product.
Both lithium-ion and lead-acid batteries are susceptible to heating. However, the battery experiences a thermal runaway when the chemical reactions that release heat occur at an accelerated rate (source). Thermal runaway is dangerous when the heat generated within the battery due to overcharging exceeds the heat dissipated to the surrounding.
Thermal runaway causes the battery to break down, reducing its ability to store charge. It's riskier in lead-acid batteries as it causes the vaporization of the internal water mixed with sulfuric acid, causing internal pressurization.
Overcharging Can Lead to Sulfation
Battery sulfation refers to the lead sulfate crystals that form on the battery's plates when it remains discharged for too long or you overcharge the battery.
Sulfation is a significant problem in lead-acid batteries because it reduces their capacity to store charge.
Although you can reverse battery sulfation, it's pretty challenging, and in most cases, you'll have to replace the battery.
Therefore, you should not overcharge your lawnmower's battery to prevent costly repairs or replacements.
Overcharged Batteries May Vent Gas
When you overcharge a lead-acid battery, the electrolyte breaks down to produce water and gas (hydrogen). The recombination of these gasses happens inside the battery, but some of the gas escapes through the vent holes.
Lithium-ion battery cells are also exposed to gassing when overcharged. The gas produced is explosive and can be a fire hazard if it accumulates in an enclosed space.
Moreover, battery gassing can release a poisonous hydrogen sulfide gas. This gas can be fatal if you inhale it in concentrated doses.
Leaking, Bulging, or Melting Batteries
As already discussed, overcharging a battery causes gases, internal component damage, and excess heat. These effects are catastrophic to the battery when combined. They cause the battery to leak, bulge, or melt.
A leaking battery exposes you and your environment to the corrosive and poisonous electrolyte. On the other hand, a bulging battery is a sign of an imminent explosion, while a melting one can catch fire. Therefore, it is best to ensure that your mower's battery is not over or undercharged.
What To Consider if Charging a Lawnmower Battery Overnight
We all know the annoyance of a dead lawn mower battery. One way to avoid this is by charging the battery overnight so you wake up to a fully-charged battery to start mowing.
However, your lawnmower's battery requires proper maintenance if you want to extend its lifespan. One way to keep that battery safe is by not overcharging it. Therefore, here are some factors you should consider before charging your lawnmower's battery overnight to prevent overcharging:
The Type of Lawnmower Charger
The charger you use is the number one consideration. Regular/standard battery chargers send a constant voltage to the battery until it's fully charged. The problem with these chargers is that they don't shut off when the battery is full. As a result, they overcharge and damage the battery.
Since the night is always longer (depending on when you plug the battery into the charger), using a standard charger is catastrophic for your lawnmower's battery. The battery will overcharge and suffer the consequences.
On the other hand, smart trickle chargers have an inbuilt mechanism that shuts off when the battery reaches its full charge (source).
Smart trickle chargers are either six or 12-volt, depending on your battery's capacity voltage. These chargers charge the battery at its self-discharge rate and stop charging when it reaches the six or 12-volt charge.
Using a smart trickle charger (link to Amazon) is essential because it not only prolongs your battery's lifespan but also protects it from overcharging.
The Type of Lawnmower Battery
Lawnmowers use three types of batteries:
- Lead acid batteries
- Lithium-ion batteries
- Lithium-ion phosphate batteries
Lithium-ion batteries are very susceptible to overcharging. These batteries often overcharge since they are not efficient in maintaining an identical state of charge (SOC) for all cells (source).
On the other hand, lead-acid batteries are pretty resistant to overcharging. However, they are not as efficient as lithium-ion in holding the charge.
Based on the above consideration, charging a lithium-ion lawn mower battery overnight is dangerous. The battery will overcharge, and you may wake up to a damaged battery. Therefore, it's safer to charge a lead acid battery overnight than a lithium-ion one.
The Lawnmower Battery Condition
It would be best also to consider the condition of your lawnmower's battery before you charge it overnight. A new or well-conditioned battery doesn't need an overnight charge because it can attain a full charge quickly.
On the other hand, if your battery is old or in poor condition, it may need an extended charging time, like overnight, to achieve a full charge. In this case, you can use a standard charger because the risk of overcharging is low. The key is to monitor the charging process closely to prevent overcharging.
It's evident from the above discussion that overcharging any lawnmower battery is dangerous. It's, therefore, essential to have a keen understanding of your battery and how to charge it safely.
You should not hesitate to seek professional help from qualified personnel if unsure about anything. Professionals will guide you on the best way to go about it without causing any damage. Remember, your safety comes first!


Dipper Pines
Use the video and step-by-step drawing instructions below to learn how to draw Dipper Pines from Disney Channel's Gravity Falls. A new drawing tutorial is uploaded every week, so stay tooned!
Draw Dipper Pines Step 1
Step 1: Start by drawing a circle near the top half of the page. It doesn't have to be perfect. It's just a guide for Dipper Pines' head.
Draw Dipper Pines Step 2
Step 2: Next, draw two intersecting lines across the circle, one vertical and one horizontal. Bend the lines so that they contour to the shape. These will be construction lines that will help you place Dipper Pines' facial features later on.
Draw Dipper Pines Step 3
Step 3: Draw two small circles sitting on top of the horizontal construction line as guides for Dipper Pines' eyes. The circles should be on either side of the vertical construction line.
Draw Dipper Pines Step 4
Step 4: Below Dipper Pines' eyes, where the two construction lines intersect, draw a tiny oval as a guide for his nose. On the left side of the head, where the horizontal construction line starts, draw a C-shaped line as a guide fore Dipper Pines' ear.
Draw Dipper Pines Step 5
Step 5: Draw a big arc on top of Dipper Pines' head as a guide for the top of his cap. The arc starts on top of the ear and ends on the top right side of the head. Then draw a smaller, thinner arc to the right of that to create a guide for the bill portion of Dipper Pines' cap.
Joomla templates by a4joomla


Skagway, Alaska city officials decided to create their own system for identifying personnel and village citizens. Photo cards identify police officers, fire department personnel, city chauffeurs, senior citizens, bicycle licenses and more in the Alaskan port city.
The city of Skagway, Alaska served as a gateway to the Gold Rush in 1898, and is today a popular port destination for cruise ships. Skagway may be a relatively small city with a population of 890, but security is still a priority for its government agencies. That's why city officials chose a card printer to create identification badges.
The photo identification cards are also used to identify Skagway's senior citizens, who do not have to pay sales tax on food items at the local grocery store. The card is designed to set those over the appropriate age to be identified and not charged the sales tax. The ID card system has simplified the identification process.
"We use the printer to create identification cards for police officers, fire department personnel and other city employees," said Sheryl Gladden, police clerk for the Skagway Police Department. "All the people who drive tour vehicles that are not considered by state standards to be commercial vehicles need city-issued chaffeur permits as well."
Bicycle Rodeo Puts Printer to Test
One of the Skagway Police Department's favorite community events is the Annual Bicycle Rodeo, which Gladden describes as basically a fun bicycle safety class.
"All the kids bring their bikes to the rodeo and have them checked by bicycle mechanics," Gladden explained. "The bikes have lights and reflectors installed if they don't already have them, and are checked thoroughly for any other issues such as loose chains and proper fit. Then they are repaired if needed."
The children are then issued a helmet and proceed to an obstacle course that is similar to a driver education course, but set up for bicycles. Two bicycle patrol officers teach the children about safety issues and test them out on the course. Once they have finished, they are issued a bicycle license.
"Afterwards, they go out in groups with an adult leading on the real road and practice the things they learned on the course," Gladden explained. "Then they all meet at a designated spot for a barbecue, and after that to the local ice cream shop. If they show their bicycle license at the ice cream shop, they get a free ice cream cone."
The bicycle rodeo doesn't just put children to the test; it also tests the Zebra P420i printer to see that it is up for the challenge of rapid ID printing.
"The Bicycle Rodeo cards all have to be made in a short amount of time," Gladden said. "We hook the printer up to a laptop and one person takes pictures while I work the Alpha Card program and print the cards. The kids love watching the whole process."
The Skagway Police Department issued about 55 cards in less than two hours at its most recent Bicycle Rodeo. Even parents wanted their own bicycle licenses, Gladden said.
Overall, Gladden estimated that she and two other staff members print about 150 cards each year with the ID printer, which simplifies card printing. Gladden performed the initial setup, and is the primary person who uses the printer.
"It's definitely helped our operations and the city's," Gladden said, "and it's also helped the grocery store be able to quickly identify senior citizens."
The Skagway Police Department is considering adding encoded barcode functionality to the cards in the future, so that fire department personnel can be checked in and out when they respond to incidents. The Skagway Fire Department is largely a volunteer operation, making it more difficult to track personnel.


text: Implantation of Ta into single crystal Ni3Al was conducted to determine the degree of surface hardening in monolithic alloys in relation to its lattice location. Ta was implanted at 400 keV to doses of 0.07, 0.36, and 2.52 × 1016 cm−2 along the axis of a crystal of Ni3Al at room temperature. Composition versus depth profiles were determined by RBS, and lattice location of Ta was determined by channeling angular yield scans about the axis. The hardness of the surface was measured by ultra-low load indentation. Results show that implantation softens the surface and that the Ta is randomly distributed between Ni and Al sites. Annealing at 1000 °C/1 h significantly reduces the damage and causes preferential occupation of Al sites by Ta, resulting in a slight increase in surface hardness. Further annealing at 1200 °C/0.25 h increases the surface hardness substantially and increases occupation of Al lattice sites to roughly 84%. Results are consistent with a model in which the as-implanted surface is softened by disordering, and subsequent diffusion of Ta to Al sites during thermal treatment causes hardening of the surface.