text:
Science Fair Project Encyclopedia
Baldwin V of Jerusalem
Baldwin V (1177 – 1186) was the son of Sibylla of Jerusalem and her first husband, William of Montferrat. He was crowned co-King of Jerusalem with his uncle, Baldwin IV in 1183, and once his uncle died, became the nominal king from 1185 to 1186, under the regency of Raymond III of Tripoli.
In 1182 a rift developed between Baldwin IV and his brother-in-law, Sibylla's second husband Guy of Lusignan. Baldwin IV deposed Guy from his position as regent, and for the next few months Baldwin IV attempted to have his sister's marriage to Guy annulled, with no success. As Sibylla was his heir, he summoned the Haute Cour and they jointly agreed to advance Baldwin V's claim to the throne, preceding Sibylla's claim. Sibylla and Guy allied with Raynald of Chatillon against Raymond III of Tripoli, who acted as Baldwin V's regent.
During Baldwin V's reign, Saladin continued to advance into the kingdom, which had been weakened during the reign of the leprous Baldwin IV. Baldwin V died soon after his accession, and after his funeral Sibylla was proclaimed Queen by the Patriarch, which the Haute Cour later endorsed.
- Medieval Women, edited by Derek Baker, Ecclesiatical Historical Society 1978.
The contents of this article is licensed from _URL_ under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


text:
The rise of Chinese investors as claimants: What are the likely impacts on international arbitration?
In recent years, China has experienced unprecedented economic, military and diplomatic growth. China is now regarded as the number one economic superpower by the International Monetary Fund (IMF) on the basis of gross domestic product (GDP), surpassing the United States. Beginning with its accession to the World Trade Organisation, there have been a number of recent initiatives that have contributed to China's prolific involvement in global trade and investment. China's entry into international investment treaties has the dual benefit of signalling to the world that China is a safe place to invest, as well as providing Chinese outbound investors with the legal framework to protect their foreign investments. The rise in Chinese foreign trade and investment and China's open attitude towards international investment agreements has had a direct impact on the number of Chinese parties involved in cross-border commercial disputes. Specifically, Chinese parties are becoming increasingly assertive in enforcing their rights internationally. This article explores the current and anticipated increase of Chinese investors as claimants in cross-border disputes and the cultural, legal, procedural and practical implications this has on international commercial and investor-state arbitrations.

source: m-a-p/FineFineWeb


text:
May 14, 2007 With meteorologists concerned about a possible worldwide intensification of tornado activity, scientists in Germany are proposing a new approach to studying formation of twisters, which pack Earth's most violent winds. It involves forming microtornadoes under millimeter-scale crystalline "igloos," according to a report by Andrei P. Sommer scheduled for publication in the June 6 edition of ACS' Crystal Growth & Design, a bi-monthly journal.
In the report, Sommer describes evaporating tiny drops of water laced with polystyrene nanospheres to form the transparent igloos. The drops consisted of 15-microliters of liquid -- 15 millionths of a liter -- and formed the translucent "igloos" after being deposited on a surface under an evaporation chamber. As the drops evaporated (taking 191 hours, a record for such experiments), Sommer observed patterns formed by swirling micro-vortexes that appeared similar to those formed by tornadoes under real-world conditions.
Because the conditions favoring the formation of the microtornadoes are identical to those forming real tornadoes, Sommer suggested that such igloos and microtornadoes could become an important new tool for meteorologists seeking to understand how certain atmospheric conditions spawn tornadoes.
"By simultaneously wetting the roof of such an igloo, if necessary, and injecting minimal amounts of water containing nanospheres into it, it should be possible to mimic basic processes in tornadoes experimentally and to explore the impact of relevant boundary conditions including terrain conditions and cloud cover stability," the report states.
Other social bookmarking and sharing tools:
Note: Materials may be edited for content and length. For further information, please contact the source cited above.
Note: If no author is given, the source is cited instead.

source: HuggingFaceFW/fineweb-edu


text:
Luomala, Harri (2004) Exploring origin of food as a source of meanings for Finnish consumers: A qualitative comparison of meanings in Swedish, German and French food. In: Report from NJF seminar 366, Nordic Association of Agricultural Scientists, pp. 53-55.
The findings show that Finnish consumers attach partly overlapping partly distinct cognitive, affective, and normative meanings to Swedish, German, and French food. Swedish and French foods are perceived healthier than German food. Finnish consumers also think that Swedish and French food is of high quality, safe and pure while in the case of German food consumers were more doubtful.
|EPrint Type:||Conference paper, poster, etc.|
|Type of presentation:||Paper|
|Keywords:||origin, food, consumers|
|Deposited By:||Koistinen, Riitta|
|Deposited On:||02 Sep 2009 10:26|
|Last Modified:||12 Apr 2010 07:39|
Repository Staff Only: item control page


text:
You have seen the word "efficiency" in many of our resources but wonder what it really means? You need the definition of a word for a reference? Please find below a complete glossary of organizational assessment. With over 100 definitions available, this glossary should help you clarify the terms you need to understand organizational assessment in a comprehensive manner. You can find the words either by searching alphabetically or by selecting the exact word you are looking for in the list.
All definitions are taken from the following source:
OECD - Development Assistance Committee Network on Development Evaluation. (2002). Glossary of Key Terms in Evaluation and Results-Based Management. 40 pp.
This glossary is also available in French, Spanish, Arabic, Chinese, Dutch, Italian, Japanese, Kiswahili, Russian, Swedish, and Turkish at the following website: _URL_
The definition of terms followed by an asterisk symbol (*) was either slightly modified for simplicity reasons or was taken from:
Lusthaus, C., Adrien, M.-H., Anderson, G., Carden, F. & Montalván, G. P. (2002). Organizational Assessment: A Framework for Improving Performance. 210 pp.
The book can be read, downloaded or even ordered at the following website _URL_


Take the 2-minute tour ×
Let$\:$ $T=\{\varphi \in \Pi_1: PA+Con(PA) \vdash \varphi\:\:and\:\: PA\nvdash \varphi \}$. $\:$By the facts presented here Are undecidable consequences of Con recursively enumerable? by Andreas Blass and Emil Jerabek, we know that:
$(1)$ $T$ is $\Pi_1$-hard.
However it seems we can also prove that
$(2)$ $Cn(PA+Con(PA)) = Cn(PA+T)$
Let $\varphi$ be such that $PA+Con(PA) \models \varphi$. Obviously $Con(PA) \in T$, therefore trivially $PA+T \models \varphi$.
In the other direction, let $\varphi$ be such that $PA+T \models \varphi$. Since this is a first-order theory, by completeness and compactness we can infer that in the proof of $\varphi$ from $PA+T$ we use finitely many formulae, namely: $\phi_1, \phi_2, \dots \phi_n$. All of them either belong to $PA$ or belong to $T$ or can be inferred from $PA+T$. In particular they are implied by $PA+Con(PA)$. If so, they can be used in the proof of $\varphi$ form $PA+Con(PA)$, so $PA+Con(PA) \models \varphi$.
But from the work of Jeroslow _URL_ (Corollary 4) we find out that:
$(3)$ $Cn(PA+\{\varphi \in \Pi_1: \mathbb{N} \models \varphi \})$ is not $\Delta_2$
Since $(1)$ and due to the fact that the set above (I mean: $\Pi_1 \cap Th(\mathbb{N})$) has got its own truth definition and is $\Pi_1$ we infer that it is reducible to $T$.
So it seems that $Cn(PA+T)$ should also be "hard" and "not learnable" (in the sense of not being $\Delta_2$ ).
However we also know that $Cn(PA+Con(PA))$ is $\Sigma_1$. Since $(2)$ however $Cn(PA+T)$ is the same set of formulae.
So my question is: did I make any mistake in the reasoning above and one of $(1)$, $(2)$, $(3)$ is false or it can be the case that when we close some "hard" set up logical consequence, we can get an "easier" set. If so, the question is: how come?
share|improve this question
I don't see any mistakes. A good chunk of the complexity of T comes from excluding certain sentences; specifically, those sentences provable in PA. But adding PA and then closing under consequence restores those sentences. That's why the complexity decreases. – Dan Turetsky Jun 5 '13 at 23:48
Thanks. You're right, but let's look at the theory I mentioned: PA+(Set of true Pi_1-sentences) which closed under consequence gives us nonlearnable theory. I don't "see", how - having a computable reduction of Set of true Pi_1-sentences to the set T- we obtain theories with different complexities? – mtg Jun 6 '13 at 0:15
add comment
1 Answer
up vote 3 down vote accepted
The $\Pi_1$-hardness of $T$ comes from the clause $PA\not\vdash\varphi$. But when you consider $Cn(PA+T)$ its influence vanishes.
As $$T\subset Cn(PA+Con(PA))$$ we have $$Cn(PA+T)\subseteq Cn(PA+Cn(PA+Con(PA)))=Cn(PA+Con(PA)).$$ On the other hand $Con(PA)\in T$ therefore $Cn(PA+Con(PA))\subseteq Cn(PA+T)$.
Thus we have the equality $Cn(PA+T) = Cn(PA+Con(PA))$ indeed.
This also does not contradict Jeroslow's results as in $PA+\Pi_1(\mathbb{N})$ there are all $Con(X)$ (not just $Con(PA)$) and which is a sourse of complexity of this theory.
It is not very suprising that Cn operator can decrease the complexity of a set of sentences - you can always add a negation of a sentence of any given set to obtain an inconsistent theory i.e. primitive recursive. But it is a nice example how it can decrease it to something higher than just PR.
share|improve this answer
add comment
Your Answer


text:
Build a WRDC Variable Gain Amplifier Circuit Diagram or Wide range digitally controlled variable gain amplifier circuit diagram. The circuit uses the LTC1043 in a variable gain amplifier which features continuously variable gain, gain stability of 20 ppm/Â°C, and single-ended or differential inputs. The circuit uses two separate LTC1043s. LTC1043B is continuously clocked by a 1-kHz source, which could also be processor supplied.
Both LTC1043s function as the sampled data equivalent of a resistor within the bandwidth set by Al's 0.01-I'F value and the switched-capacitor equivalent feedback resistor. The time-averaged current delivered to the summing point by LTC1043A is a function of the 0.01-I'F capacitor's input-derived voltage and the commutation frequency at pin 16. Low-commutation frequencies result in small time-averaged current values, and require a large input resistor. Higher frequencies require an equivalent small input resistor.


text:
Valorx Fusion Settings are those which users will set for the Valorx Fusion but not for the apps. Valorx Fusion Settings will have three settings.
Information : This setting will provide the complete User information like Full Name, User Email, User Name, User id, Licence Type, Organization Name, Organization id.
Settings : User will find the information related to Maps, Active CRM and Valorx Support.
Maps : User can find the information related to Map Color Settings where they can reset the color of the Map or reset it to default color. Pointer text in formula row of Map is another section where users can either hide or show the text in the formula row. Designers can allow users to add dynamic columns in runtime by checking in the checkbox.
Active CRM : This is another section which allows Designers to find the information whether they are connected to Salesforce, Microsoft Office 365 and Service Now.
Valorx Support : This setting will need a password. Please connect with your Valorx Administrator to white-label the mentioned Org Id. Valorx Administrators can white-label the Org Id(s) by logging into their Valorx account over the Valorx website or by using the Valorx Home application (It can be found on the Desktop).
Logs : Logs are those where users can find the activity logs for both Design Studio and Runtime. Refer Logs for more information.


text:
Before you start your furnace, consider having a licensed heating and air contractor perform a maintenance check to make sure everything is in working order. They will inspect and clean components such as the heat exchanger, blower, vent, ducting, and wiring.
The first time you turn on your furnace, you may smell an odor like burned dust. That's normal. If you smell a rotten egg odor, that's natural gas. If you smell gas, call KUB.
Furnace Check -Up - A licensed heating and air contractor should conduct the following:
- Inspect and clean blower assembly (includes blower housing, blower wheel and motor).
- Lubricate motors on older models. Newer furnaces do not require lubrication.
- Check all venting and vent components.
- Inspect ignition system and safety controls.
- Inspect heat exchanger and clean if necessary.
- Inspect controls, thermostat, wiring and connections.
- Check and clean or replace air filters if necessary.
- Inspect conditioned airflow system (ductwork).
- Operate system and verify proper operation of the unit.
- General check of all components.
Licensing for a heating and air contractor - KUB recommends you consider the following when choosing a licensed contractor to perform this maintenance:
- Contractors should be licensed by local government agencies in your area or the State of TN.
- You can contact your local Inspections Office to verify their license.
- State licenses can be verified on the Tennessee Board of Licensing Contractors website.

source: openbmb/Ultra-FineWeb


text:
Punta da Estaca de Bares is the northernmost point of Spain and the Iberian Peninsula, at a latitude of 43° 47′ 38″ North. It is located in Galicia. Conventionally, it marks the western end of the Cantabrian Sea, or Bay of Biscay, in the North Atlantic ocean.
The peninsula of Estaca de Bares penetrates considerably into the Atlantic Ocean and the Cantabrian Sea, and as a result it is one of the rainiest places in Europe, with more than 2500 mm a year (a Temperate rain forest). These special weather conditions have created over the centuries a unique ecosystem and biodiversity which have made it possible for this area to be declared an Area of National Natural Interest.
The history of Estaca de Bares Point is very rich. The ruins of the Phoenician Salt Fish Factory and the Phoenician Port are open to visitors. There is a lighthouse that was constructed in 1850 and still works to this day, under the administration of the Captain of the Port of Ferrol, Spain. There is also a bird sanctuary, ruins of molinas (grain mills) and abandoned military bases located here.
There is currently an abandoned military site there. It was first operated by the US Coast Guard beginning in the early 1960s as a LORAN (Long Range Aid to Navigation) Station. The station at Estaca de Bares operated jointly with stations operated by the British Government in East Blockhouse, Wales and, until 1973, the French Government in Pospoder, France. In 1978, after the Coast Guard ended the LORAN operations, the US Air Force assumed control of the base. The US Air Force 2186 Communications Squadron, headquartered at Torrejón Air Base near Madrid, operated the site as a remote Radio Relay Link (RRL) communications site until 1991, and it now sits in ruins. While the site was open, many Americans met and married local citizens.
There are also a series of waterways that used to power mills for the local citizens. These mills are located between the abandoned military base and the bird sanctuary.
The other site used to be an old signaling station used by the Spanish Navy. It has been converted into a hotel/restaurant.
During World War II a German submarine was sunk off the coast there. One of the German officers who survived the sinking returned every year thereafter to mark the anniversary. After his death he had his ashes scattered over Estaca de Bares.
See also edit
- Spherical panorama[permanent dead link]


Connect with SSH to Azure Kubernetes Service (AKS) cluster nodes for maintenance or troubleshooting
Throughout the lifecycle of your Azure Kubernetes Service (AKS) cluster, you may need to access an AKS node. This access could be for maintenance, log collection, or other troubleshooting operations. You can access AKS nodes using SSH, including Windows Server nodes (currently in preview in AKS). You can also connect to Windows Server nodes using remote desktop protocol (RDP) connections. For security purposes, the AKS nodes aren't exposed to the internet. To SSH to the AKS nodes, you use the private IP address.
This article shows you how to create an SSH connection with an AKS node using their private IP addresses.
Before you begin
This article assumes that you have an existing AKS cluster. If you need an AKS cluster, see the AKS quickstart using the Azure CLI or using the Azure portal.
By default, SSH keys are obtained, or generated, then added to nodes when you create an AKS cluster. This article shows you how to specify different SSH keys than the SSH keys used when you created your AKS cluster. The article also shows you how to determine the private IP address of your node and connect to it using SSH. If you don't need to specify a different SSH key, then you may skip the step for adding the SSH public key to the node.
This article also assumes you have an SSH key. You can create an SSH key using macOS or Linux or Windows. If you use PuTTY Gen to create the key pair, save the key pair in an OpenSSH format rather than the default PuTTy private key format (.ppk file).
You also need the Azure CLI version 2.0.64 or later installed and configured. Run az --version to find the version. If you need to install or upgrade, see Install Azure CLI.
Configure virtual machine scale set-based AKS clusters for SSH access
To configure your virtual machine scale set-based for SSH access, find the name of your cluster's virtual machine scale set and add your SSH public key to that scale set.
Use the az aks show command to get the resource group name of your AKS cluster, then the az vmss list command to get the name of your scale set.
CLUSTER_RESOURCE_GROUP=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
SCALE_SET_NAME=$(az vmss list --resource-group $CLUSTER_RESOURCE_GROUP --query [0].name -o tsv)
The above example assigns the name of the cluster resource group for the myAKSCluster in myResourceGroup to CLUSTER_RESOURCE_GROUP. The example then uses CLUSTER_RESOURCE_GROUP to list the scale set name and assign it to SCALE_SET_NAME.
Important
At this time, you should only update your SSH keys for your virtual machine scale set-based AKS clusters using the Azure CLI.
For Linux nodes, SSH keys can currently only be added using the Azure CLI. If you want to connect to a Windows Server node using SSH, use the SSH keys provided when you created the AKS cluster and skip the next set of commands for adding your SSH public key. You will still need the IP address of the node you wish to troubleshoot, which is shown in the final command of this section. Alternatively, you can connect to Windows Server nodes using remote desktop protocol (RDP) connections instead of using SSH.
To add your SSH keys to the nodes in a virtual machine scale set, use the az vmss extension set and az vmss update-instances commands.
az vmss extension set \
 --resource-group $CLUSTER_RESOURCE_GROUP \
 --vmss-name $SCALE_SET_NAME \
 --name VMAccessForLinux \
 --publisher Microsoft.OSTCExtensions \
 --version 1.4 \
 --protected-settings "{\"username\":\"azureuser\", \"ssh_key\":\"$(cat ~/.ssh/id_rsa.pub)\"}"
az vmss update-instances --instance-ids '*' \
 --resource-group $CLUSTER_RESOURCE_GROUP \
 --name $SCALE_SET_NAME
The above example uses the CLUSTER_RESOURCE_GROUP and SCALE_SET_NAME variables from the previous commands. The above example also uses ~/.ssh/id_rsa.pub as the location for your SSH public key.
Note
By default, the username for the AKS nodes is azureuser.
After you add your SSH public key to the scale set, you can SSH into a node virtual machine in that scale set using its IP address. View the private IP addresses of the AKS cluster nodes using the kubectl get command.
kubectl get nodes -o wide
The follow example output shows the internal IP addresses of all the nodes in the cluster, including a Windows Server node.
$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
aks-nodepool1-42485177-vmss000000 Ready agent 18h v1.12.7 10.240.0.4 <none> Ubuntu 16.04.6 LTS 4.15.0-1040-azure docker://3.0.4
aksnpwin000000 Ready agent 13h v1.12.7 10.240.0.67 <none> Windows Server Datacenter 10.0.17763.437
Record the internal IP address of the node you wish to troubleshoot.
To access your node using SSH, follow the steps in Create the SSH connection.
Configure virtual machine availability set-based AKS clusters for SSH access
To configure your virtual machine availability set-based AKS cluster for SSH access, find the name of your cluster's Linux node, and add your SSH public key to that node.
Use the az aks show command to get the resource group name of your AKS cluster, then the az vm list command to list the virtual machine name of your cluster's Linux node.
CLUSTER_RESOURCE_GROUP=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv)
az vm list --resource-group $CLUSTER_RESOURCE_GROUP -o table
The above example assigns the name of the cluster resource group for the myAKSCluster in myResourceGroup to CLUSTER_RESOURCE_GROUP. The example then uses CLUSTER_RESOURCE_GROUP to list the virtual machine name. The example output shows the name of the virtual machine:
Name ResourceGroup Location
------------------------ --------------------------------------------- ----------
aks-nodepool1-79590246-0 MC_myResourceGroupAKS_myAKSClusterRBAC_eastus eastus
To add your SSH keys to the node, use the az vm user update command.
az vm user update \
 --resource-group $CLUSTER_RESOURCE_GROUP \
 --name aks-nodepool1-79590246-0 \
 --username azureuser \
 --ssh-key-value ~/.ssh/id_rsa.pub
The above example uses the CLUSTER_RESOURCE_GROUP variable and the node virtual machine name from previous commands. The above example also uses ~/.ssh/id_rsa.pub as the location for your SSH public key. You could also use the contents of your SSH public key instead of specifying a path.
Note
By default, the username for the AKS nodes is azureuser.
After you add your SSH public key to the node virtual machine, you can SSH into that virtual machine using its IP address. View the private IP address of an AKS cluster node using the az vm list-ip-addresses command.
az vm list-ip-addresses --resource-group $CLUSTER_RESOURCE_GROUP -o table
The above example uses the CLUSTER_RESOURCE_GROUP variable set in the previous commands. The following example output shows the private IP addresses of the AKS nodes:
VirtualMachine PrivateIPAddresses
------------------------ --------------------
aks-nodepool1-79590246-0 10.240.0.4
Create the SSH connection
To create an SSH connection to an AKS node, you run a helper pod in your AKS cluster.


New Study Examines Whether Oregon's Investment in Accelerated Learning Is Paying Off
December 6, 2018
Graphic featuring a paper airplane
In the 2015–16 school year, one in three Oregon public high school students participated in some form of accelerated learning—dual credit, direct enrollment, Advanced Placement (AP), and/or International Baccalaureate (IB).
This is one of several findings in a new study by Regional Educational Laboratory Northwest that offers a first glimpse at how a statewide initiative in Oregon has impacted students' participation in these programs.
Research has shown that accelerated learning can improve students' postsecondary outcomes by preparing them for college through increased academic rigor and expectations in high school, shortening the time to complete a postsecondary degree and reducing college costs through the accumulation of college credits. Based on this evidence, Oregon is one of several states that has made a significant effort to increase access to these programs.
This REL Northwest study explores Oregon students' participation in accelerated learning in the 2013–14 to 2015–16 school years, as well as the schooland student-level characteristics that predict participation in an accelerated learning program. The study also looks at high school-to-college outcomes and how many students were able to transfer the credits they earned.
"This study found several positive outcomes," said Michelle Hodara, a coauthor of the study. "Many public high school students in Oregon are earning college credits in various ways, and this high school experience is linked to much higher high school graduation, college enrollment and college persistence."
In the class of 2015, for example, accelerated learning participants were 30 percentage points more likely to graduate from high school, 25 percentage points more likely to enroll in college, and 22 percentage points more likely to persist in college than their peers who did not take accelerated learning in high school—and these findings were consistent for students of color.
Equity gaps in participation remain, however, particularly for students who were eligible for free or reduced-price lunch and students who attended schools with a higher percentage of economically disadvantaged students. "There is still work to be done to ensure that low-income students have equitable access to accelerated learning and that low-income schools are able to offer AP and IB at the same rates as higher income schools," Hodara said.
While college persistence rates were high for students who took accelerated learning courses, 15 percent of students in the class of 2015 transferred less than half the credits they earned in high school to the Oregon public university they subsequently attended. Meanwhile, nearly 25 percent of students who earned credit from dual-credit math in high schools and 9 percent who earned credit from dual-credit English in high school took the same course or a lower level course at their university or community college.
"This study was not designed to identify why students' college credits are not accepted at the colleges and universities they attend after high school," said Hodara, "but we found that low-income students have fewer college credits accepted, suggesting the need for more advising around credit transfer for high school students who may be first-generation or low-income. Additionally, high schools and colleges should examine their math pathways, since about a quarter of students who passed a dual credit math course took the same or a lower course in college."
Oregon has invested extensively in expanding access to accelerated learning, and education leaders from state agencies and secondary and postsecondary institutions are committed to ensuring that these programs are sustainable, equitable, and effective. The data presented in this study will be used to inform policy and legislative discussions to improve the accelerated learning programs in the state.
Check out a REL Northwest infographic that breaks down the study's key points and findings and download the full report.


4.1 Using the GNOME On-Screen Keyboard
The GNOME On Screen Keyboard (GOK) is the default on-screen keyboard in Oracle Linux. GOK enables you to select windows and input text without using a physical keyboard.
To start the GNOME on-screen keyboard from the GNOME Classic desktop:
 1. From the Applications menu, select System Tools, and then select Settings.
 2. In the All Settings window, click the Universal Access icon to open the Universal Access settings panel.
 3. In the Typing section, toggle the Screen Keyboard setting to ON.
To start the GNOME on-screen keyboard from GNOME desktop:
 1. In the top bar, click Activities to open the Activities overview.
 2. In the Type to search... field, start typing "universal access", then click the Universal Access icon to open the Universal Access settings panel.
 3. In the Typing section, toggle the Screen Keyboard setting to ON.
For more information, go to _URL_


text:
Redefining efficiency : pollution concerns, regulatory mechanisms, and technological change in the U.S. petroleum industry
Type de la ressource : Livres
Date : 2001-00-00
ISBN : 978-1-884836-75-6
Description : Today, pollution control regulations define how complex technological systems interact with natural ecosystems and competing human uses of the environment. Redefining Efficiency examines the evolution of this industrial ecology in the United States by tracing numerous pollution concerns associated with the production, transportation, and refining of petroleum over the course of the twentieth century. In doing so, this book demonstrates that a pollution control ethic based on the efficient use of resources emerged early in the century and met with enough success to undermine the first calls for strict government-enforced regulations. Redefining Efficiency also chronicles the failure of this efficiency-based pollution control ethic and its replacement by another. This second ethic required society first to define its environmental objectives and then to institute policies to achieve those objectives. The resulting regulations, by restructuring the economics of pollution control, have since redefined the notion of industrial efficiency.


text:
Historic buildings helping to cut carbon emissions
25 September 2007
Historic buildings are already helping to reduce Scotland's carbon emissions. That is one of the key messages delivered by Culture Minister Linda Fabiani MSP at the opening of the annual conference of the Historic Environment Advisory Council for Scotland today (Tuesday).
Speaking in Stirling, Ms Fabiani said: "Sustainability is about much more than the energy measured on an electricity meter. We have to think about the energy usage of the whole life of a building and the materials it is constructed from and make sure that the actions we take to control our carbon emissions are sustainable in the long term.
"Recent research shows that older buildings perform very well in energy terms because they have thick walls, smaller windows and passive ventilation systems - all of which contribute to the reduction of emissions."
The Historic Environment Advisory Council for Scotland provides independent strategic advice to Scottish Ministers on issues affecting the historic environment.
Ms Fabiani continued: "Climate change is a reality we can no longer ignore. The Scottish Government is committed to taking action to enforce reductions in carbon emissions. We are also determined to think creatively about the small changes that can make a big difference."
The Minister also set out the areas that the advisory council would be reviewing in the coming year. It will provide advice on:
·the economic impact of the historic environment;
·the conservation of the ecclesiastical heritage;
·engaging young adults with the historic environment;
·and the infrastructure of the historic environment
Notes to Editors
- Historic Scotland is an executive agency of the Scottish Government charged with safeguarding the nation's historic environment. The agency is fully accountable to Scottish Ministers and through them to the Scottish Parliament.
- The Historic Environment Advisory Council for Scotland provides independent strategic advice to Scottish Ministers on issues affecting the historic environment. More information can be found at _URL_.
- Members of the Historic Environment Advisory Council are appointed by the Culture Minister.


text: - We investigate the effects of weakly and strongly stratified turbulent convection on the mean effective Lorentz force, and especially on the mean effective magnetic pressure. Earlier studies with isotropically forced non-stratified and stratified turbulence have shown that the contribution of the turbulence to the mean magnetic pressure is negative for mean horizontal magnetic fields that are smaller than the equipartition strength, so that the effective mean magnetic pressure that takes into account the turbulence effects can be negative. Compared with earlier cases of forced turbulence with an isothermal equation of state, we find that the turbulence effect is similar to or even stronger in the present case of turbulent convection. This is argued to be due to the anisotropy of turbulence in the vertical direction. Another important difference compared with earlier studies is the presence of an evolution equation for the specific entropy. Mean-field modelling with entropy evolution indicates that the negative effective magnetic pressure can still lead to a large-scale instability which forms local flux concentrations, even though the specific entropy evolution tends to have a stabilizing effect when applied to a stably stratified (e.g. isothermal) layer. It is argued that this large-scale instability could be important for the formation of solar large-scale magnetic structures such as active regions.


by calculating the state # Initial conditions are calculated by calculating the state
# at the beginning of the inference period # at the beginning of the inference period
...@@ -63,13 +50,13 @@ def run_mcmc(config): ...@@ -63,13 +50,13 @@ def run_mcmc(config):
# to set up a sensible initial state. # to set up a sensible initial state.
state = compute_state( state = compute_state(
initial_state=tf.concat( initial_state=tf.concat(
[covar_data["N"][:, tf.newaxis], tf.zeros_like(events[:, 0, :])], [data["N"][:, tf.newaxis], tf.zeros_like(events[:, 0, :])],
axis=-1, axis=-1,
), ),
events=events, events=events,
stoichiometry=model_spec.STOICHIOMETRY, stoichiometry=model_spec.STOICHIOMETRY,
) )
start_time = state.shape[1] - cases.shape[1] start_time = state.shape[1] - data["cases"].shape[1]
initial_state = state[:, start_time, :] initial_state = state[:, start_time, :]
events = events[:, start_time:, :] events = events[:, start_time:, :]
...@@ -77,7 +64,7 @@ def run_mcmc(config): ...@@ -77,7 +64,7 @@ def run_mcmc(config):
# Construct the MCMC kernels # # Construct the MCMC kernels #
######################################################## ########################################################
model = model_spec.CovidUK( model = model_spec.CovidUK(
covariates=covar_data, covariates=data,
initial_state=initial_state, initial_state=initial_state,
initial_step=0, initial_step=0,
num_steps=events.shape[1], num_steps=events.shape[1],
...@@ -152,9 +139,9 @@ def run_mcmc(config): ...@@ -152,9 +139,9 @@ def run_mcmc(config):
prev_event_id=prev_event_id, prev_event_id=prev_event_id,
next_event_id=next_event_id, next_event_id=next_event_id,
initial_state=initial_state, initial_state=initial_state,
dmax=config["mcmc"]["dmax"], dmax=config["dmax"],
mmax=config["mcmc"]["m"], mmax=config["m"],
nmax=config["mcmc"]["nmax"], nmax=config["nmax"],
), ),
name=name, name=name,
) )
...@@ -170,7 +157,7 @@ def run_mcmc(config): ...@@ -170,7 +157,7 @@ def run_mcmc(config):
prev_event_id, target_event_id, next_event_id prev_event_id, target_event_id, next_event_id
), ),
cumulative_event_offset=initial_state, cumulative_event_offset=initial_state,
nmax=config["mcmc"]["occult_nmax"], nmax=config["occult_nmax"],
t_range=(events.shape[1] - 21, events.shape[1]), t_range=(events.shape[1] - 21, events.shape[1]),
name=name, name=name,
), ),
...@@ -181,7 +168,7 @@ def run_mcmc(config): ...@@ -181,7 +168,7 @@ def run_mcmc(config):
def make_event_multiscan_kernel(target_log_prob_fn, _): def make_event_multiscan_kernel(target_log_prob_fn, _):
return MultiScanKernel( return MultiScanKernel(
config["mcmc"]["num_event_time_updates"], config["num_event_time_updates"],
GibbsKernel( GibbsKernel(
target_log_prob_fn=target_log_prob_fn, target_log_prob_fn=target_log_prob_fn,
kernel_list=[ kernel_list=[
...@@ -234,7 +221,7 @@ def run_mcmc(config): ...@@ -234,7 +221,7 @@ def run_mcmc(config):
return results_dict return results_dict
# Build MCMC algorithm here. This will be run in bursts for memory economy # Build MCMC algorithm here. This will be run in bursts for memory economy
@tf.function(autograph=False, experimental_compile=True) @tf.function # (autograph=False, experimental_compile=True)
def sample(n_samples, init_state, thin=0, previous_results=None): def sample(n_samples, init_state, thin=0, previous_results=None):
with tf.name_scope("main_mcmc_sample_loop"): with tf.name_scope("main_mcmc_sample_loop"):
...@@ -265,9 +252,8 @@ def run_mcmc(config): ...@@ -265,9 +252,8 @@ def run_mcmc(config):
############################### ###############################
# Construct bursted MCMC loop # # Construct bursted MCMC loop #
############################### ###############################
NUM_BURSTS = int(config["mcmc"]["num_bursts"]) NUM_BURSTS = int(config["num_bursts"])
NUM_BURST_SAMPLES = int(config["mcmc"]["num_burst_samples"]) NUM_BURST_SAMPLES = int(config["num_burst_samples"])
NUM_EVENT_TIME_UPDATES = int(config["mcmc"]["num_event_time_updates"])
NUM_SAVED_SAMPLES = NUM_BURST_SAMPLES * NUM_BURSTS NUM_SAVED_SAMPLES = NUM_BURST_SAMPLES * NUM_BURSTS
# RNG stuff # RNG stuff
...@@ -286,10 +272,7 @@ def run_mcmc(config): ...@@ -286,10 +272,7 @@ def run_mcmc(config):
# Output file # Output file
samples, results, _ = sample(1, current_state) samples, results, _ = sample(1, current_state)
posterior = Posterior( posterior = Posterior(
os.path.join( output_file,
os.path.expandvars(config["output"]["results_dir"]),
config["output"]["posterior"],
),
sample_dict={ sample_di


Why the Knotted Language of DNA Sounds Like Music
Knot theory hasn't been the only unexpected math to pop up during DNA research. Scientists have used Venn diagrams to study DNA, and the Heisenberg uncertainty principle. The architecture of DNA shows traces of the "golden ratio" of length to width found in classical edifices like the Parthenon. Geometry enthusiasts have … » 7/17/12 2:40pm 7/17/12 2:40pm


text:
In a previous post we covered the inherent limitations of Ethereum nodes and some of the constraints these limitations place on developers, and described how the dfuse Platform can help. In this post, we'll focus on the complex lifecycle of Ethereum transactions, and the challenges these create when trying to provide a great user experience in your dapp and how dfuse can help to achieve that.
Whenever a transaction is submitted to the Ethereum network, it progresses in a fairly complex way through a sequence of states. Not every state transition moves forward — a transaction can go backward to an earlier state, can be replaced by another transaction, or can be forked out entirely. (We'll describe the transaction lifecycle in much more detail later in this article.)
Following the journey of transactions in a dapp and presenting your users with a good experience can be challenging. The many dapps built on Ethereum today present their users with attractive but static user experiences, which show the transaction state at a point in time, and have to be refreshed (either by the user hitting Refresh, or by the dapp UI periodically refreshing the page) to get updates. Others provide more dynamic interfaces but can only do this with relatively coarse granularity, and / or at the expense of high network traffic and imposing high load on their underlying blockchain nodes.
In this post we'll discuss the reasons for this, and then talk about how to provide a modern and fluid user experience in your dapp, with fine-grained transaction state updates, and in a highly network-efficient and server-efficient way.
Dapp Interfaces Today
Every dapp has a need to display information to its users about the underlying blockchain transactions that the dapp is performing — whether those are Ether transfers, token transfers, or smart contract method calls.
Many dapps today have an interface style in which whenever information is displayed to users about its underlying blockchain operations, the information reflects the state of the blockchain at a single point in time.
Users frequently want updated information as their transactions move through their lifecycle — for example to know when a transfer has been completed — and so the dapp either provides a "Refresh" or "Update" button (or automates the same page-refresh for the user), or the user uses their browser's Refresh button to redisplay the page.
A few dapps go further, and display dynamic transaction updates to the user. They do this by polling through AJAX requests in their page's background, repeatedly checking their Ethereum node for updates and then post changes to the front-end. This is quite complex, as the dapp has to make many API calls, querying many different data sources (including blocks, the mempool, and network conditions) in order to follow the lifecycle of a transaction through to completion.
This approach also imposes a tradeoff, either the transaction updates are infrequent and coarse-grained which frustrates users and tempts them to hit Refresh anyway to get faster updates, or the dapp has to poll the chain at high frequency, generating massive quantities of network traffic and imposing high loads on the underlying blockchain nodes.
Why Not Event-Driven Interfaces?
The fact that static pages or polling have been the best available options for a dapp developer reflects the nature of the API provided by Ethereum nodes. An event-driven interface that receives transaction updates pushed from the blockchain and reflects them in real time to users would provide a better experience — but standard Ethereum nodes are not designed to provide rich streaming realtime transaction data.
Ethereum nodes do provide a limited event streaming capability. These event streams are available only using the PUB/SUB capability of Ethereum's JSON-RPC interface (not when using GraphQL). The PUB/SUB interface allows dapps to subscribe to receive notifications of a few event types:
- newHeads — each time a new block header is appended to the chain
- logs — logs that are included in new imported blocks and match the given filter
- newPendingTransactions — the hash for all transactions that are added to the pending state and are signed with a key that is available in the node (which is rarely the case on public nodes)
- syncing — Indicates when the node starts or stops synchronizing
(see here for the details)
These event types are too limited to enable a dapp to follow a transaction through its lifecycle.
The Ethereum Transaction Lifecycle
Ethereum transactions have a complex lifecycle. Each transaction passes through multiple defined states, going through various state transitions as it moves forward (or backward!) through those states.
An Ethereum transaction progresses through a series of states from when it is first submitted to the network until it is (potentially) included in a block on the chain. These states are as follows:
- UNKNOWN: A transaction that has not been seen nor processed by the network would be in the UNKNOWN state.
- PENDING: A transaction is in the PENDING state when it is waiting to be picked and processed by miners. They are in the so-called mempool. Miners usually select transactions with higher gas prices first, so transactions with lower gas prices may remain in the PENDING state for long periods. Transactions with the lowest gas prices may never get picked up, which would result in them getting "stuck" in the PENDING state indefinitely.
- IN_BLOCK: A transaction moves to the IN_BLOCK state when a miner has successfully selected the transaction and mined it within a block. Once IN_BLOCK, a transaction may move back to the PENDING state if the block is forked.
- REPLACED: A transaction can move to the REPLACED state from the PENDING state when either of these events occur:
- Another transaction originating from the same sender with the same nonce enters the IN_BLOCK state, or
- Another transaction originating from the same sender with the same nonce with a 12% higher gas price enters the PENDING state
The following diagram shows these states and the transitions between them.
As shown in the diagram above, the transitions between states also have names.
- POOLED: A transaction in the UNKNOWN state that enters the pool of transactions waiting to be selected by miners is said to be POOLED and enters the PENDING state. It is also possible that a transaction in REPLACED state becomes POOLED again, if the conditions for its replacement are no longer true (ex: in the rare case where a transaction with low gas price that was IN_BLOCK gets forked, and the REPLACED transaction with same nonce+sender with higher gas price was still floating around).
- MINED: A mined transaction is one that has been processed by a miner, creating a block. Once mined, a transaction is said to be in the IN_BLOCK state. Due to the peer-to-peer nature of the Ethereum network, from the perspective of a given node a transaction can move from the UNKNOWN state directly to the IN_BLOCK state without visibly passing through the PENDING state. For the same reason, from the perspective of a given node a transaction may also pass from the REPLACED state to the IN_BLOCK state without passing through the PENDING state.
- REPLACED: A transaction that moves from the PENDING state to the REPLACED state is said to be REPLACED. See the REPLACED state above for the conditions in which this occurs.
- FORKED: A forked transaction occurs when a mined transaction is part of a block that gets reversed by the network. All transactions within the reversed block will subsequently be forked, thus moving them from the IN_BLOCK state to the PENDING state.
- CONFIRMED: A transaction in the IN_BLOCK state is CONFIRMED every time a subsequent, child block gets mined.
As you can see, the lifecycle of an Ethereum transaction can be quite complex, making it challenging for a dapp to follow it accurately and to provide seamless updates to its users.
Effortless Tracking of Transaction States with dfuse
The dfuse Platform provides you with a rich, streaming interface that supports detailed tracking of the lifecycle of Ethereum transactions in realtime. The dfuse Ethereum State Tracker API empowers developers to submit Ethereum transactions and then serves up instant and granular updates over the same channel, as the transaction progresses through its full lifecycle.
Using GraphQL, you can subscribe to the transitions of a specific transaction in real-time, and can specify precisely the data that it wants to receive per transition. The dfuse Platform manages the complexities of tracking the transaction through its various state transitions, and streams events to the dapp in real-time as they occur.
The result is that you don't need to implement complex background logic to poll repeatedly for updates, nor waste bandwidth and processing on repeated queries. You can simply subscribe to the updates you need, and then reflect those in your UI.
The following animation shows a transaction that goes through a complex lifecycle — it goes through eight state transitions, before finally being included in a block and confirmed.
If you were not using dfuse, your dapp would have to poll the chain repeatedly to catch all the transitions the transaction goes through in order to update your users, and your code would need to be prepared to respond appropriately to each transition.
With dfuse, your dapp only needs to listen for streaming updates on a single connection, as dfuse tracks the twists and turns for you until the fate of the transaction is finalized.
A Modern Platform for Cutting-Edge Dapps
The Lifecycle API is just a small, but important, part of the dfuse Platform. dfuse provides you with a complete modern infrastructure layer for your dapps that is:
- Gives you highly granular, streaming


Monday, July 28, 2014
Tuesday, December 10, 2013
You are sending an email that contains the article
and a private message for your recipient(s).
Your Name:
Your e-mail: * Required!
Recipient (e-mail): *
Subject: *
Introductory Message:
(Photo: Yes/No)
Message Text: Microsoft has released a preview of the new Photosynth, the next phase of the company's experience that analyzes digital photographs to generate three-dimensional views of real world spaces.
With Photosynth, you can capture the places you love in amazing resolution and full 3D.
Powered by Microsoft's third generation 3D technology, hotosynth is recommend for anyone with a D-SLR or a point-and-shoot camera. Once a synth is created you can easily share on Facebook, Twitter or via embed with a few clicks.
The new Photosynth technology supports four basic experiences: spin, panorama, walk, and wall.
You can spin around an object as small as a cup and saucer or as large as glacial peak. Wiht Panorama, you can just yourself in the center off a space and look in every direction. Walk allows you to follow a path through the woods, your house or fly toward any direction. And with wall, you can slide across a scene, checking out every last detail.
Here is how Photosynth works:
When you upload a set of photos to Microsoft's cloud service, the technology starts by looking for points (called "features") in successive photos that appear to be the same object.
If it finds many features that reoccur in your set of photos, it passes this information on to the second step: bundle adjustment. Bundle adjustment, a standard technique in photogrammetry, determines where in 3D space each feature is, exactly where each photo was taken from, and how the camera was oriented for each photo.
Third, the technology uses the feature points in each photo to generate 3D shapes. It does so on a per-photo basis rather than trying to generate a global 3D model for the scene. The 3D model generated by Photosynth is coarse - you can see it if you type "c" (for camera) in the viewer and then use your mouse wheel to zoom out.
Next, the technology calculates a smooth path (think of it as a steadicam) through the locations of the camera for each photo. With this path, Photosynth presents the experience of moving through a synth as a gliding motion even if the actual photos were shot at different heights or slightly off-angle. You can see this path if you type "m" (for map) in the viewer. Finally, Photosynth slices and dices the images into multi-resolution pyramids for efficient access.
Head to _URL_ to check it out and sign up to start creating your own photos.
Privacy policy - Contact Us.


Deciding If It's Time For a Merger
As many nonprofits struggle financially as a result of the COVID-19 crisis, some are considering merging with another organization to survive. Nonprofit mergers are nothing new, of course, but they're not always a good idea. Read on to learn some of the factors you should weigh when evaluating merger opportunities.
Wise reasons to merge
Successful mergers are based on a foundation of solid motivations. For example, you might decide to merge to establish the stability that makes it easier to pursue your mission. Such a union could lead to a stronger organization better able to survive difficult times. You also might want to merge to reduce the competition for funding, which could intensify as cash-strapped state governments cut back on their nonprofit grants and contracts in the wake of the pandemic.
A merger can help nonprofits achieve economies of scale that will make the merged organization more efficient, too. This might come, for example, from combining infrastructures — everything from staffing and board leadership to administration, information systems, human resources and accounting.
A merger could also give you access to a wider network, as well as more perspectives and experiences to base decisions on. And it might enable you to provide more programming or add locations.
Questionable reasons to merge
For all of the worthwhile reasons to consider a merger, it's important to remember that mergers do fail. One common reason is that the merger itself, as well as the new organization, can cost much more than expected. In the short term, for example, you'll need to finance transactional and integration costs.
Over the longer term, larger and more complex organizations generally incur greater costs than smaller ones. Moreover, any dollars saved by a nonprofit typically are invested in programming because the demand for services is always there. Improved efficiency — not reduced costs — should be the driving force behind a proposed merger.
Arrangements intended to "rescue" a failing organization are another red flag when it comes to nonprofit mergers. In this scenario, you usually see a larger, more stable nonprofit swoop in to save a smaller counterpart that, despite its weaknesses, has something to offer, such as loyal donors or lucrative government contracts. But a merger isn't likely to solve problems such as poor leadership or business practices. The better approach in such a situation is for the larger nonprofit to acquire assets, or viable pieces, of the smaller organization. These can enhance the acquiring organization without adding liabilities.
Potential partners
If you do decide to proceed with a merger, start the process by identifying a likely candidate with which to combine forces. A misstep easily could doom a merger to failure.
What should you look for in a merger partner? First and foremost, the two organizations should share similar missions, values and cultures. If these aren't aligned, it will prove nearly impossible to unite around a common vision for the future.
That doesn't mean you have to offer duplicative services, but they should at least complement each other. For example, an organization that helps the homeless find homes might team up with a nonprofit that provides employment services to the economically disadvantaged. If you find yourself constantly competing with an organization for resources, odds are you're well aligned.
Proceed with caution
Regardless of the impetus, merging two nonprofits is no small task, and you'll want to tap outside expertise. Financial and legal due diligence, contract negotiation and organizational reintegration are time-consuming and challenging. Don't go it alone.


text: In January 1977 the Government of the Philippines awarded two long-term concession contracts, handing over to private consortia the responsibility to operate and expand water and wastewater services in Greater Manila. The Metropolitan Waterworks and Sewerage System (MWSS) privatization was the largest of its kind in the world. The author tells the story of how the idea of a concession emerged and gained support; how the preparation effort was designed and launched; the main hurdles met and how they were surmounted; and the thinking behind some of the key contract features. The objective of this book is to help fellow government officials facing similar challenges in other countries to be better prepared for some of the issues they will have to address, and to move faster on their own learning curve. Each case of utility reform is specific, but some principles are valid across countries: the importance of sustained high-level political commitment; the need for a strong and dedicated government team supported by experienced advisors; the value of a transparent bidding process; and the need to communicate and consult broadly. This book is unique in bring them to life in a step-by-step, first-person account of such transaction.


text:
Animals & comic scenes
Other popular themes in Victorian Christmas cards are birds and animals, often depicted in amusing ways, and comic scenes. Dogs, cats, and songbirds were regular subjects in Victorian cards, as they are today. However, the use of frogs, rats, mice, and insects in Christmas cards has declined over the years.
Comic cards usually present situations involving winter scenes, Christmas customs, or politics and current events. While some still amuse us, others treated topics of a less enduring nature and now tend to baffle us.


text:
The Feeds and Pet Food Bill has been drafted to provide for:
- the regulation of feed and pet food;
- the regulation of feed ingredients used in the manufacturing of feed and pet food;
- the licensing or registration of facilities used for the manufacturing of feed or pet food;
- the appointment of a Registrar to administer the Act;
- the appointment of advisory committees, advisers, assignees, auditors, and inspectors to assist the Registrar in the exercise of his or her powers in the regulation, compliance monitoring and enforcement of this Act.
- the need to ensure the manufacturing of safe feed for animals intended for human consumption;
- the need to ensure the manufacturing of safe pet food intended for companion animals;
- the critical role that feed play in food safety, nutrition and food security;
- the need for a traceability system within the feed and pet food industries.
AND IN ORDER TO –
- protect the consumers and users of feed and pet food;
- disseminate an efficient and effective traceability system;
- ensure compliance with food safety requirements.
THE WAY FORWARD
During 2018, the Agriculture Inputs Control division of DAFF has successfully submitted the required Socio-Economic Impact Assessment Study (SEIAS) to the presidency in support of the Feeds and Pet Food Bill's application for publication. The Minister of Agriculture has subsequently signed the Bill and it is expected to be published in the Government Gazette by early January 2019.
Comments on the Bill can be submitted after publication and discussed with the Registrar during the national consultation sessions scheduled to commence during March 2019.


text:
On Centro-Affine Curves and Bäcklund Transformations of the KdV Equation
- 8 Downloads
We continue the study of the Korteweg-de Vries equation in terms of cento-affine curves, initiated by Pinkall. A centro-affine curve is a closed parametric curve in the affine plane such that the determinant made by the position and the velocity vectors is identically one. The space of centro-affine curves is acted upon by the special linear group, and the quotient is identified with the space of Hill's equations with periodic solutions. It is known that the space of centro-affine curves carries two pre-symplectic structures, and the KdV flow is identified with is a bi-Hamiltonian dynamical system therein. We introduce a one-parameter family of transformations on centro-affine curves, prove that they preserve both presymplectic structures, commute with the KdV flow, and share the integrals with it. Furthermore, the transformation commute with each other (Bianchi permutability). We also describe integrals of the KdV equation as arising from the monodromy of Riccati equations associated with centro-affine curves. We are motivated by our work (joint with M. Arnold, D. Fuchs, and I. Izmenstiev), concerning the cross-ratio dynamics on ideal polygons in the hyperbolic plane and hyperbolic space, whose continuous version is studied in the present paper.
KeywordsKorteweg-de Vries equation Centro-affine curves Bäcklund transformation Riccati equation Bianchi permutability Bi-Hamiltonian structure
It is a pleasure to acknowledge the stimulating discussions with A. Calini, A. Izosimov, I. Izmestiev, B. Khesin, and V. Ovsienko. Many thanks to the referee for useful comments and suggestions. This work was supported by NSF Grant DMS-_PHONE_.
- Arnold, M., Fuchs, D., Izmestiev, I., Tabachnikov, S.: Cross-ratio dynamics on ideal polygons. arXiv:1812.05337


Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
..
Failed to load latest commit information.
SampleApp
plugin
.gitignore
LICENSE
Readme.md
Readme.md
QtBridge
QtBridge is a WebWorks 2.0/Cordova native extension that provides a dynamic bridge between Qt and JavaScript allowing you to leverage Qt APIs directly from javascript, including the use of Qt signals and slots. With QtBridge you can easily create a custom qt class and expose it directly to javascript (see Custom Qt Classes below).
Applies To
Author
Contents
Javascript API
The api exports a global module as Qt and blackberry.qt.
A simple example is shown here:
if (Qt.initialize()) {
 var deviceInfo = Qt.createObject("bb.device.DeviceInfo");
 console.log("Current Orientation: " + deviceInfo.orientation);
 var connectionId = deviceInfo.connect("orientationChanged", function (newOrientation) {
 console.log("Orientation changed to " + newOrientation);
 });
} else {
 console.log("Could not initialize QtBridge.");
}
See the Sample Application for an full example of how to use the API.
Object Methods
Object methods are available on any object created by QtBridge.
introspect()
Introspect returns a json representation of a QObject. This method is used internally to define object properties and functions when an object is created. Use this method if you want to inspect the details of a QObject class that are not reflected in the resulting object structure: e.g. which signals are change events for which properties.
connect(string signal, function slot)
Connects the specified signal on the object obj to the function slot. Returns an id that can later be used with disconnect().
 - signal The name of the signal to be connected.
 - slot The javascript function to be executed when the signal is fired.
Example:
var connectionId = deviceInfo.connect("orientationChanged", function (newOrientation) {
 console.log("Orientation changed to " + newOrientation);
});
disconnect(object obj, string signal, [function or id] slot)
Disconnects the specified signal on the object obj from a previously connected function.
 - signal The name of the signal to be disconnected.
 - slot An function previously connected, or an id previously returned, by connect()
Example:
deviceInfo.disconnect("orientationChanged", connectionId)
destroy()
Destroys the C++ QObject and cleans up any signals and slots connections that were made to/from the object. You should call this method whenever you want to free an object created by QtBridge. This is the equivalent of calling deleteLater() from C++.
Global Methods
Global methods are available on the global object (Qt or blackberry.qt).
initialize()
Loads the qt core shared libraries and starts the module thread. Calling this method more than once will have no effect. Returns true if the module was successfully loaded.
terminate()
Unloads the qt core shared libraries, as well as any additional libraries that were loaded by this module and shuts down the module thread. Returns true if the module was successfully unloaded.
createObject(string class)
Creates an new qt object.
 - class The fully qualified name of the C++ class (separated by "." not "::"). Optionally, an API level may be specified by appending an "@" followed by the api level to the class string. By default, the highest API level will be selected.
Example:
var deviceInfo = Qt.createObject("bb.device.DeviceInfo");
var deviceInfo_v1 = Qt.createObject("bb.device.DeviceInfo@1.0");
listNamespace(string namespace)
Returns a list of classes available in the specified namespace. This is useful for feature detection.
 - namespace A fully qualified namespace (separated by "." not "::")
Example:
var classList = Qt.listNamespace("bb.device");
connect(object obj, string signal, function slot)
Connects the specified signal on the object obj to the function slot. Returns an id that can later be used with disconnect().
 - obj An object created by createObject().
 - signal The name of the signal to be connected.
 - slot The javascript function to be executed when the signal is fired.
Example:
var connectionId = Qt.connect(deviceInfo, "orientationChanged", function (newOrientation) {
 console.log("Orientation changed to " + newOrientation);
});
disconnect(object obj, string signal, [function or id] slot)
Disconnects the specified signal on the object obj from a previously connected function.
 - obj An object created by createObject().
 - signal The name of the signal to be disconnected.
 - slot An function previously connected, or an id previously returned, by connect()
Example:
Qt.disconnect(deviceInfo, "orientationChanged", connectionId);
Global Properties
Global properties are available on the global object (Qt or blackberry.qt).
initialized
Returns true if the qt module is currently loaded and running.
Custom Qt Classes
QtBridge can use any QObject-based C++ classes that are registered with the qml type system. A complete sample class that demonstrates this feature can be found in the QtBridge native extension in the CustomModules folder with the name Module1.
Creating a custom Class
To expose your custom C++ class to javascript through QtBridge, you will need to do the following:
 - Inherit from QObject
 class Module1: public QObject

 - Use the Q_OBJECT macro in your class definition
 - Exposed methods must be a slot (marked with Q_SLOT/Q_SLOTS) or invokable (marked with Q_INVOKABLE)
 Q_SLOT void doSomething();
 Q_INVOKABLE QString doSomethingWithResult();

 - Exposed properties must be declared with Q_PROPERTY
 Q_PROPERTY (QString constantProperty READ constantProperty CONSTANT)
 Q_PROPERTY (QString fullProperty READ fullProperty WRITE setFullProperty NOTIFY fullPropertyChanged)

 ...

 public:
 QString constantProperty() const;
 QString fullProperty() const();
 void setFullProperty(QString fullProperty);

 Q_SIGNALS:
 void fullPropertyChanged();

 - Your class must be declared as a qml type with QML_DECLARE_TYPE(fully::qualified::class) outside any namespaces
 QML_DECLARE_TYPE(custom::Module1)

 - Your class must be registered with qmlRegisterType<fully::qualified::class>("fully.qualified", 1, 0, "Class") in the registerCustomTypes function in CustomModules/CustomModules.cpp to make QtBridge aware of your class
 void registerCustomTypes() {
 qmlRegisterType<custom::Module1>("custom", 1, 0, "Module1");
 }

Sample Class
How To Build
The Extension
 1. Clone this repo to your local machine>
 2. Ensure the BlackBerry 10 Native SDK is correctly installed
 3. Import the native extension project into momentics. It is located at /plugin/src/blackberry10/native within this project
 4. Build the native extension project for all architectures: Right click on the project and choose "Build Configurations" > "Build All".
The App
 1. Clone this repo to your local machine.
 2. Ensure the BlackBerry 10 WebWorks SDK 2.0 is correctly installed.
 3. Open a command prompt (windows) or terminal (mac/linux) and run the following command:
 webworks create <your source folder>\QtBridgeSample

 4. Replace the default \QtBridgeSample\www folder with the \SampleApp\www folder from this project
 5. Replace the default \QtBridgeSample\config.xml with the \SampleApp\config.xml from this project
 6. From the command prompt (Windows) or terminal (mac), navigate to the QtBridgeSample folder
 cd <your source folder>\QtBridgeSample

 7. Run the following commands to configure plugins used by this app
 webworks plugin add <path to this project>/plugin

 8. Run the following command to build and deploy the app to a device connected via USB
 webworks run

Notes
Linux users: replace webworks with cordova in all of the above commands
More Info
Contributing Changes
Please see the README of the Webworks-Community-APIs repository for instructions on how to add new Samples or make modifications to existing Samples.
Bug Reporting and Feature Requests
If you find a bug in a Sample, or have an enhancement request, simply file an Issue


text:
© [[diabetes type 2 case study]] diabetes destroyer system, treatment for type 2 diabetes and obesity 3-step diabetes destroyer by david andrews - diabetes type 2 case study real review. Case study: a 52-year-old woman with obesity, poorly controlled type 2 diabetes, and symptoms of depression marjorie cypress, ms, c-anp, cde. © case study on diabetes type 2 read about the root cause of case study on diabetes type 2 diabetes, [[case study on diabetes type 2]] type 2 diabetes gaps diet diabetes destroyer system. Case study on diabetes type 2 guess what we found out, [[case study on diabetes type 2]] type 2 diabetes mellitus nature foods that cure diabetes.
★ diabetes type 2 case study ★ diabetes type 2 symptoms francais [[diabetes type 2 case study]], the 7 steps to health and the big diabetes lie is a program which tackles the ever increasing problem of diabetes in the cosmos and exposes some revelatory brand new advice regarding the condition. ★ diabetes type 2 case study ★ type 2 diabetes drugs in development [[diabetes type 2 case study]], diabetes type 2 case study well, a average device that object may be a scam are when there are numerous websites specifically designed to treat and hawk a single product. Case study for diabetes type 2 jumpstart your pancreas & avoid amputation + bonuses, type 2 diabetes mellitus subjects conspiracy preventing a diabetes cure. Medications for species 2 diabetes all the message beneath applies to patients who are not pregnant or breastfeeding at donate the only recommended system of controlling diabetes in women who are pregnant or breastfeeding is by case study of diabetes mellitus type 2 scribd diet, exercise, and insulin therapy. © diabetes type 2 case study pdf diabetes destroyer is an ebook that diabetes type 2 case study pdf promises to treat your diabetes, [[diabetes type 2 case study pdf]] type 2 diabetes how to control it cured diabetes in five steps.
© [[type 2 diabetes case study]] by david andrews real review, type 2 diabetes exercise and lifestyle discover how to schedule the type 2 diabetes case study food consuming. ★ diabetes type 2 case study pdf ★ type 2 diabetes what food to avoid [[diabetes type 2 case study pdf]], diabetes type 2 case study pdf the extensive index is written in a clear, brief with ingenuous speech in mind, with user-friendly and pratical tips to implement. ★ diabetes type 2 case study pdf ★ how long to reverse type 2 diabetes [[diabetes type 2 case study pdf]], diabetes type 2 case study pdf although diabetes destroyer program by david andrews is regarded as a ordinary treatment, it can stagnant be sociable to seek doctor's advice on how finest to use it to get the. The following case study illustrates the clinical role of advanced practice nurses in the management of a patient with type 2 diabetes case presentation ab is a retired 69-year-old man with a 5-year history of type 2 diabetes.
© case study for diabetes type 2 :: 3-step diabetes destroyer by david andrews - case study for diabetes type 2 real review, diabetes type 2 glucose levels type 2 diabetes destroyer review. ★ case study for diabetes type 2 ★ type 2 diabetes ketosis resistant [[case study for diabetes type 2]], gestational diabetes this style affects females during pregnancy some women posses extraordinary tall levels of glucose in their blood, and their bodies are unable to effect enough insulin to transport all of the glucose into.
Diabetes type 2 case study overview:: ★ diabetes type 2 case study ★ type 2 diabetes prevalence in the uk [[diabetes type 2 case study]], type 2 diabetes is not a life sentence: most doctors only prattle about diabetes treatment, diabetes headship and diabetic curb using drugs, pills, injections and surgery. Case study: new-onset diabetes: while comparing patients with new-onset type 1 and type 2 diabetes, one study 5 found those with clinical diabetes jan 2012.
Type 2 diabetes mellitus case study on diabetes type 2 most commonly develops in adulthood and is additional likely to befall in case study on diabetes type 2 relatives who are portly and physically inactive3 unlike genre 1 diabetes which currently cannot be prevented, many of the risk factors for genus 2 diabetes can be modified. Type 2 diabetes case study special offer & free bonus, [[type 2 diabetes case study]] obesity and type 2 diabetes data diabetes destroyer scam or not. Silvio e inzucchi, md, offers his clinical perspectives in this case study exploring management and treatment of a patient with type 2 diabetes and multiple comorbidities, including heart failure, obesity, and coronary artery disease. Presentation rc is a 57-year-old man with type 2 diabetes first diagnosed 2 years ago other medical problems include obesity and hypothyroidism. Type ii diabetes mellitus submitted by: bsn iv- g mark anthony s castillo chonamarie r butardo submitted to: ms heidee fajardo.


text:
July 13, 2010 Fewer males than females are surviving the negative effects of inbreeding in a reintroduced population of a rare New Zealand bird, reports new research published in Proceedings of the Royal Society B.
Studying a population of the endangered New Zealand Hihi, researchers from the Zoological Society of London found that male survival rate was 24 per cent lower than their female siblings during early development, and as chicks.
The researchers analysed 98 clutches on Tiritiri Matangi Island, a predator free island off the East coast of New Zealand, where a population of 51 Hihi was reintroduced between 1995 and 1996. They also found that for both males and females, 35 per cent of eggs laid failed to hatch compared to an average of only 10 per cent hatching failure in outbred species.
Lead author Dr Patricia Brekke from the Zoological Society of London says, "Our results show that inbreeding can have serious implications for the long-term survival of reintroduced species."
She adds: "The major problem we face today is finding suitable habitats to support big enough populations that mean inbreeding is no longer a problem. In the case of the Hihi, options are limited."
The researchers believe that the greater sensitivity of male Hihi is due to the stress they undergo during early development. Hihi males are heavier than their sisters from a young age and grow to be larger and heavier by the time they fledge the nest. This fast growth rate, combined with hormonal changes, may be contributing to their low survival rate.
Co-author, Dr John Ewen says, "Reintroduction of rare species is an increasingly common conservation strategy, but we need to consider the longer-term ramifications of our management. One option is to initiate gene-flow between isolated small populations of Hihi by translocating individual birds, but this is labour intensive and requires considerable commitment."
He adds: "The situation we're facing with the Hihi highlights the need for a long-term perspective when using reintroduction as a strategy for ensuring the survival of endangered species."
New Zealand's Little Barrier Island currently holds the only self-sustaining and remnant population of Hihi. The researchers will continue to work with the local Department of Conservation and NGOs to manage relocated populations.
Other social bookmarking and sharing tools:
Note: Materials may be edited for content and length. For further information, please contact the source cited above.
- P. Brekke, P. M. Bennett, J. Wang, N. Pettorelli, J. G. Ewen. Sensitive males: inbreeding depression in an endangered bird. Proceedings of the Royal Society B: Biological Sciences, 2010; DOI: 10.1098/rspb.2010.1144
Note: If no author is given, the source is cited instead.


text:
Home screen starts very humble, but it is a good thing, no need to overwrite the user from the start. You can see the units of data capacity, capacity utilization, hard life, the interface speed and temperature. The temperature function is currently giving a false reading of some SanDisk units will be fixed in the next update.
- In the Performance tab provides real-time performance metrics, the Windows Performance Monitor survey data. You can see both the performance (MB / s) or IOPS performance for data reads and writes data.
- Users can also select the Optimize tab to cut the unit in this section in the operating systems that support the function.
- Tools of the section is quite extensive. Here you can update the firmware in two different ways. Dashboard is the first to reach the SanDisk servers and download / install the firmware. The second is to download the firmware yourself and then use the dashboard to install the firmware.
- Again, Windows 8 secure erased blocks, but SanDisk allows users to connect a USB storage device, the SanDisk software format and start the software to make clear SanDisk SSD.
- Disinfect also blocked by Windows 8, but SanDisk is working on a way to make all blocked functions working on the latest operating systems.
- If the device was encrypted with TCG Opal eDrive or software, can eliminate encryption and data unit with Crypto Erase function.
- In the dashboard, you can run a more or shortened SMART test.
- For more information on the device, all information on the device and attached speed, the model number, serial number, name worldwide and other details.
- The last tab under Tools that provide information on the operating system and the computer.
- At the bottom of the Tools page is a section called additional features. These are third-party software manufacturers functions. They are partners and SanDisk device features include cloning, antivirus, recovery after theft and security of the camera.
* Not available
OS: Windows All
SanDisk SSD Dashboard 184.108.40.206 Final


text:
Keywords:iron, molybdenum, X-ray absorption near edge structure (XANES), X-ray absorption fine structure (XAFS), the end-Permian mass extinction, pelagic deepsea
The presence of reduced iron (Fe) and significant increases in molybdenum (Mo) concentration in sedimentary rocks have been taken as evidence of reducing and highly reduced sulphidic depositional conditions, respectively. We performed extended X-ray absorption fine structure (EXAFS) analyses of Fe and X-ray absorption near edge structure (XANES) and Mo in lithified silicic sedimentary rocks from the pelagic deep-sea Permian–Triassic boundary section to determine their oxidation states and the bonding environments of the host phase of each element. The most dominant Fe-bearing minerals were pyrite and illite. Ferric minerals such as hematite were absent, which suggested reducing depositional and/or post-depositional conditions throughout the Permian–Triassic transition. On the other hand, tetravalent and hexavalent Mo (Mo(IV) and Mo(VI), respectively) were observed in the studied section by the XANES analysis. It is impossible to rule out the oxidative weathering in the outcrop and/or following experimental procedures for the presence of Mo(VI)-O species. However, Mo(IV)-S species dominates in the end-Permian horizons, which suggests that any post-depositional oxidative effect did not occur significantly at least for these samples and originated from sulphidic depositional environment with following diagenetic effects. Considering features of matured rock samples, preservation of Mo(IV) species would be helped by molybdenite formation during thermal late diagenesis and dense cementation by silicic materials forming matured sedimentary rocks. The absolute concentrations of Fe hosted in pyrite (Fe-pyrite) and S-bonding Mo(IV) (Mo(IV)-S) increased in the siliceous claystone beds just below the mass extinction boundary. However, the Fe-pyrite concentrations decreased while those of Mo(IV)-S species increased across the mass extinction boundary. This trend reflects decreased reactive Fe in bottom waters, likely caused by massive pyrite formation and increased reduced Mo(IV) under the prolonged stagnation of sulphidic deep water and ambient continental margin regions at the end-Permian.


Medical Dictionary
Chvostek's sign
noun Chvos·tek's sign \(ə-)ˌvs-ˌtek(s)-\
Medical Definition of CHVOSTEK'S SIGN
: a twitch of the facial muscles following gentle tapping over the facial nerve in front of the ear that indicates hyperirritability of the facial nerve
Biographical Note for CHVOSTEK'S SIGN
Chvos·tek \ˈvs-ˌtek\ Franz (1835–1884), Austrian surgeon. Chvostek was a military doctor and professor at a military medical school in Vienna. In 1876 he published an article in which he announced his discovery that in a patient with tetany, tapping the optic nerve in front of the ear produces a spasm of the cheek muscles. This sign of tetany now bears his name.
Variants of CHVOSTEK'S SIGN
Chvos·tek's sign or Chvos·tek sign \(ə-)ˌvs-ˌtek-\
April 21, 2015
omnipotent Hear it
having unlimited authority or influence
Take a 3-minute break and test your skills!
How to use a word that (literally) drives some people nuts.
Test your vocab with our fun, fast game
Ailurophobia, and 9 other unusual fears


text:
Original etching + lithographic colors
Limited edition of 585
DATE OF EDITION
"The Official Catalog of the Graphic Works of Salvador Dali" by Albert Field. N. 74 – 12, Reference A-L, pages 98-99. Published by The Salvador Dali Archives.
The series 'Conquest of Cosmos' ('La Conquête du Cosmos') consists of twelve original engravings with lithographic color.
Science has always been a passion for Salvador Dali, and ever since the launch of the Soviet artificial satellite into orbit in 1957, the great task for the humankind of conquering outer space was laid. Such a revolutionary step in the history of science led Dali to dream of the cosmic landscapes and inspired him to create the given set of engravings.
By looking through the series 'Conquest of Cosmos', the viewer can spot the iconic symbols of Dalinean art, such as the melted watch, crutches, the burning giraffe, butterflies, and many more.


Sunday, August 17, 2008
Q/A: What Thread-safe Rails Means
There's been a little bit of buzz about David Heinemeier Hansson's announcement that Josh Peek has joined Rails core and is about to wrap up his GSoC project making Rails finally be thread-safe. To be honest, there probably hasn't been enough buzz, and there's been several misunderstandings about what it means for Rails users in general.
So I figured I'd do a really short Q/A about what effect Rails thread-safety would have on the Rails world, and especially the JRuby world. Naturally there's some of my opinions reflected here, but most of this should be factually correct. I trust you will offer corrections in the comments.
Q: What does it mean to make Rails thread-safe?
A: I'm sure Josh or Michael Koziarski, his GSoC mentor, can explain in more detail what the work involved, but basically it means removing the single coarse-grained lock around every incoming request and replacing it with finer-grained locks around only those resources that need to be shared across threads. So for example, data structures within the logging subsystem have either been modified so they are not shared across threads, or locked appropriately to make sure two threads don't interfere with each other or render those data structures invalid or corrupt. Instead of a single database connection for a given Rails instance, there will be a pool of connections, allowing N database connections to be used by the M requests executing concurrently. It also means allowing requests to potentially execute without consuming a connection, so the number of live, active connections usually will be lower than the number of requests you can handle concurrently.
Q: Why is this important? Don't we have true concurrency already with Rails' shared-nothing architecture and multiple processes?
A: Yes, processes and shared-nothing do give us full concurrency, at the cost of having multiple processes to manage. For many applications, this is "good enough" concurrency. But there's a down side to requiring as many processes as concurrent requests: inefficient use of shared resources. In a typical Mongrel setup, handling 10 concurrent requests means you have to have 10 copies of Rails loaded, 10 copies of your application loaded, 10 in-memory data caches, 10 database connections...everything has to be scaled in lock step for every additional request you want to handle concurrently. Multiply the N copies of everything times M different applications, and you're eating many, many times more memory than you should.
Of course there are partial solutions to this that don't require thread safety. Since much of the loaded code and some of the data may be the same across all instances, deployment solutions like Passenger from Phusion can use forking and memory-model improvements in Phusion's Ruby Enterprise Edition to allow all instances to share the portion of memory that's the same. So you reduce the memory load by about the amount of code and data in memory that each instance can safely hold in common, which would usually include Rails itself, your static application code, and to some extent the other libraries loaded by Rails and your app. But you still pay the duplication cost for database connections, application code, and in-memory data that are loaded or created after startup. And you still have "no better" concurrency than the coarse-grained locking since Ruby Enterprise Edition is is just as green-threaded as normal Ruby.
Q: So for green-threaded implementations like Ruby, Ruby EE, and Rubinius, native threading offers no benefit?
A: That's not quite true. Thread-safe Rails will mean that an individual instance, even with green threads, can handle multiple requests at the same time. By "at the same time" I don't mean threads will never allow two requests to actually run concurrently or to utilize multiple cores. What I mean is that if a given request ends up blocking on IO, which happens in almost all requests (due to REST hits, DB hits, filesystem hits and so on), Ruby will now have the option of scheduling another request to execute. Put another way, removing the coarse-grained lock will at least improve concurrency up to the "best" that green-threaded implementations can do, which isn't too bad.
The practical implication of this is that rather than having to run a Rails instance for every process you want to handle at the same time, you will only have to run a certain constant number of instances for each core in your system. Some people use N + 1 or 2N + 1 as their metric to map from cores (N) to the number of instances you would need to effectively utilize those cores. And this means that you'd probably never need more than a couple Rails instances on a one-core system. Of course you'll need to try it yourself and see what metric works best for your app, but ultimately even on green-threaded implementations you should be able to reduce the number of instances you need.
Q. Ok, what about native-threaded implementations like JRuby?
A. On JRuby, the situation improves much more than on the green-threaded implementations. Because JRuby implements Ruby threads as native kernel-level threads, a Rails application would only need one instance to handle all concurrent requests across all cores. And by one instance, I mean "nearly one instance" since there might be specific cases where a given application bottlenecks on some shared resource, and you might want to have two or three to reduce that bottleneck. In general, though, I expect those cases will be extremely rare, and most would be JRuby or Rails bugs we should fix.
This means what it sounds like: Rails deployments on JRuby will use 1/Nth the amount of memory they use now, where N is the number of thread-unsafe Rails instances currently required to handle concurrent requests. Even compared to green-threaded implementations running thread-safe Rails, it willl likely use 1/Mth the memory where M is the number of cores, since it can parallelize happily across cores with only "one" instance.
Q: Isn't that a huge deal?
A: Yes, that's a huge deal. I know existing JRuby on Rails users are going to be absolutely thrilled about it. And hopefully more folks will consider using JRuby on Rails in production as a result.
And it doesn't end at resource utilization in JRuby's case. With a single Rails instance, JRuby will be able to "warm up" much more quickly, since code we compile and optimize at runtime will immediately be applicable to all incoming requests. The "throttling" we've had to do for some optimizations (to reduce overall memory consumption) may no longer even be needed. Existing JDBC connection pooling support will be more reliable and more efficient, even allowing connection sharing from application to application as well as across instances. And it will put Rails on JRuby on par with other frameworks that have always been (probably) thread-safe like Merb, Groovy on Grails, and all the Java-based frameworks.
Naturally, I'm thrilled. :)
 1. Great summary, thanks for writing it up!
 2. IronRuby will reap the same benefits as JRuby. Awesome write up!
 3. Concurrency is having more than one operation active (but possibly all suspended) at a time. Parallelism is having more than one operation making forward progress at the same time. Don't confuse the two.
 Because Ruby is green-threaded, and a thread may be switched out when a request is blocked on IO, the requests are in fact able to run concurrently. It's just that they're not running in parallel.
 4. That's the best thing i ever heard!!!
 5. Unfortunately, this:
 "If a given request ends up blocking on IO... due to DB hits... Ruby will now have the option of scheduling another request to execute."
 Is not correct, at least not for database client libraries like MySQL/Ruby, which call blocking C APIs, and block the Ruby whole interpreter.
 We need a lot more work on non-blocking client libraries before Rails will be able to get much from thread-level concurrency IMO.
 6. _USER_
 Technically true, but there's something you're not considering: Ruby O/RMs spend close to half their time in the interpreter. So Just because you're inside AR doesn't mean you're necessarily in blocking client driver IO.
 DataMapper sees quite a big boost from multiple threads because of this very issue.
 It's also true the boost isn't anywhere near what it might be with native threads or asynchronous drivers though.
 7. With the help of non blocking DB drivers for MRI [1] [2] This could be great news, since even MRI will be able to benefit [albeit 1.9, but hey, we do what we can].
 8. If you want a real thread safe solution in Ruby, look at Merb + datamapper. They've been doing that for a while now.
 9. A blog idea for you: so how would we be able to run jruby on rails as one threaded instance?
 Does it mean the dispatcher needs to be adjusted for this to happen or is there something that already works for this?
 10. _USER_: just download rails 2.2 when it comes out and run it on jruby. Should work out of the box--I think, and across all cores.
 11. What about File Upload? Is Rails 2.2 capable of handling multiple file uploads without tying up the Mongrel processes?
 12. You bet that we are thrilled!
 Great write up Charlie.