Transitivity of the Acquire-Release Semantic
Contents[Show]
A release operation synchronises with an acquire operation on the same atomic variable and establishes, in addition, ordering constraints. These are the components to synchronise threads in a performant way, in case they act on the same atomic. But how can that work, if two threads share no atomic variable? We want no sequential consistency because that is too heavy. We want the light acquire-release semantic.

The answer to the riddle is easy. Because of the transitivity of the acquire-release semantic, threads can be synchronised, which act independently of each other.
Transitivity
In the following example, the thread t2 with its work package deliveryBoy is the glue between the two independent threads t1 and t3.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// transitivity.cpp
#include <atomic>
#include <iostream>
#include <thread>
#include <vector>
std::vector<int> mySharedWork;
std::atomic<bool> dataProduced(false);
std::atomic<bool> dataConsumed(false);
void dataProducer(){
 mySharedWork={1,0,3};
 dataProduced.store(true, std::memory_order_release);
}
void deliveryBoy(){
 while( !dataProduced.load(std::memory_order_acquire) );
 dataConsumed.store(true,std::memory_order_release);
}
void dataConsumer(){
 while( !dataConsumed.load(std::memory_order_acquire) );
 mySharedWork[1]= 2;
}
int main(){

 std::cout << std::endl;
 std::thread t1(dataConsumer);
 std::thread t2(deliveryBoy);
 std::thread t3(dataProducer);
 t1.join();
 t2.join();
 t3.join();

 for (auto v: mySharedWork){
 std::cout << v << " ";
 }

 std::cout << "\n\n";

}

 The output of the program is totally deterministic. mySharedWork will have the values 1,2 and 3.
trans
 Why is the program totally deterministic? There are two important observations:
 1. Thread t2 waits in line 18 until thread t1 has set dataProduced on true (line 14).
 2. Thread t3 waits in line 23 until thread t2 has set dataConsumed on true (line 19).
The rest is easier explained with a picture.
transitivity
 The important parts of the picture are the arrows.
 - The blow arrows are the sequenced-before relations. That means, that all operations in one thread will be executed in source code order.
 - The red arrows are the synchronize-with relations. The reason is the acquire-release semantic of the atomic operations on the same atomic. So the synchronisation between the threads takes place.
 - As well sequenced-before as synchronizes-with establishes a happens-before relation.
The rest is pretty simple. The chronological order of the instructions (happens-before) corresponds to the direction of the arrows from top to bottom. So, we have the guarantee, that mySharedWork[1] == 2 will be executed last.
What's next?
That was a short and concise post. But that is my plan in order to keep the parts easy to digest. That will change with the next post. Because I will write about the legendary std::memory_order_consume memory order.

Thanks a lot to my Patreon Supporters: Matt Braun, Roman Postanciuc, Tobias Zindl, Marko, G Prvulovic, Reinhold Dröge, Abernitzke, Frank Grimm, Sakib, Broeserl, António Pina, Sergey Agafyin, Андрей Бурмистров, Jake, GS, Lawton Shoemake, Animus24, Jozo Leko, John Breland, Louis St-Amour, Venkat Nandam, Jose Francisco, Douglas Tinkham, Kuchlong Kuchlong, Robert Blanch, Truels Wissneth, Kris Kafka, Mario Luoni, Neil Wang, Friedrich Huber, lennonli, Pramod Tikare Muralidhara, Peter Ware, Daniel Hufschläger, Alessandro Pezzato, Evangelos Denaxas, Bob Perry, Satish Vangipuram, Andi Ireland, Richard Ohnemus, Michael Dunsky, Leo Goodstadt, John Wiederhirn, Yacob Cohen-Arazi, Florian Tischler, Robin Furness, Michael Young, Holger Detering, Bernd Mühlhaus, Matthieu Bolt, Stephen Kelley, Kyle Dean, Tusar Palauri, Dmitry Farberov, Ralf Holly, Juan Dent, George Liao, Daniel Ceperley, and Jon T Hess.

Thanks in particular to Jon Hess, Lakshman, Christian Wittenhorst, Sherhy Pyton, Dendi Suhubdy, Sudhakar Belagurusamy, Richard Sargeant, Rusty Fleming, Ralf Abramowitsch, John Nebel, and Mipko.

My special thanks to Embarcadero CBUIDER STUDIO FINAL ICONS 1024 Small

My special thanks to PVS-Studio PVC Logo

Mentoring Program in English
Do you want to stay informed about my mentoring programs? Write to This email address is being protected from spambots. You need JavaScript enabled to view it..
Seminars
I'm happy to give online seminars or face-to-face seminars worldwide. Please call me if you have any questions.
Bookable (Online)
German
Standard Seminars (English/German)
Here is a compilation of my standard seminars. These seminars are only meant to give you a first orientation.
New
Contact Me
Modernes C++,
RainerGrimmSmall
Comments
0 #1 Fabio 2021-06-28 10:33
May be a mistake:
"Why is the program totally deterministic?
There are two important observations:
1 Thread t2 waits in line 18 until thread t3 has set dataProduced on true (line 14).
2 Thread t1 waits in line 23 until thread t2 has set dataConsumed on true (line 19).
The rest is easier explained with a picture."
I suppose you inverted t1 with t3
Quote
My Newest E-Books
Course: Modern C++ Concurrency in Practice
Course: C++ Standard Library including C++14 & C++17
Course: Embedded Programming with Modern C++
Course: Generic Programming (Templates)
Course: C++ Fundamentals for Professionals
Interactive Course: The All-in-One Guide to C++20
Subscribe to the newsletter (+ pdf bundle)
Blog archive
Source Code
Visitors
Today 305
Yesterday 6407
Week 34487
Month 6712
All _PHONE_
Currently are 177 guests and no members online
Kubik-Rubik Joomla! Extensions
Latest comments


text:
NI, the provider of platform-based systems that enable engineers and scientists to solve the world's greatest engineering challenges, announced that major automotive manufacturers like Subaru are using NI hardware-in-the-loop (HIL) technology to simulate actual road conditions for electric vehicle testing, eliminating environmental factors to reduce test time and costs.
Traditionally, engineers have conducted vehicle tests using finished cars on test courses or public roads to check the vehicle's performance and safety response. However, certain limitations, such as weather and fluctuating road surface conditions, can make it difficult to conduct reproducible tests on roads in a timely manner. Moreover, electric vehicles are extremely complex due to their many subsystems, which are all interdependent on each other. This complexity makes the job challenging for automotive test engineers with short development cycles and pressure to limit costs.
To combat these issues, Subaru replaced the roads in the validation tests with a NI HIL simulation solution built on NI PXI products and LabVIEW software. With the HIL system, Subaru can eliminate environmental factors and thoroughly and efficiently test a vehicle's embedded controller in a virtual environment before running real-world diagnostics on the complete system.
"By using NI PXI products and LabVIEW, we were able to completely implement a customized HIL system in just one to two weeks and develop our software in-house," said Daisuke Umiguchi, Electrified Power Unit Research and Experiment Dept., Subaru Corporation. "This helped us keep product purchasing costs to around one-third of the cost of adopting solutions from other companies, and, because of our familiarity with LabVIEW, keep our software development costs to around one-sixth of the cost of commissioning an outside developer."
Subaru further outfitted its vehicle test solution with a controller-driven dynamometer by HORIBA and CarSim vehicle dynamics simulation software deployed by Virtual Mechanics. Together, they produce load conditions equivalent to those generated on actual roads. This driving system transmits the calculated values to the NI HIL system in real time to create closed-loop control between the models on the HIL system and the driving system. As a result, the HIL interaction system can apply the appropriate load to the vehicle throughout the tests.
Subaru plans to use this test system at the final stages of development for electric vehicles as a final quality check, and eventually expand its use for all car types. By adopting this system, Subaru anticipates reducing labor hours by half compared to conventional methods.

source: openbmb/Ultra-FineWeb


a Duck. In other words, the presence of a method with a name that you recognize from some context is proof enough that the object responds to that method in a way that makes sense in the context you had in mind.
That often works.
False Cognates
Sometimes it doesn't work. Suppose (and yes, this is already a cliché in Perl circles) that your program models a park. You have a Dog class. You have a Tree class. Given an object for which you don't immediately know its type -- assume you're using a dynamic language or that your genericity system performs type erasure and you're effectively using a dynamic language -- do you know which bark() method is appropriate in any given situation?
This is the false cognate problem; the name of a method is not always sufficient to determine its intended meaning.
Duck Typing and Type Checking
Defense-minded duck typers soon realize that blindly calling methods on objects of unknown type is a recipe for disaster. (To be fair, a well-organized program runs into this problem rarely. Even in the absence of strict typing -- or manifest types -- it's rare not to know the types of objects you expect within specific scopes in the program. Then again, I don't add error checking to my programs because I expect exceptional conditions to occur frequently.)
One approach is to use object introspection to see if the object in question really does support the required method. In Perl, this is:
croak 'Duck typing failure' unless $dog_or_tree->can( 'bark' );
Or in Ruby, something like:
raise 'Duck typing failure' unless dog_or_tree.respond_to?( 'bark' )
If you want to get stricter, and if your language supports this, you can even check the arity or types of the allowed signatures of the method -- but look at all of the boilerplate code you have to write to make this work. That's also code to check only a single method.
Suppose you want to call several methods on the object. You could check can() or respond_to? for each of them... but at this point, people often check the class inheritance of the object, in Perl with:
croak 'Duck typing failure' unless $dog_or_tree->isa( 'Dog' );
Or in Ruby, somethin like:
raise 'Duck typing failure' unless dog_or_tree.is_a?( 'Dog' );
Of course, this precludes other ways in which your object can perform the correct bark() methods: reimplementing it, mixing it in from elsewhere, delegating to it, or composing it -- unless you explicitly lie to the rest of the system about the identity of your object by overriding isa() in Perl or is_a? in Ruby.
Liars tend to get caught, and the results can be messy.
Roles, False Cognates, and Identity
In the context of a Dog, it's obvious what bark() means. In the context of a Tree, it's obvious what bark() means. Without that context, you just don't know.
Roles add that context back. If you want to deal with a Dog, check that the provided object performs the Dog role. Similarly for Tree. Instead of asking "Do you provide a method with this name?", ask "Do you perform this role?" The latter question avoids false cognates and ensures that the class representing the provided object fulfills the contract required by that role at compilation time.
As well, you don't have to check the inheritance structure of a given object. It doesn't matter. The most important lesson of duck typing is that any object which provides an interface you both understand appropriately should be substitutable for any other object which provides that well-understood interface. How that object fulfills that interface is its own business.
Roles provide a way for developers to name a collection of behavior and then refer to objects -- generically -- in terms of whether they provide that collection of behavior. The ad hoc, free-form nature of duck typing is great for providing future extensibility; it doesn't lock your code into a rigid hierarchy that can prove brittle during future maintenance.
However, duck typing sometimes fails to provide enough information about necessary meaning and context, and the workarounds to make a duck typed program more robust can subvert the goals of duck typing.
Next time, I'll compare roles to (Java) interfaces.
Perl Roles Versus Inheritance
| 1 Comment
In The Why of Perl Roles I explained some of the motivations behind the inclusion of roles in Perl 6 and their implementation in Perl 5 through Moose.
One common question is "How do roles differ from subclasses?" (where "subclassing" means "inheriting state and behavior from a parent class" as in C++, Java, et cetera).
Reddit commenter netytan pointed out that plenty of OO research literature uses the word "inheritance" in a broader sense, but I'm limiting it here to the concrete behavior by which you can specialize a more general class and take on or override its behavior. Any poor academics who run across this, please feel free to bite your lip because I'm about to tell some lies to help explain things to people who may not read your papers for fun.
Features of Inheritance
Suppose you write a class:
class Parent
{
 method wipe_nose { ... }
 method tie_shoes { ... }
}
You've declared a type, Parent, which has a specific interface (methods wipe_nose and tie_shoes) with specific signatures (zero-arity methods, in the absence of other information such as language support for slurpy parameters or mandatory signature checking), and an implicit semantic meaning for the term Parent. That is, you've modeled an entity representing some ideal. Whenever you refer to a Parent in your code, you mean this entity. Whenever you invoke the wipe_nose method on anything you treat as a Parent, you have specific behavior in mind -- the wipe_nose it makes sense for a Parent to do.
Suppose you extend this Parent by subclassing it (what I refer to here as "inheritance"):
class Child extends Parent
{
 method wipe_nose { ... }
 method play_in_mud { ... }
}
This declares another type, Child, which behaves as a Parent (revealing uncomfortable semantic properties of my naming system here). In theory, anywhere I can use a Parent appropriately, I can use a Child appropriately. (The Liskov Substitution Principle applies.)
The converse is not true; a Child is a specialization of a Parent. You can see this in that the Child class defines another method, play_in_mud, which is not present in Parent. Parents can't play in the mud, lest they get their shoes dirty. (Of course my parents still think of me as their child, and I can take off my shoes anytime I want -- so the code example isn't as wrong as it could be. Real life is taxonomic weird.)
You've probably also noticed that the Child does not declare a tie_shoes method. The Parent implementation of tie_shoes suffices.
Even this simple example implies several features of this type of inheritance:
 - Classes define types which represent named collections of state and behavior. (Type declarations.)
 - Classes can extend or specialize other classes. (Subtyping -- though see Contra vs. Covariance for some debate over what languages can and should provide.)
 - Classes can include behavior from superclasses or reimplement behavior. (Code reuse.)
In my mind, this type of inheritance conflates two separate concerns: type relationships and code reuse.
When Inheritance Attacks
Problems arise when you want one or the other but not both (or at least not in the way the language supports).
Suppose you want to write a Guardian class which performs the same behaviors as the Parent class:
class Guardian
{
 method wipe_nose { ... }
 method tie_shoes { ... }
}
How do you express that a Guardian is equivalent and semantically substitutable for a Parent everywhere (at least in terms of the behavior described here)?
If your language supports this, and if you have the ability to modify the declaration and use of Parent, and if you can reify the results to something concrete, you could extract Parent into an interface like Java supports -- perhaps ICanHasChild.
What if the implementation of wipe_nose is the same between Parent and Guardian? You could subclass Parent to create Guardian and inherit the implementation of those two methods, but then Child has to subclass Guardian -- and speaking of weird taxonomic relationships, that hierarchy doesn't make sense either.
Then there's multiple inheritance and abstract base classes and other approaches to try to minimize all of the complexity of the conflation of these two separate ideas.
The Role Separation of Concerns
The important attribute of the Guardian type is that a Guardian can act like a Parent. It supports the same behaviors that a Parent supports. It may need to reuse some implementation from the Parent, but it's not clear that it has a hierarchical taxonomic relationship to a Parent.
Imagine instead if you could write:
class Guardian does Parent
{
 method wipe_nose { ... }
 method tie_shoes { ... }
}
Presuming you have a role-based type system, every place in your code that checks for


text:
Dictionary of Wisconsin History
Search Results for: the letter 'N'
Term: North Freedom [origin of place name]
Definition: Village located in the northern part of the town of Freedom, hence North Freedom. Where the roads meet in the center of the section was originally called Hackett's Corners from the families residing there. When the railroad was built two plats were made, one called Bloom for George W. Bloom and one called North Freedom. Afterwards, Bloom station was changed to North Freedom. Iron ore used for paint was later discovered and the name became Bessemer in honor of Sir Henry Bessemer, who invented the process of reducing iron ore. The name of North Freedom was later decided upon.
[Source: Cole. Baraboo and Other Place Names of Sauk County.]
340 records found
Nabob [origin of place name]
Nabob, Washington Co.
Nagawicka Lake, Waukesha Co.
Nagawicka [origin of place name]
Nager, Edward 1927
Naleid, Roy E. 1901
Namakagon [origin of place name]
Namakagon, Town of, Bayfield Co.
Namekagon (town and river) [origin of place name]
Namekagon River (Historic Marker Erected 1967)
Namekagon, Bayfield Co.
Namekagon, Town of, Bayfield Co.
Namekagon-Court Oreilles Portage (Historic Marker
Namur, Door Co.
Nancy, Town of, Washburn Co.
Naples, Town of, Buffalo Co.
narrow gauge (railroads)
Narrows Creek, Sauk Co.
Nasbro, Dodge Co.
Nasewaupee [origin of place name]
Nasewaupee, Town of, Door Co.
Nash, Charles Dennis 1819 - 1897
Nash, Charles W. 1864 - 1948
Nash, Philleo 1909
Nash, William Francis 1847 - 1916
Nashotah (Town) [origin of place name]
Nashotah Lakes, Waukesha Co.
Nashotah Mission (Historic Marker Erected 1968)
Nashotah, Village of, Waukesha Co.
Nashotah, Waukesha Co.
Nashville, Forest Co.
Nashville, Town of, Forest Co.
Nasonville [origin of place name]
Nasonville, Wood Co.
Nass, Stephen L. 1952
Nation's First Cooperative Generating Station (His
Nation's First Watershed Project (Historic Marker
National Soldiers' Home (Historic Marker Erected 1
National Soldiers' Home (Milwaukee)
National Women's Party
Nattestad, Ole Knudsen 1807 - 1886
Natural Bridge, Richland Co.
Naugart, Marathon Co.
Navarino, Brown Co.
Navarino, Town of, Brown Co.
Nebagamon, Town of, Douglas Co.
Necedah [origin of place name]
Necedah, Juneau Co.
Necedah, Town of, Juneau Co.
Necedah, Village of, Juneau Co.
Neda, Dodge Co.
Neenah Guards (Civil War)
Neenah Rifles (Civil War)
Neenah [brief history]
Neenah [origin of place name]
Neenah, Town of, Winnebago Co.
Neenah, Winnebago Co.
Neillsville [origin of place name]
Neillsville, Clark Co.
Nekimi [origin of place name]
Nekimi, Town of, Winnebago Co.
Nekoosa Junction, Wood Co.
Nekoosa [origin of place name]
Nekoosa, Wood Co.
Nelma, Forest Co.
Nelsen, Betty Jo 1935
Nelson Dewey-First Governor of Wisconsin (Historic
Nelson [origin of place name]
Nelson, Adolphys Peter 1872 - 1927
Nelson, Buffalo Co.
Nelson, Gaylord A. _PHONE_
Nelson, George Bliss 1876 - 1943
Nelson, John Mandt 1870 - 1955
Nelson, Town of, Buffalo Co.
Nelson, Village of, Buffalo Co.
Nelsonville (historical), Eau Claire Co.
Nelsonville, Portage Co.
Nelsonville, Village of, Portage Co.
Nemadji River [origin of place name]
Nemahbin, Town of, Milwaukee Co.
Nemodji, Town of, Douglas Co.
Nenno, Washington Co.
Neoclassical Revival (architecture)
Neopit, Menominee Co.
Neopit, Menominee leader,?-1913
Neopope, Sauk warrior, dates unverified
Neosho [origin of place name]
Neosho, Dodge Co.
Neosho, Village of, Dodge Co.
Nepeuskun, Town of, Winnebago Co.
Neptune, Richland Co.
Nerike, Pierce Co.
Neshkoro [origin of place name]
Neshkoro, Marquette Co.
Neshkoro, Town of, Marquette Co.
Neshkoro, Village of, Marquette Co.
Neshonoc [origin of place name]
Neshonoc, Town of, La Crosse Co.
Neshoto, Manitowoc Co. [origin of place name]
net tonnage (maritime)
Neubauer, Jeffrey A. 1955
Neuern, Kewaunee Co.
Neumann, Mark W. 1954
Neva Corners, Langlade Co.
Neva township [origin of place name]
Neva, Langlade Co.
Neva, Town of, Langlade Co.
Nevada, Green Co.
Neville, Arthur Courtenay 1850 - 1929
Nevin, James 1854 - 1921
Nevins, Clark Co.
New Amsterdam, La Crosse Co.
New Auburn [origin of place name]
New Auburn, Chippewa Co.
New Auburn, Village of, Chippewa Co.
New Berlin, Town of, Waukesha Co.
New Berlin, Waukesha Co.
New Boston, Town of, Brown Co.
New Buffalo [origin of place name]
New Buffalo, Town of, Sauk Co.
New Cassel [origin of place name]
New Chester (historical), Adams Co.
New Chester, Town of, Adams Co.
New City (historical), Trempealeau Co.
New Denmark, Town of, Brown Co.
New Dexter, Town of, Wood Co.
New Diggings, Lafayette Co.
New Diggings, Town of, Lafayette Co.
New Fane, Fond du Lac Co.
New Franken, Brown Co.
New Glarus (Historic Marker Erected 1962)
New Glarus [origin of place name]
New Glarus, Green Co.
New Glarus, Town of, Green Co.
New Glarus, Village of, Green Co.
New Haven [origin of place name]
New Haven, Town of, Adams Co.
New Haven, Town of, Dunn Co.
New Holstein [brief history]
New Holstein, Calumet Co.
New Holstein, Town of, Calumet Co.
New Hope, Portage Co.
New Hope, Town of, Portage Co.
New Lisbon, Election precinct of, Grant Co.
New Lisbon, Juneau Co.
New London [origin of place name]
New London, Waupaca Co.
New Lyme, Town of, Monroe Co.
New Mason, Town of, Bayfield Co.
New Milladore, Town of, Wood Co.
New Miner, Juneau Co.
New Munster, Kenosha Co.
New Paris, Sheboygan Co.
New Post, Sawyer Co.
New Prospect, Fond du Lac Co.
new red sandstone (mining)
New Remington, Town of, Wood Co.
New Richmond Cyclone (Historic Marker Erected 1997
New Richmond tornado (1899)
New Richmond, St. Croix Co.
New Rome (historical), Adams Co.
New Rome, Adams Co.
New Rudolph, Town of, Wood Co.
New Seneca, Town of, Wood Co.
New Sigel, Town of, Wood Co.
New Vesper, Town of, Wood Co.
New Wood, Town of, Wood Co.
New York Indians
New York Recording Laboratories
Newald, Forest Co.
Newald, Town of, Forest Co.
Newark Valley, Town of, Adams Co.
Newark, Rock Co.
Newark, Town of, Rock Co.
Newark, Town of, Washington Co.
Newbold, Oneida Co.
Newbold, Town of, Oneida Co.
Newburg, Village of, Washington Co.
Newburg, Washington Co.
Newhall House fire (1883)
Newhall, Daniel 1821 - 1895
Newman, Alfred William 1834 - 1898
Newport [origin of place name]
Newport, Town of, Columbia Co.
Newry, Vernon Co.
Newton Corners, Jefferson Co.
Newton [origin of place name]
Newton, Manitowoc Co.
Newton, Town of, Manitowoc Co.
Newton, Town of, Marquette Co.
Newton, Vernon Co.
Newtonburg, Manitowoc Co.
Newville

source: HuggingFaceFW/fineweb-edu


text: In this position paper, we argue that a combination of visualization and verbalization techniques is beneficial for creating broad and versatile insights into the structure and decision-making processes of machine learning models. Explainability of machine learning models is emerging as an important area of research. Hence, insights into the inner workings of a trained model allow users and analysts, alike, to understand the models, develop justifications, and gain trust in the systems they inform. Explanations can be generated through different types of media, such as visualization and verbalization. Both are powerful tools that enable model interpretability. However, while their combination is arguably more powerful than each medium separately, they are currently applied and researched independently. To support our position that the combination of the two techniques is beneficial to explain machine learning models, we describe the design space of such a combination and discuss arising research questions, gaps, and opportunities.


you are here: home > Worksheets > Neurocalendars
Neuroscience For Kids
neurocal What and when did events in the history of neuroscience occur? When were famous neuroscientists born? When did they die? When were important discoveries made? Did anything interesting happen on your birthday?
Find out with the handy-dandy NeuroCalendar. Pick a month, any month. Then print the calendar. It contains interesting dates, names and events about the brain and nervous system. The calendar for each month is in PDF so make sure you have the Adobe Acrobat reader. Print the calendar to keep track of the events throughout the year.
Calendars - 2014
References for these calendars include:
 1. Nobel Prize Winners (Neuroscience)
 2. Street, W.R. A Chronology of Noteworthy Events in American Psychology, American Psychology Association, Washington, DC, 1994.
 3. Accardo, P. The Medical Almanac, Totowa: Humana Press, 1992.
 4. National Institutes of Health
 5. Schlessinger, B.S. and Schlessinger, J.H. The Who's Who of Nobel Prize Winners _PHONE_, Phoenix: Oryx Press, 1991.
Download Adobe Acrobat
Copyright © _PHONE_, Eric H. Chudler, University of Washington


text:
It turns out that even the Mayan civilization, which hardly used metal, polluted the surrounding environment with mercury
Maya civilization that flourished before European settlement in southeastern Mexico were polluting the surrounding environment with mercury. Some cities had mercury pollution that exceeded modern standards, and evidence was found to suggest that the rulers of the time had chronic mercury poisoning.
A new study has found that multiple cities of the
Frontiers | Environmental legacy of pre-Columbian Maya mercury
Ancient Maya cities were dangerously contaminated with mercury - Science & research news | Frontiers
Ancient Maya Cities Appear to Have Been Riddled With Mercury Pollution : ScienceAlert
Speaking of environmental pollution by heavy metals, you may have a strong image of it occurring in modern society where industrialization has progressed. However, a research team led by Duncan Cook, a geological archaeologist at the Catholic University of Australia, examined past research data that analyzed the soil of 10 archaeological sites from the Mayan civilization classical period (around 250 to 950). Mercury pollution was confirmed at seven sites. One of the archaeological sites was found to have toxic levels of mercury that exceed modern standards, and it was also found that fairly serious pollution had occurred.
Since the Maya civilization and Europeans first came into contact with each other in the first half of the 16th century, all of the ruins studied in this study had declined by the 12th century, suggesting that mercury pollution was influenced by Western civilization. not. However, mercury is a metal that has been used all over the world for a long time, and among them, a mineral made of mercury sulfide (II) called'cinnabar'has been used in various civilizations including the Maya civilization as red (vermilion). has been used as a pigment for
by Orbital Joe
In fact, artifacts colored with mercury-containing paints and powders have been found at the ruins of the Mayan civilization. Professor Nicholas Dunning of the University of Cincinnati, co-author of the paper, pointed out that the bright red color of cinnabar was precious and sacred to the Maya civilization, who believed that 'blood' contained the power of the soul. However, people at that time did not know that mercury was deadly toxic, so it is believed that mercury leaked into the soil through gardens and floors.
Mercury can hardly be collected in the limestone-rich Maya region, but it is speculated that the Maya civilization obtained mercury mined from deposits at the edge of the Maya region through trade. Mercury has been mined in these deposits since the Olmec civilization, which flourished in BC, and the Maya civilization around 300 AD used mercury for coloring ornaments and burials.
It is not clear how much mercury pollution affected the Maya people, but chronic mercury poisoning causes damage to the central nervous system, kidneys, and liver, leading to tremors and paralysis, blindness, deafness, and mental health problems. known to cause problems. Dark Sun, one of the last rulers of Tikal, the economic center of the classical Maya civilization, is depicted as obese in murals, but one of the symptoms caused by chronic mercury poisoning is obesity.... apparently...
Possibility that the city of the ancient Maya civilization was abandoned because the water was contaminated with poison - GIGAZINE
"Environmental mercury contamination is commonly found in modern urban and industrial areas," Cook said. 'It's hard to explain without considering the archeology of the area, which shows that the Maya civilization used mercury for centuries.'
Also, co-author of the paper, Professor Tim Beach of the University of Texas at Austin, commented, ''Even the ancient Mayan civilization, which used little metal, greatly increased the concentration of mercury in the environment.'' Commented. It is sometimes pointed out that modern society is the era of the '' Anthropocene'' in which humans affect the geology and ecosystem of the earth, but the results of this research show that the '' Mayan Anthropocene '' existed. claimed to be proof.
in Science, Posted by log1h_ik


text:
Enter the outlet water temperature, inlet water temperature, and the temperature of the vacuum into the calculator to determine the condenser efficiency.
- Condenser Pump Head Calculator
- Reciprocating Compressor Volumetric Efficiency Calculator
- Thermal Efficiency Calculator
- COP (Coefficient of Performance Calculator)
- Thermal Energy Storage Tank Efficiency Calculator
Condenser Efficiency Formula
The following equation is used to calculate the efficiency of a condenser.
CE = (T2-T1) * 100 / (T3-T1)
- Where T2 is the temperature of the outlet water
- T1 is the temperature of the inlet water
- T3 is the temperature in the vacuum of the condenser
- CE is the condenser efficiency (%)
What is Condenser Efficiency?
A condenser efficiency is a measure of the performance of a surface condenser relative to the maximum thermal efficiency of the condenser system.
The condenser efficiency depends on the temperature difference between the inlet and outlet cooling waters as well as the temperature difference between the vacuum and inlet temperature.
How to Calculate Condenser Efficiency?
The following example outlines the steps and information needed to calculate the efficiency of a condenser.
First, determine the temperature of the cooling water at the inlet. In this example, the inlet cooling water has a temperature of 25 C.
Next, determine the temperature of the cooling water at the outlet. This is measured to be 35 C.
Next, determine the temperature in the vacuum at absolute pressure. For this condenser, this is found to be 50C.
Finally, calculate the condenser efficiency using the formula above:
Condenser Efficiency = (T2-T1) * 100 / (T3-T1)
Condenser Efficiency = (35-25) * 100 / (50-25)
Condenser Efficiency = 40%

source: m-a-p/FineFineWeb


Encyclopedia … combined with a great Buyer's Guide!
Lasers for Quantum Photonics
Definition: lasers which are specifically suitable for applications in quantum photonics
More general term: lasers
German: Laser für die Quantenphotonik
Categories: laser devices and laser physics, quantum optics
Author:
Cite the article using its DOI: _URL_
Get citation code: Endnote (RIS) BibTex plain textHTML
Various types of lasers are needed for specific purposes in quantum photonics. Often they have to meet quite special requirements. Some examples are given in the following sections.
Application Areas
Lasers as Pump Sources for Single-photon or Photon Pair Emitters
Single-photon emitters, as needed e.g. in quantum communications, are generally no lasers (even when containing a light emitter in an optical resonator). However, some of them (e.g. based on quantum dots) require a pulsed laser (e.g. a picosecond laser) as a pump source. Such a laser must provide a short light pulse with low pulse energy, preferably with a reasonable efficiency, i.e., with very low power consumption, and high beam quality. Often it also needs to emit in a special wavelength range. Laser diodes are frequently used.
For the generation of entangled photon pairs in nonlinear crystal materials, one also requires a pump laser. The demands can be very different depending on the concrete case, for example concerning pulsed or continuous-wave operation, optical power or pulse energy, emission wavelength, etc. Frequently, a short emission wavelength, a narrow linewidth and a high beam quality are required.
Lasers for Manipulating and Readout of Quantum Bits
Quantum bits (qbits) are often manipulated (e.g. initialized) and/or read with laser pulses. Essential requirements for the laser are usually a special emission wavelength and a small linewidth, as well as precise control of the timing and energy of the pulses.
Lasers for Trapping and Cooling of Atoms and Ions
Lasers are used for optical traps, capturing multiple atoms or ions, or sometimes a single atom or ion. Such atoms or ions can be used to represent quantum states. This often requires continuous wave operation of the laser(s) at a specific wavelength and with a low linewidth. Depending on the circumstances, the required optical power can be considerable.
Spectroscopy in Quantum Sensing and Metrology
Ultra-stable lasers with very low laser noise, a narrow linewidth, and possibly some wavelength tuning are used for precision spectroscopy in quantum sensing devices, where photon entanglement, single photons, or squeezed states of light are used for extremely precise measurements.
In some cases, a frequency comb from a accurately stabilized mode-locked laser is required instead of a single-frequency output. There are several powerful methods of frequency comb spectroscopy.
Indirect Uses
Lasers can also find various indirect uses for quantum photonics, e.g. for the fabrication of photonic integrated circuits by ultrashort pulse laser material processing
Typical Requirements
Some typical requirements for such lasers, as already mentioned above, are:
Suppliers
The RP Photonics Buyer's Guide contains six suppliers for lasers for quantum photonics. Among them:
See also: quantum photonics
Questions and Comments from Users
Here you can submit questions and comments. As far as they get accepted by the author, they will appear above this paragraph together with the author's answer. The author will decide on acceptance based on certain criteria. Essentially, the issue must be of sufficiently broad interest.
Please do not enter personal data here; we would otherwise delete it soon. (See also our privacy declaration.) If you wish to receive personal feedback or consultancy from the author, please contact him, e.g. via e-mail.
Spam check:
By submitting the information, you give your consent to the potential publication of your inputs on our website according to our rules. (If you later retract your consent, we will delete those inputs.) As your inputs are first reviewed by the author, they may be published with some delay.
preview
Share this with your friends and colleagues, e.g. via social media:
These sharing buttons are implemented in a privacy-friendly way!


text:
Characteristics of Effective School Teams
Since the inception of our project in 2003, we have learned a lot about what makes an effective school team and the general progression that teams go through as they create changes to reduce student stress and increase health and engagement at their school sites. While the change process varies from school to school based on the unique circumstances and needs of each, we share below some characteristics of effective Challenge Success teams and the stages most teams go through as they create change.
An effective Challenge Success school team:
- Is composed of 8-10 school community members representing a diversity of perspectives, including:
- A Team Leader to spearhead the work, facilitate meetings, and liaise with Challenge Success staff
- Administrators to provide have a system-level view of the school
- Teachers to represent the diverse perspectives of the faculty
- Parents to offer an understanding of the lives and needs of students outside of school
- Students to serve as experts on the student experience
- Attends the Challenge Success Fall and Spring Conferences.
- Develops an action plan that reflects a vision for change and that contains a clear but flexible schedule for moving forward.
- Regularly gathers information from and disseminates information to the school community about student health, engagement, and integrity, and encourages cross-stakeholder dialogue about this information.
- Holds meetings at least monthly to review and push forward the action plan.
- Involves all stakeholders at each stage of the change process.
- Pilots discrete, incremental changes rather than trying to do too much all at once. Changes are based on the school community's needs and are driven by research-based best practices known to improve student engagement, well-being and/or academic integrity.
- Evaluates results of incremental changes before deciding to institutionalize reforms.
View our SPACE framework for sample policies and practices.


Algebra 1
Published by Prentice Hall
ISBN 10: _PHONE_
ISBN 13: 978-0-13350-040-0
Chapter 10 - Radical Expressions and Equations - 10-3 Operations with Radial Expressions - Practice and Problem-Solving Exercises - Page 617: 57
$s$$\sqrt 3$
Work Step by Step
We know that any triangle in this figure has a hypotenuse of $s$ and a height of $\frac{s}{2}$. We know that this is the height because it is given that the vertical blue crosspiece is $s$, and half of $s$ is $\frac{s}{2}$. This triangle embodies the properties of a 30-60-90 triangle, so using the properties of this triangle, we can solve for the missing side length. After finding the missing side length, make sure to multiply it by 2 to find the length of the horizontal red crosspiece:
Update this answer!
Update this answer


text:
How tall are jackrabbits?
A black-tailed jackrabbit can grow up to 24 inches (61 cm) in length, weigh as much as 8 lbs. (3.6 kg) and live upwards of five years. Their powerful back legs can propel them across the landscape at a speed of nearly 40 mph (64 kph) and their leaps can exceed 20 feet (6 m).
Join Alexa Answers
Help make Alexa smarter and share your knowledge with the worldLEARN MORE


Connect with us
Hi, what are you looking for?
Dragon Age and Diversity in Fantasy Video Games
Dragon Age has always been on the frontlines when it comes to diverse protagonists, though it is far from the only game to offer this. And giving gamers a chance to play as various genders, races and sexual identities is an awesome thing. But it also makes storytelling more complicated, because if the story doesn't reflect this diversity, it only makes sense in a world where there is no discrimination based on these things.
Some fantasy universes actually go in that direction. Not always wholly successfully or consistently – frequently the implication is that the universe is all equal, but it just so happens that most people in power are straight white males. This is probably partly a result of lingering prejudices and partly thanks to pseudo-medieval tropes tied to the fantasy genre. It can break the suspension of disbelief just a little, but overly, it's not such a big deal.
Many other universes, on the other hand, decide to keep some form of systemic injustice, usually in the form of fantastic racism. Dragon Age is just one of them. And this is where the complications come into play. Because ultimately, complete freedom in character creation makes sense only in a world without structural injustice. That means an utopia, and nice as it might be to live in one, they are rather boring as far as narratives go, proving little in the way of tension for the story to use. The most interesting tales usually employ conflict with society in some ways, and that almost always means systemic oppression.
But once you do incorporate structural injustice, can you really afford to give players complete freedom in what character they come up with?
Let me use the three Dragon Age games as an example here, to illustrate the problems inherent in this approach.
As I said, its world is not one where the universe pretends at no prejudices and your character has, in fact, no background, their race and gender influencing nothing at all. No, Dragon Age limits your choice to a few available backstories, and with these backstories go specific dialogue options and even quests in the game. Where games like Elder Scrolls do the equivalent of colourblind casting, with all the problems it entails, Dragon Age theoretically does the equivalent of writing roles for minorities, telling their particular stories.
But. (There is always a but.)
The different games are a very good example of the different ways in which one can deal with such an approach, and different measures of success.
In some ways, the best example of how to do it is Dragon Age: Origins.
There are specific origin quests for different character backgrounds picked, and most of them are even quite well-done. They also have tie-ins later in the game, where you get a chance to meet characters already familiar to you. Mostly, whenever something arises where your origin would likely make you react in a specific way, you actually get the option to do so. There are a few slip-ups, but nothing major. Great job, right?
But the only reason why Origins can be this good at story customization is because, at its core, it is a fairly generic hero story.
A novice comes into a mysterious order, their mentor dies, and the task of saving the world falls to them. Individual subquests then have you circling through all the places your past can tie in to, so that every fantastic race has a chance at their customized experiences. The mysterious order in question gives the hero legitimacy beyond any background they might have. It is a decent formula to make it work, but unfortunately unless you want to make all of your games effectively identical, it can only be used once.
Dragon Age II decided to go a different way and limit the number of background choices. There is, effectively, only one backstory, just slightly tweaked depending on your character's class. In most ways, they decided to abandon the path of different origins in this installment. I still mention it in this article, though, because in spite of this, they rather ironically managed to mess it up. Because they still let you to pick your character's class, and it just so happens that the central conflict of the game is all about mages and their discrimination.
The oppression of free mages is supposed to be everywhere. So when you play for one such free mage, publicly casting your free magic everywhere the entire game and the most you get for it is slight lip service…well, that is just a little strange.
The lesson should be pretty obvious here: if you make oppression of a particular group one of the central themes of your story, and yet your hero, belonging to that group, never really experiences it, then you are doing something wrong. It weakens the story by making the odds less, it breaks the suspension of disbelief, and it adds to the feeling that your protagonist is really just a generic stand-in. I really shouldn't need to spell this out.
Mages? What mages? There are no mages here, what are you talking about? What, does that look like a staff and robes and a mage cowl to you? Naah…
Apparently someone should have spelled it out to the game creators, though, because the very same problem appears again in Inquisition. That game returned to more diverse origin stories, but didn't actually keep the different origin quests, only giving you your character background in a very brief summary. Later, too, the specific quests tied to your origins were just tabletop missions that took two clicks to solve, and some of them with deeply problematic implications to boot. All of that is a pity, but doesn't touch the main problem, the one carrying over from Dragon Age II. Just as people would not treat a mage and a non-mage the same in a world that hates mages, so, too, the treatment of other oppressed groups would be much different from the privileged ones.
On my first playthrough of Inquisition, I was a free elven mage, an intersection of two despised groups (she was a woman, too, but let's pretend we buy the fiction that there is hardly any sexism in the world of Dragon Age for now). On the second, I was a human noble, so two privileged groups. The character starts the game in a very vulnerable position, and they were both treated the same.
To put it quite plainly, that is not how it would go.
In fact, given the circumstances of the beginning of the game and if I see the way the noble character is treated as base comparison, I am quite certain the free elven mage would actually be dead. Beaten to death by an angry mob. Because these are things that actually happen in the world, and they would certainly happen in the world Dragon Age is set to take place in.
It is not that you never encounter any racism when playing as an elf in Inquistion – there are a few cases of casual remarks. But nothing near to what would be realistic in the setting we're meant to believe in. Nothing that would actually influence the story in a meaningful way.
There is one nice case, though, that well-illustrates what this game actually does. When the protagonist encounters her scout in what is essentially an elven mass grave of a genocide, the scout comments that it just seems sad there are so many dead elves. If you play for an elf, you can stare at her incredulously and then quote an ancient oath at her to make her realize that yeah, you have in fact thought about this before and it seems quite sad to you, since it was the genocide of your bloody ancestors she's talking about. She blushes and apologises to you for not realising it was this personal for you. This kind of casual erasure is brilliantly captured, and it is also what the game does all the time.
Lavellan is sad because everyone constantly speaks over her where elves are concerned. That is my headcanon for why she so often wears an expression like this, anyway.
It is nice to have this one shout-out, but when you go through the plains where the genocide happened and collect quest points for landmaks commemorating the killings of individual elven heroes, the elven protagonist is allowed no reaction. When you have to listen to one of the companions expound on how your heroic knights were probably just thieves and murderers, you are allowed no reaction. When you come to an elven temple, two of your companions (one of them actually not even an elf) translate the elven writing for you. And, best of all, at one point when you find a crucial piece of elvish history, your own elvish character suggests that you could give it to the Chantry – as in, the religious institution responsible for the genocide. Oh, and also one your character has been kind-of affiliated with from the start of the game, because why not?
You see the problem?
There is a lot of elvish material in the game; it's one of the cornerstones of the story. But it's treated in exactly the way all non-Western cultures are treated in the real world. Namely, simply exploited without any regard for the actual people it might tie in to. Much like with romance, though much less amusingly, the creators of the game brilliantly captured the same aspects of racism and orientalism in the structure of their story itself. The elves have always been a stand-in for racial minorities from our world, and here they are, always an object and never truly a subject, even when one of them is the supposed protagonist. The very same thing, to a lesser degree, goes for the mages.
Now the question: is this a problem when the cultures and races in question are not actually real races, but instead Thedas elves or, you know, wizards?
My answer is, yes


Printing the elements of a vector one per line in R
You know how R prints the elements of a vector horizontally?
> 1:5
[1] 1 2 3 4 5
Today I needed the elements printed one per line. After a bit of searching and hair-pulling, I stumbled upon the cat command:
> cat(1:5,sep="\n")
This is particularly useful when you need a line-by-line list of the variables in a data frame, which you can get with:
To output the list directly to a file, use write instead of cat.
Raising a matrix to a power in R
A surprising deficiency in R is the absence of an operator or built-in function for matrix exponentiation. I had to deal with this today when porting a function from MATLAB to R. Here is my quick-and-dirty solution:
mpower = function(M,p) {
 A = as.matrix(M)
 if (dim(A)[1]!= dim(A)[2]) stop("not a square matrix")
 # M^{-1} = the matrix inverse of M
 if (p==-1) return(solve(A))
 # M^0 = I
 if (p==0) return(diag(1,dim(A)[1],dim(A)[2]))
 # M^1 = M
 if (p==1) return(A)
 if (p < -1) stop("only powers >= -1 allowed")
 if (p!= as.integer(p)) stop("only integer powers allowed")
 R = A
 for (i in 2:p) {
 R = R %*% A
Not the most efficient method, perhaps, but it works. If you know of a better alternative, please add a comment to this blog entry. One possibility might be to port MATLAB's expm function, as defined in expm1.m in the MATLAB demos directory, to R.
For a detailed review of methods for computing the exponential of a matrix, see:
Moler, Cleve and Charles Van Loan (2003), "Nineteen dubious ways to compute the exponential of a matrix, twenty-five years later," Society for Industrial and Applied Mathematics, 45 (1), 3-49.
Switching from MATLAB to R
If you're an experienced MATLAB user and you want to get up to speed quickly on R, these reference guides may prove helpful:
Similarly, R users may wish to refer to these when using MATLAB.


Doctrine ORM Good Practices and Tricks
I'd like to share with you a very good video From Marco Pivetta who is part of the Doctrine Project core team
Tried to summarize the video in points:
 1. Doctrine is for: OLTP, DDD, Object Oriented, not for reporting, use SQL instead
 2. Entities should work without ORM and without DB
 3. Design the Entities first
 4. Entities represent your Domain
 5. Design the database after modeling your domain
 6. Entities are not typed array
 7. You have to think about how objects talk to each other instead of what the objects contain
 8. No behavior = No need for ORM
 9. Respect Law of Demeter (LOD)
 10. Keep collections hidden in your Entities
 11. Entities should always be in a valid state
 12. Use named constructors, ex. public static function fromUserInput()
 13. Avoid entity Setters
 14. Don't couple with the application layer
 15. Avoid writing business logic inside LifeCycle Callback
 16. Avoid auto-generated identifiers, use UUID instead
 17. Avoid derived primary keys, use UNIQUE instead
 18. Avoid composite primary keys
 19. Don't deal with UNIQUE constraint problem inside the application
 20. Try to design data structures in such a way that are append only
 21. Avoid soft deletes, as they break data integrity, use audit log or archiving instead
 22. Use Annotations Mapping in private packages
 23. Use XML Mapping in public packages
 24. Eager loading is useless, avoid it
 25. Avoid Bi-Directional Associations, because they are overhead, use DQL instead
 26. Use custom repositories for improved expressiveness
 27. Query functions are better than repositories
 28. Avoid ObjectManager::getRepository(), as it is a ServiceLocator, inject Repositories instead
 29. Use $repository->find() that can return null
 30. Use $repository->get() that throws exceptions to simplify error logic and can not return null
 31. Avoid two-phase commit
 32. Communicate between boundaries via identifiers not object references
 33. The Paginator is a monster, use custom query instead
 34. Do not normalize without the need for it, Otherwise you're digging your own grave
 35. Consider using Separate DBs (Transactional Data!= Reporting Data)
Leave a Reply


text:
Chicago's Willis Tower, formerly known as Sears Tower, was the world's tallest building from 1974 to 1998 and remains the tallest building in the U.S. to this day. Its 1451-foot (442 m) height adds up to enough window area to keep a window washer busy for life, or space for enough solar panels to be comparable to a 10 acre solar power plant. As part of a pilot project, the south facing windows of the 56th floor of the Willis Tower will be replaced with Pythagoras Solar's transparent solar windows which cut down on heat gain – and therefore cooling costs – as well as harnessing energy from the sun.
While the image that comes to mind when one thinks of solar power plants is probably one of rows upon rows of panels covering large areas of desert, replacing the windows of skyscrapers with solar windows gives cities with limited free space the opportunity to create vertical solar power plants. Pythagorus Solar's solar windows, which the company calls photovoltaic glass units (PGUs), are rectangular box-shaped units that allow diffused light to pass through, but use a prism to reflect sunlight down onto a horizontal PV cell along the bottom of the unit to generate the same amount of energy as standard rooftop-mounted solar cells.
"We are excited to launch this pilot with Pythagoras Solar's leading-edge solar window solutions as a test for not only the energy savings that can be achieved, but the potential they represent to actually generate power through the sun," said John Huston, Executive Vice President of American Landmark Properties, one of the ownership partners of Willis Tower.
If the pilot project proves successful, Pythagoras Solar's PGU's could be expanded beyond the 56th floor to cover enough surface area to provide over two megawatts of solar power.
Just enter your friends and your email address into the form below
For multiple addresses, separate each with a comma


w3hello.com logo
Home PHP C# C++ Android Java Javascript Python IOS SQL HTML Categories
What information can we collect from the service bus?
The entity metrics API will give you the exact data the portal is using: _URL_ Here's a Subscribe! episode I recorded with Rajat on the topic _URL_
Categories : C#
mclapply user time larger than elapsed time
The help page ?system.time says the value returned by the function is an object of class proc_time, and that we should consult ?proc.time. There we learn that user time is cumulative sum of user and system times of any child processes so your task has spent about 15s on each core (mclapply defaults to using 2 cores, see the mc.cores argument). Actually, we see earlier in the help page that proc.time() returns five elements that separate the process and child times, and that the summary method used in printing collapses the user and system time into process + child times, so there is a bit more information available.
Categories : R
/usr/bin/time --format output elapsed time in milliseconds
One possibility is to use the date command: ts=$(date +%s%N) ; my_command ; tt=$((($(date +%s%N) - $ts)/_PHONE_)) ; echo "Time taken: $tt" would return the time taken to execute my_command in milliseconds.
Categories : Bash
Java Reaction Time Test - Time Elapsed?
System.nanoTime() is the best way to get definite precision. See: System.nanoTime(): Returns the current value of the most precise available system timer, in nanoseconds.
Categories : Java
Elapsed Time to initial load take too long time?
Check more closely with proper tools. Check Firebug. Also YSlow provides lots of good tips.
Categories : PHP
Can I use google doc's to collect information from multiple users?
Using Google Forms, you can create a form and send it as an email to your users, with their responses being automatically entered in a Google Docs spreadsheet. Then you can analyze that data in the spreadsheet using all the normal spreadsheet functionality (formulas, macros, etc).
Categories : Misc
PowerPoint Elapsed Time and remaining time
Do you intend to create more advance presentation timing? if yes, how about create a timing system triggered by events such as _URL_ and _URL_ ?
Categories : Vba
How to collect (get and parse) the required information/data from a HTTP website?
What you're looking for is something called web scraping or html scraping. Have a look at this SO question to get you started: Options for HTML scraping?
Categories : Android
Invoking a modal dialog to collect some information in JQuery ajax beforeSend
Due to the asynchronous event model in javascript, you cannot postpone the ajax request from being sent off from within beforeSend. Once beforeSend is executed, the only chance you have to "delay" the ajax request is to outright cancel it entirely by returning false from the callback. So while you could keep track of a status variable that knows whether the form is ready to submit (return false from beforeSend whenever the form is not ready), you're much better off doing these validation checks before ever creating the ajax request to begin with. // why do this $.ajax('/path', { beforeSend: function () { if (formIsNotReady()) { showModal(); return false; } } }); // when you can do this if (formIsNotReady()) { showModal(); } else {
Categories : Javascript
Can't get correct elapsed time
You're calling animate 60 times per second, because that's probably what you set in requestAnimationFrame (and is set by default). 1000 ms / 60 frames = 16.xx ms. So animation is called every ~16ms and that's what you're getting. if ( !window.requestAnimationFrame ) { window.requestAnimationFrame = ( function() { return window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function( /* function FrameRequestCallback */ callback, /* DOMElement Element */ element ) { window.setTimeout( callback, 1000 / 60 ); // so call it every ~16ms }; } )(); }
Categories : Javascript
How to calculate elapsed time of a function?
You can use the QueryPerformanceCounter and QueryPerformanceFrequency functions: var c1, c2, f: Int64; begin QueryPerformanceFrequency(f); QueryPerformanceCounter(c1); DoSomething; QueryPerformanceCounter(c2); // Now (c2-c1)/f is the duration in secs of DoSomething
Categories : Delphi
Can we get elapsed time from netstat command
You could watch the traffic directly with tcpdump. If you know the remote IP and/or port you can narrow it down to just that traffic. tcpdump -i eth0 src 192.168.1.1 and port 80
Categories : Linux
Django check elapsed time
Since you have time zone support enabled, self.last_used is a timezone-aware datetime object, datetime.datetime.now() is not. Try this instead: timediff = datetime.datetime.utcnow() - self.last_used.replace(tzinfo=None) Another option is to make your now() timezone-aware using make_aware(): from django.utils import timezone now = timezone.make_aware(datetime.datetime.now(), timezone.get_default_timezone()) timediff = now() - self.last_used Also see: Can't subtract datetime and timestamp in django? django 1.4 - can't compare offset-naive and offset-aware datetimes django 1.4 timezone.now() vs datetime.datetime.now()
Categories : Python
c++ get elapsed time platform independent
I don't think there is a high resolution clock built-in C++ before C++11. If you are unable to use C++11 you have to either fix your error with glut and glew or use the platform dependent timer functions. #include <chrono> class Timer { public: Timer() { reset(); } void reset() { m_timestamp = std::chrono::high_resolution_clock::now(); } float diff() { std::chrono::duration<float> fs = std::chrono::high_resolution_clock::now() - m_timestamp; return fs.count(); } private: std::chrono::high_resolution_clock::time_point m_timestamp; };
Categories : C++
Color transition in d3 using time elapsed
You don't really need to do any work with scales, .transition() will take care of the hard work behind the scenes: function changeElementColor(d3Element){ d3Element .transition().duration(0) .style("background", "green") .transition().duration(1000) .style("background", "yellow") .transition().delay(1000).duration(5000) .style("background", "red"); } changeElementColor(d3.select("#d3Color")); To reset the transition, just add an onclick event to the element: d3.select("#d3Color") .on("click", function(){ changeElementColor(d3.select(this)) }); _URL_ I've also included a colored svg circle. I'm guessing you were trying to use .style("color", "red") to change its color; you need to use .attr("fill", "red") for non CSS propert
Categories : Javascript
How to get the time elapsed in C in milliseconds? (Windows)
GetSystemTime() uses the structure SYSTEMTIME, which provides milli-second resolution. More on this here.
Categories : C
Decorator for elapsed time flask
With the print_elapsed_time decorator above Flask's route decorators, the function registered by route has not yet been modified by print_elapsed_time, as decorators are applied from bottom to top. The solution is to put @print_elapsed_time below both route decorators. However, Flask keeps track of its registered functions


Simplification of a model for ion adsorption on oxide surfaces
A. M. POSNER, N. J. BARROW
Research output: Contribution to journalArticle
18 Citations (Scopus)
Abstract
The adsorption equation of Bowden et al. (I 977) was modified so that adsorption at a constant pH could be described by three parameters. One of these parameters represents the maximum adsorption. The second is the product of three characteristics. These are the binding constant for the adsorbing ion; the proportion of the adsorbate present as that ion; and the electrostatic potential in the plane of adsorption before adsorption had started. The third parameter indicates the rate at which the electrostatic potential in the plane of adsorption changes as adsorption increases. With these modifications, the adsorption equation may be linearized and graphs used to estimate the parameters. This simplification may be of value either when there is no data for the charge characteristics of the surface, or when there is insufficient computer expertise to fit more complex models.
Original languageEnglish
Pages (from-to)211-217
Number of pages7
JournalJournal of Soil Science
Volume33
Issue number2
DOIs
Publication statusPublished - 1 Jan 1982
Fingerprint
Dive into the research topics of 'Simplification of a model for ion adsorption on oxide surfaces'. Together they form a unique fingerprint.
Cite this


text:
How do I get a free teacher account?
All verified teachers, including school, tertiary and pre-service teachers can get free accounts with access to all our resources for evaluation and professional development.
This grants access to:
- teacher notes and solutions to problems
- free access to all courses and competitions
- any professional development resources we publish.
If you are not currently teaching at a school
If you are currently teaching at a school
Follow these steps to become a verified teacher on Grok.
For more details on what becoming a verified teacher means, see What is teacher verification?


text:
★ [Cocomong] English Band is the application in which you can enjoy English version VOD and play mini game at the same time. Moreover, it will improve children's EQ and CQ and parents will be satisfied.
- 'Play' English VOD theater which consist of 26 English version VOD will improve your English and touch your heart.
- 'Cocomong Band' You can choose 5 kinds of instruments such as xylophone and play 14 kinds of songs in Edutainment.
- 'Body Percussion' Cocomong and friends band configuration to increase the rhythm, a rhythm game
★ Kids favorite characters cocomong and his friends will come and find you in this '[Cocomong] English Band'
- Listen to the songs with just an exciting and fun learning English. Our children can easily learn to dance rhythms are with cocomong.
- Let's dance and sing happily with children anytime and anywhere!


text:
ICE-ISLAND in Mid-Atlantic Proposed (Oct, 1932)
ICE-ISLAND in Mid-Atlantic Proposed
SEADROMES for ocean landing fields are not a new idea, a steel 'drome designed by Edward Armstrong, recently described in these pages, being well on the road to practical acceptance. But the proposal to build seadromes of ice, recently advanced from Germany, seems fantastic until one realizes that the idea has already passed the experimental stage with flying colors.
The German scientist Dr. Gerke of Waldenburg two years ago erected an ice island in Lake Zurich by artificial means, which endured six days after the refrigerating machinery was switched off. His proposal for a mid-Atlantic way station of ice involves the construction of a framework of hollow tubing which; when filled with liquid air manufactured in a refrigerating plant, freezes the water surrounding it into a solid mass.
Design of the island would call for a section on which a landing field and buildings for offices and refrigerating plants could be built.


text:
The 1903 Ball in the Winter Palace — the famous luxurious ball during the reign of the emperor Nicholas II of Russia in the Winter Palace, St.-Petersburg (February 11 and 13). All the visitors were in fancy dresses on a fashion of 17th century (times of Alexis of Russia, 2nd tsar from Romanov dynasty).
Mikhail Gorbachev was general secretary of the Soviet Union Communist Party from _PHONE_. He was also the first democratically elected President in 1990. He played a key role in dismantling the Communist grip on power in both the Soviet Union and Eastern Europe. His aspirations for democracy and reform opened up the way for the end of the Cold War and the bringing down of the Berlin Wall.
Russian man who was coughing up blood and complaining of chest pains was found to have this 5 centimeter spruce tree growing inside his lung। Since the tree was too large to have been accidentally inhaled, doctors believe the man must have inhaled a bud which grew inside the lung.


Skip to main content
Why Koalas Hug Trees
koala closeup
Koalas live in trees in Australia and eat mostly eucalyptus leaves.
(Image: © CBriscoe)
The mention of a koala bear often conjures up an image of an adorable spoon-nosed creature cocking its head to one side while clinging to a tree.
Now, scientists have figured out why the iconic Australian marsupials hug trees: The trunks help the koala bears keep cool, according to a new study.
"It can be a really useful way of getting rid of heat on a hot day," said study co-author Michael Kearney, an ecologist at the University of Melbourne in Australia.
Tree huggers
Given that koalas spend so much time in trees — the marsupials live in Australia's woodlands where they munch on leaves and sleep — nobody wondered why they hugged the trunks. People just thought they were taking a break on a more stable spot after eating leaves in the branches, Kearney said. [Marsupial Gallery: A Pouchful of Cute]
As such, the discovery came as a surprise. Kearney and his student, doctoral candidate Natalie Briscoe, were trying to predict how the woodland creatures on French Island, near Melbourne, would regulate their body temperatures as the continent heats up due to climate change. The region is cool most of the year, but during the summer, the temperature routinely spikes above 104 degrees Fahrenheit (40 degrees Celsius), Kearney said.
Briscoe measured wind and shade levels using a portable weather station, but didn't find any striking trends. Then she pointed to an infrared thermometer, which measures temperature based on thermal radiation, at the tree trunks the koalas were hugging. The trunks were considerably cooler than the ambient air temperature — sometimes by as much as 9 degrees F (5 degrees C), Kearney said.
She also noticed the koalas clinging to acacia trees, even though they normally eat eucalyptus leaves. [See Images of the Tree-Hugging Koalas]
"As it got hotter the koalas went farther down the trees and started to really hug onto the tree trunks," Kearney told Live Science. "That seemed strange to us until we figured out that the trees are a bit cooler."
Stay cool
Koala bears pant to keep cool, letting evaporated moisture from their mouths carry heat away from their bodies.
When the team modeled koala bear heat transfer, they found the tree-dwellers save half the water they would have used panting if they hug trees instead.
Koalas get most of their water from their diet, but because eucalyptus leaves are laced with a toxin, the koalas can eat only a limited amount before the toxin harms the animals, Kearney said.
So tree-hugging could be critical to their survival on hot days, by allowing them to cool off without wasting precious water through panting, Kearney said.
It's not clear exactly why their preferred tree trunks are cool, but one possibility is that they pull in a lot of groundwater, which stays closer to the annual average air temperature, rather than the current air temperature, he said.
Climate change planning
Koalas' food (and hugging) trees will change their range with the hotter and drier weather brought by climate change, Bill Ellis, a wildlife researcher at the University of Queensland in Australia, who was not involved in the study, wrote in an email to Live Science.
But the new study suggests that food may be a smaller consideration in preserving koala habitat than previously thought, he said.
"As long as we plant trees koalas will eat, perhaps the other trees we plant just need to provide the right mix of shelter and heat sink characteristics," Ellis said. "It's quite an interesting concept, but non-native trees might be the future for koalas — as long as they also have the right fodder."
Farther north in the koala's range, the air is muggy and it feels hotter, so scientists should see how tree-hugging plays out in in different locations in the koala's habitat, Ellis said.
"Humidity means that the power of evaporation for cooling is reduced," Kearney said. So tree-hugging may be even more important up north, where evaporative cooling doesn't work as well, he said.
The study was published today (June 3) in the journal Biology Letters.


text:
Brisbane will host the 2032 Olympic and Paralympic Games—and it is expected to bring a huge arrival of athletes and visitors from all over the world.
The Games are one of the world's largest and most prominent sporting events and typically draws millions of spectators.
Now is the time for Brisbane to build new infrastructure, ensure enough hotels are available to meet the demand and improve the transportation system network. A recent survey conducted by Infrastructure Australia predicts a massive $4.7 billion annual congestion cost for Brisbane by 2031.
Dr Andy Nguyen is an Advance Queensland Industry Research Fellowship recipient and working on developing Artificial Intelligence powered (AI-powered) condition monitoring research that aims to reduce maintenance costs and unnecessary closures of tunnels by at least 10 million per annum, while ensuring safe and efficient transport tunnels.
Advance Queensland's Industry Research Fellowships support researchers in carrying out studies that benefit Queensland, and Dr Nguyen's research is a great demonstration of this. With $360,000 in funding received over three years, Dr Nguyen's research will deliver innovative tunnel condition monitoring technology to safeguard Queensland's tunnel infrastructure.
Can you provide a short overview of your research project?
The research project aims to develop a novel AI-powered automated structural condition and health monitoring technology, that can advance the condition management and digital engineering of the transport tunnel network in Queensland.
The use of AI can enable the rapid and accurate uncovering of the structural condition of the tunnels in real-time, providing critical information for rapid assessment and decision making. This can help to ensure greater public safety by identifying potential structural issues before they become a significant problem.
Who are you partnering with and why?
The key partner in this automated AI vision-based structural health monitoring technology research project is Transurban, as they are the sole operator of all tolled road tunnels in Brisbane. This partnership puts Transurban in a unique position to benefit from the development of this technology for at-the-edge condition assessment of their tunnel assets.
The research work will enable a completely new way of digital management and will overcome the challenges of cloud-based solutions, such as being vulnerable to network uncertainties and cyber-attacks.
The development of this novel technology has the potential to revolutionise the way in which the condition of transport tunnels is managed, ensuring greater public safety and enabling more efficient and effective maintenance and repair strategies.
How will the funding support you on your research journey?
Advance Queensland funding will significantly boost my research efforts and facilitate to work effectively with Transurban in co-location mode.
It will help to ensure I have a thorough understanding of Transurban's needs and assist with developing a condition monitoring technology that is suitable for their transport tunnel structures.
The combination of funding from Advance Queensland and working in co-location mode with Transurban, will help to ensure the research is relevant, practical, and effective in addressing the specific needs and challenges facing the transport infrastructure sector in Queensland.
How will your research benefit and assist Queenslanders?
This new condition monitoring technology developed from this research, has the potential to make transport tunnels more efficient and reliable for Queenslanders, especially during events like the 2032 Brisbane Olympic and Paralympics. The new technology can help to avoid unnecessary tunnel closures, travel disruptions and detours, which can have a significant impact on people's daily lives.
Furthermore, the research will help to ensure that the tunnel network is ready and will provide safe and efficient transport for Queenslanders for many years to come.
What does it mean to you to be a recipient of the 2022 Advance Queensland Industry Research Fellowships program?
I am deeply honoured and feel privileged to be a recipient of the prestigious Advance Queensland Industry Research Fellowship. This program will ensure my AI and automated system research finds the best destinations in the Queensland industry, for research translations and the best chance of commercialisations.


We were featured on the Family Online Safety Institute blog!
Read the Post
Young people need support as they begin to navigate social media as critical consumers.
Raising a _TAG_: A Workshop for Parents and Educators
In our 90-minute Raising a _TAG_ Workshop, parents and educators learn how to help young people:
 1. Identify media's "perfect" girl and toxic beauty standards.
 2. Evaluate their true self-worth outside of physical appearance.
 3. Think critically about social media and online behaviors.
 4. Create new, healthy social media norms grounded in authenticity.
Anti-Racism Workshop: How Girls Can Use Social Media To Take Down Racism
In our Anti-Racism Workshop, parents and educators learn how to support young people and budding activists by discussing:
 1. Inspiring Young Leaders Fighting for Racial Justice
 2. How Racism Manifests on Different Social Media Platforms
 3. How Young People are Using Their Social Media to Speak Up and Spread Awareness about Racism
 4. How We Can All Be Authentic, Anti-Racist Activists Online and Offline.
TikTok: What Should I Know?
In our TikTok Workshop, parents and educators learn the basics of TikTok and how to help the young people in their lives foster a healthy relationship with the app.
 1. TikTok: An Overview
 2. The Benefits and Drawbacks of TikTok
 3. How to Maximize the Benefits of TikTok
Questions? Contact Executive Director Angela Scott at _EMAIL_


Understanding VEX IQ Connectors and Standoffs
VEX plastic connectors and standoffs are the fasteners for the VEX plastic construction system. The connectors and standoffs included in (1st gen) and (2nd gen) kits function in the same ways, but may be different colors. The (2nd gen) kit provides additional types of connectors and standoffs.
Screen_Shot_2021-09-22_at_3.10.46_PM.png
This picture illustrates IQ (2nd gen) Connectors and Standoffs.
Old_connectors_and_standoffs.png
This picture illustrates IQ (1st gen) Connectors and Standoffs.
The functions of VEX plastic connectors/standoffs range from general to very specific uses depending on the type of connector.
Pins
Pins are used to connect many components on the robot from the Electronics to the Structure of the robot. Some examples of pin types are shown below:
 - Connector Pins are designed to be inserted into the holes of components for attachment. There are 1x1 Connector Pins which are designed to connect a single component to another, such as connecting the robot's brain to a beam. (An example of this can be seen in the VEX IQ Clawbot build instructions.) There are 1x2 Connector pins which connect a single component to two additional components, such as connecting a Corner Connector to a 2X Beam and then attaching an additional 1X Beam. Last, there are 2x2 Connector Pins which can attach two layers of components to two additional layers of components.
1x1 Connector Pins 1x2 Connector Pins 2x2 Connector Pins
Screen_Shot_2021-09-22_at_5.11.29_PM.png
 - Capped Connector Pins provide another type connection in designs where there may be a risk of a standard Connector Pin being pulled out because the cap can not be pulled through a hole. Capped Connector Pins can also be used to reinforce an assembly after it has been assembled because the pins can be inserted from the outside surface. These pins are designed to be pushed through the hole in one component and into the hole of the next. There are 0x2 pins for connecting two components together and 0x3 pins for connecting three layers of components.
Connector Pins Capped Connector Pins
Standoffs
Standoffs are used to separate two parts from one another while creating a rigid connection. An example of this would be, separating two 2X Beams so a series of drive gears can be placed between them. Standoffs can also be assembled to handle game pieces, such as making a fork on the end of an arm. Available standoffs include 0.5x, 1x, 2x, 4x, and 6x lengths. Standoffs also include Standoff Connectors such as End Standoff Connectors which can create a pivot point at the end of the standoff, and Mini and Standard Standoff Connectors which allow standoffs to be connected to one another.
Standoffs Separating Parts Standoffs for Handling Game Pieces Creating Different Length Standoffs
Corner Connectors
Corner Connectors come in a variety of orientations, allowing for a nearly endless number of options to create three-dimensional designs connecting Beams, Plates and other components. Some of the available Corner Connectors include:
 - 2X Wide Corner Connectors:
 - Available in 2X2, 1X2, and 2X1 configurations
 - 2X Wide Offset Corner Connectors:
 - Available in 1X2, 2X1, 1X1, configurations
 - Large and Small Chassis Corner Connectors
 - 1X Wide 1x1 Offset Corner Connector:
 - For additional spacing within a corner
 - Double 2x Wide, 2x2 Corner Connectors and Triple 2x Wide, 2x2 Corner Connectors:
 - Used to separate and connect two parallel components
IQ (2nd gen) kits include additional Corner Connector options such as the 60 Degree Omni 1x2 Corner Connector and others.
For more information, help, and tips, check out the many resources at VEX Professional Development Plus


text:
Infrared imaging is only one example
of using wavelengths other than visible light to gather
information about Earth. Most satellites today measure
energy at many wavelengths. This is called multispectral
imaging. Images taken at different wavelengths can be
combined to make composite images by displaying the
image for each wavelength as red, green, or blue in
the final image. These composite images result in color
patterns that can be used to identify surface features.
This simulation shows images of San
Francisco, California at three different wavelengths.
Bright areas show higher amounts of energy; darker areas
show lower amounts of energy. You can display each image
in red, green, or blue light, then generate a false-color
composite image for any color combination.
Look for these features in the image:
Water appears dark around land in the center of the
image. Blocky patterns represent buildings and streets.
Park areas on both sides of the Golden Gate Bridge (the
thin line across the water in upper left of image) are
covered with vegetation.
After the page has fully loaded,
click the R (red), G (green), and B (blue) buttons to
assign a different color to the images for each wavelength.
Click Show Composite to combine the information into
one color image.


Are Snakes Active at Night?
Snakes are interesting creatures that adapt to their environments and are often difficult to spot unless you look for them or stumble upon their hiding place by accident. Therefore, many people don't know a lot about them. So one question you may wonder is if snakes are active at night.
Snakes are active at night. In fact, many species tend to be the most active during this time in the day. During hot weather and in areas where there are crowds of people busy during the day, it may be more common for snakes to be active during the late hours of the night or early morning.
This article looks at the time of day and how it influences a snake's behavior. Read along and discover the types of snakes most active at night, why they are more active, and whether or not all snakes are active while you are sleeping.
Which Snakes Are Most Active at Night?
The United States is home to over 100 different snake species. Nearly every state has snakes, with some being active at night.
It is most common for snakes to be active at night, except for some species. So which snakes are most active at night? Let's take a look at the most famous examples of snakes that prefer to do their hunting and move around at night:
 - Copperheads
 - Eastern Coachwhips
 - Rattlesnakes
 - Southern Black Racers
 - Night snakes
 - Cottonmouths
These aren't the only snakes active at night, but you can see that many different species, both venomous and nonvenomous, are active at night.
There are also a lot of different snakes that are not active at night. Certain snakes prefer to be awake and active during the daytime. But in the United States, many snake species, especially the venomous ones, tend to do most of their moving around at night.
Why Are Snakes Active at Night?
You may be wondering why snakes are active at night. Many of us have seen a snake in the daytime, but numerous species tend to be far more dynamic while we are in our beds dreaming.
But what is it that makes snakes more active at night? Several reasons make some species more mobile later in the day, and it's important to understand a few factors that influence this.
The Weather Impacts When Snakes Are Active
Summer months are known for snakes being more visible, including snakes that hunt at night. Because many species are more dormant in the winter, spring and summer months tend to be when they become more active at night
The hot weather makes snakes hunt very early or late in the day, which can often mean they are active at night. Snakes typically spend the hottest hours of the day hiding and saving their energy for later so they can stay cool and get more food when the heat is less intense.
Snakes Will Hunt When Animals Are Active at Night
Snakes are hunters by nature. If your home hosts things they like to eat, it may attract snakes waiting to feast. If you live in an area with rodents that want to come out at night, you may find that the snakes in your area are also more active at night.
Some animals that like to be out at night that may cause the snakes in the area to be more active feeding later in the day include:
 - Rats
 - Mice
 - Lizards
Human Population Can Affect When Snakes Are Active
Snakes are frequently scared of people. They do what they can to hide and not be in the same places where people are, or at least not be seen. In areas where there are a lot of humans around in the daytime, snakes may be more common to be active at night when they have less potential threat around them, causing them to be more timid and reclusive.
Snakes Are Active When Seeking Shelter
Snakes may be more active at night when they are seeking shelter. Depending on where the snake lives and the natural threats, snakes may be lively at certain hours of the night, trying to find a place where they feel safe. You may see snakes actively searching for somewhere to hide during the nighttime hours.
Final Thoughts
Snakes are fascinating creatures that come in hundreds of species. They are small or large, nocturnal or diurnal, and can exhibit different behavior depending on the time of the year and various environmental factors.
Many snakes are awake at night, with some preferring to do their most important tasks during the late night hours. Some of the things that you'll most commonly see snakes doing when they are active at night include:
 - Finding their food.
 - Looking for a place to rest.
 - Eating their prey after catching them.
Recent Posts


text:
The Fish River Aboriginal ranger accommodation upgrade on the remote Fish River Station, Northern Territory, Australia, is a design/build project undertaken by staff and students from the Design Construct program at the University of South Australia that aims to improve both climatic and cultural responses that the former accommodation did not address. Prior to the upgrade, rangers were accommodated in fabric-roof tent structures that did not protect against intense sun, tropical downpours, and insects nor provide visual privacy, particularly for different gender groups. Reflective steel roofing, floor-to-ceiling insect screening, and individual raised-bed spaces with personal storage and ceiling fans improved thermal insulation, ventilation, and insect protection, which significantly enhanced the personal comfort, amenity, and privacy of the rangers. The project exemplifies a viable, cost-effective alternative for remote tropical accommodations compared to air-conditioned transportables that depend on costly stand-alone power systems.
There has been a considerable lack of understanding of and empathy with the living conditions of remote Aboriginal communities driven by colonial traditions and economic expediency where community housing and planning are modeled on standardized Western patterns. Community houses are, as a consequence, culturally inappropriate in terms of overcrowding and privacy and poorly designed to respond to particular climatic conditions. The Fish River project aimed to give Aboriginal people an opportunity to live on Country, to rehabilitate and reinvigorate both the culture and the environment, and to propose an alternative model of tropical housing.
The project methodology was based on a number of clear procedures: immersive, broad consultation with clients and stakeholders; previous design/build experience working with remote indigenous communities; and encouragement of students to think beyond familiar references and explore innovative design and construction solutions.
On the basis of research undertaken by the Design Construct program investigating best-practice models for effective consultation toward improving built environment outcomes for remote indigenous communities, the project invested considerable time visiting, living and working with, and talking to the Aboriginal rangers on site to understand and address the needs for the accommodation. The program also consulted with the Indigenous Land and Sea Corporation (ILSC) to achieve a culturally, climatically, and environmentally appropriate outcome.
The Fish River project has been an exemplary design/build project engaging numerous satisfied students, completed on time and budget, and receiving positive responses from end users and the architectural profession. The true success of this project relies on a continuing, comprehensive postoccupancy evaluation, which has not progressed sufficiently to verify overall success. Project accountability is maintained relative to results through reporting by the ILSC as the main financial stakeholder and proponent of benefits for indigenous peoples.


What is "Techo-Paganism"?
Techno-paganism (or "technopaganism," or even sometimes "techno-shamanism/technoshamanism") is not a strictly-defined term. In general, it refers to the intersection of spirituality and technology; although this may happen in any number of fashions.
For some, they use the tools of technology to approach their own belief system. For others, technology itself is the focus of their mysticism.
Quoting from the wiki entry:
"Technopaganism has a number of distinct definitions found in various discourse:
* The use of modern-day devices in magical ritual. This can include the substitution of technology for traditional magical tools, such as using their oven for a hearth, keeping a "Disk of Shadows" instead of a "Book of Shadows", and using a laser pointer as a wand. In other practice, technology is the target of the magical work, such as the use of stones and other charms to help improve the performance of mundane items or online role-playing avatars.
* Modern tribal/urban primitive movements such as urban shamanism and rave culture. This is often used in association with electronic dance music.
* An emergent trend in neopagan thought that deals with spiritual and magical facets of technology and technological society. Associated with this is the use of technological metaphors (most often computer and/or telecommunications metaphors) to describe spiritual phenomena, as well as the use of symbolism from popular culture in spiritual contexts."


text:
The dataset consists of GIS shapefiles of numerical model simulated flood extents and hazard levels for the province of Surigao del Norte, under various rainfall scenarios. Each scenario has a corresponding probability of occurrence in any given year based on Rainfall-Intensity Duration Frequency (RIDF) curves generated by the nearest PAGASA station.
The flood hazard GIS files were generated through flood modeling by the Phil-LiDAR 1.B.14 Project of Caraga State University using LiDAR-derived geospatial datasets, particularly Digital Terrain Model (DTM) as main source of topographic information. HEC HMS and HEC RAS 2D were used in flood modeling and simulation.
IMPORTANT: The GIS shapefiles have spatial resolutions of 5x5 m. They are downsampled versions of the original 1x1 m spatial resolution flood modeling results.
The flood hazards are categorized into three (3):
Low Hazard: < 0.5 m flood depth
Medium Hazard: 0.5 m - 1.5 m flood depth
High Hazard: greater than 1.5 m flood depth
To learn more about how the Flood Hazard GIS Files were generated, please refer to the CSU Phil-LiDAR 1.B.14 Project Terminal Report at _URL_


test banner
LFO Variables & Destinations
LFO Variables & Destinations
Basic Synth Supplemental 1: Modulation is the key
As we've learned, modulation is the key to interesting and organic sounds that evolve over time. Some of the most interesting synthesizers are those that include a large number of LFOs that can be routed to a plethora of destinations.
We also learned that LFOs can directly control parameters of audio path modules, for instance, when a LFO modulates the cutoff frequency of a filter - this is called first order modulation. They can also control parameters of other control path modules, for instance, when an LFO modulates the attack time of an envelope - this is called second order modulation
When using LFOs as control signals, there are many variables to consider. Some of this may be recap from Basic Synth 4: LFO's, Envelopes & Random Voltage, but we're going to dive a little deeper into what makes LFOs so powerful and common destinations to route them to.
Typical LFO Variables:
 1. Waveform: The waveform of the LFO determines the shape at which modulation occurs. Similar to audio oscillators, the classic waveforms were often used for LFOs - sine, triangle, sawtooth/ramp, square, and pulse waves. A common misconception is that random voltage and smooth random voltage are LFO waveforms. This is not true. In the same way that a noise generator is not an oscillator, random voltage is not a LFO waveform.
 2. Frequency: Remember - LFOs are just subsonic oscillators, so the same rules apply! The frequency of the LFO, measured in hertz (Hz), determines the rate at which modulation occurs. Pro tip - vibrato and tremolo are achieved at around 3Hz-7Hz
 3. Polarity: Going back to Basic Synth 0: Control Voltage, we learned that voltage can be unipolar positive (positive voltage fluctuates above 0V), unipolar negative (negative voltage fluctuates below 0V), or bipolar (positive and negative voltage fluctuations cross 0V). It's important to note that modulation is also determined by the CV input range of the parameter. Most analog CV inputs can accept bipolar voltage (e.g. input range of ±5V), but some digital CV inputs can only accept unipolar positive voltage (e.g. input range of 0V-5V). In most cases, modulation is added to the parameter's knob position. That being said, if a bipolar LFO is used to modulate a unipolar positive CV input, the negative portion of the LFO will be clipped at 0V. In order for the full LFO signal to be accepted by the unipolar positive CV input, the LFO must be offset to a fully positive signal. Similarly, if a unipolar LFO is used to modulate a bipolar CV input, modulation will only occur on one side of the parameter's knob position. Offsetting the unipolar LFO to be bipolar will allow modulation to occur on both sides of the parameter's knob position.
 4. Amplitude: The amplitude of the LFO determines the depth of modulation. The higher the amplitude, the more influence the signal will have over the destination parameter. For more subtle modulations like pitch vibrato in a string patch, we often patch LFOs through an attenuator to limit the amplitude of the signal. In keyboard synthesizers, the modulation wheel often defaults as a LFO attenuator.
 5. Phase: Phase is an interesting topic. I like to think of it as offsetting the signal within the time domain while maintaining the same frequency. The best way to think about this is in a quadrature LFO setup. For instance, four separate LFOs can all be set to the same frequency, but be 90° out of phase from one another. For instance, LFO 1 starts its cycle and once its 90° through its cycle, LFO 2 starts its cycle. Once LFO 2 is 90° through its cycle, LFO 3 starts its cycle. Once LFO 3 is 90° through its cycle, LFO 4 starts its cycle. Once LFO 4 is 90° through its cycle, LFO 1's cycle resets, completing a 360° circle of modulation.
 6. Reset: A common feature of LFOs is the ability to reset the waveform cycle with the presence of a rising-edge signal (like a gate or trigger signal) at its reset input. Often it's helpful to patch a keyboard's gate output to the LFO's reset input, which forces the LFO to reset with every key press. If, for example, the LFO is patched to modulate the cutoff frequency of the filter, this ensures that the LFO won't be mid-cycle when the VCA is opened by the envelope generator.
 7. Sync: In LFO world, sync can mean two different things. If we think about LFOs like we think about oscillators, then we know that soft synchronization and hard synchronization are both possible. If we think about digital tap tempo LFOs, then we know that a LFO can be synchronized to an external clock source. This means that no matter what the clock rate is, a full cycle of a LFO will exist between any two successive clock pulses.
 8. Delay/Fade Time: Some LFOs have dedicated linear envelopes and VCAs included in their architecture allowing the LFO to fade in over time. This is great for faded-in vibrato and faded-in tremolo patches.
 9. Architecture: Analog LFOs will always be smoother than digital LFOs for the same reasons that analog oscillators are smoother than wavetable oscillators. In the digital world, we really care about the amount of resolution a waveform has so that we don't experience steppiness in our modulation. For instance, low resolution modulation on the pitch of an oscillator is very noticeable and often unwanted. That being said, most modern digital modulation sources have a high enough resolution to where steppiness is not perceived except for maybe at very slow rates.
 10. Destination: The LFO destination is the parameter within the system that the LFO is moduating, which could literally be anything you want! *Sigh* the beauty of modular synthesis.
Typical LFO Destinations:
 1. Pitch Vibrato: Bipolar sine LFO to FM input on oscillator
 2. Octave Pitch Trill: Unipolar positive square LFO to FM input on oscillator
 3. Syncopated Octave Pitch Trill: Unipolar positive pulse LFO to FM input on oscillator
 4. "Red Alert": Unipolar positive ramp LFO to FM input on oscillator
 5. VCA Tremolo: Unipolar positive sine LFO to AM input on VCA
 6. VCA On/Off: Unipolar positive square LFO to AM input on VCA
 7. PWM Chorusing: Bipolar LFO to PWM input on oscillator
 8. Filter Wah-Wah: Unipolar LFO to FM input on low pass filter
Be the first to comment...
Leave a comment
* Your email address will not be published