Creating a custom Rational class in Common Lisp – Part 2
In the previous post, we saw a basic Rational class that handled instantiation of its instances by taking care of the appropriate error cases. In this post, we will extend the class further by taking care of some of the improvements that were planned out at the end of the previous post. Some of the improvements made are:
 - Implementation of addition, subtraction, multiplication, and division not only between rational numbers but also with integers.
 - A better macro, WITH-REPORTING, that takes care of the repetitive bits of the error conditions without reducing readability.
 - Changed the use of WITH-SLOTS to WITH-ACCESSORS (and therefore changed the :reader in the my-rational class definition to :accessor. This is perfectly fine since we need to allow the client to modify an existing instance of the rational object.
 - Despite allowing mutations directly in instances of the my-rational class, all the arithmetic functions are essentially purely-functional – they simply create a new instance of my-rational with the newly calculated parameters.
The code thus far looks like this:
;;;; A sample implementation inspired by Martin Odersky's class in his
;;; introduction to Scala.
;;; A rational number is a number that is of the form a/b where a and b
;;; are numbers, are in their lowest normalized forms, and therefore
;;; cannot be reduced further. If a/b is an integer, b is
;;; represented by 1.
(defpackage #:my-rationals
 (:use #:common-lisp)
 (:export #:my-rational
 #:add
 #:subtract
 #:multiply
 #:divide))
(in-package #:my-rationals)
;;;
;;; Define some error conditions that could arise
;;;
(define-condition my-rational-base-error (error)
 ((message :initarg :message :reader error-message)))
;;; Macro to generate different error conditions
(defmacro with-reporting ()
 (let ((condition (gensym))
 (stream (gensym)))
 '(:report (lambda (,condition ,stream)
 (format ,stream "~a~%" (error-message ,condition))))))
(define-condition numerator-not-a-number (my-rational-base-error)
 (with-reporting))
(define-condition denominator-not-a-number (my-rational-base-error)
 (with-reporting))
(define-condition denominator-not-specifiedd (my-rational-base-error)
 (with-reporting))
(define-condition denominator-zero (my-rational-base-error)
 (with-reporting))
;;;
;;; Define the Rational class
;;;
(defclass my-rational ()
 ((numerator :initarg :numerator :accessor rational-numerator
 :initform (error "Numerator required for a rational number"))
 (denominator :initarg :denominator :accessor rational-denominator)))
(defun check-param-values (n d)
 (cond
 ((not (realp n))
 (error 'numerator-not-a-number :message "Numerator is not a valid number"))
 ((null d)
 (error 'denominator-not-specified :message "Denominator is not provided"))
 ((not (realp d))
 (error 'denominator-not-a-number :message "Denominator is not a valid number"))
 ((zerop d)
 (error 'denominator-zero :message "Denominator is zero!"))))
(defun validate-params (obj)
 (with-accessors ((num rational-numerator) (denom rational-denominator)) obj
 (restart-case (check-param-values num denom)
 (enter-new-numerator (n)
 :report "Supply a new value for the numerator"
 :interactive (lambda ()
 (get-new-value 'numerator))
 (setf num n)
 (validate-params obj))
 (enter-new-denominator (d)
 :report "Supply a new value of denominator"
 :interactive (lambda ()
 (get-new-value 'denominator))
 (setf denom d)
 (validate-params obj))
 (make-denominator-one ()
 :report "Force the denominator to be 1"
 (setf denom 1)
 (validate-params obj)))))
;;; some helper functions for validation
(defun get-new-value (param)
 (format *query-io* "Enter new value for ~s: " param)
 (force-output *query-io*)
 (list (read *query-io*)))
(defun my-gcd (x y)
 (if (zerop y)
 x
 (my-gcd y (mod x y))))
(defmethod initialize-instance :after ((obj my-rational) &key)
 (validate-params obj)
 (with-accessors ((num rational-numerator) (denom rational-denominator)) obj
 (let ((g (my-gcd num denom)))
 (setf num (floor (/ num g))
 denom (floor (/ denom g))))))
;;; custom object printing
(defmethod print-object ((obj my-rational) stream)
 (with-accessors ((num rational-numerator) (denom rational-denominator)) obj
 (print-unreadable-object (obj stream :type t :identity t)
 (format stream "~d/~d" num denom))))
;;;
;;; Arithmetic operations - generic functions
;;;
(defgeneric add (first second)
 (:documentation "Add two rational numbers together"))
(defgeneric add (first int)
 (:documentation "Add a rational number to an integer"))
(defgeneric add (int second)
 (:documentation "Add an integer to a rational number"))
(defgeneric subtract (first second)
 (:documentation "Subtract the second rational number from the first"))
(defgeneric subtract (first int)
 (:documentation "Subtract an integer from a rational number"))
(defgeneric subtract (int second)
 (:documentation "Subtract a rational number from an integer"))
(defgeneric multiply (first second)
 (:documentation "Multiply two rational numbers together"))
(defgeneric multiply (first int)
 (:documentation "Multiply a rational number with an integer"))
(defgeneric multiply (int second)
 (:documentation "Multiply an integer with a rational number"))
(defgeneric divide (first second)
 (:documentation "Divide the first rational number by the second"))
(defgeneric divide (first int)
 (:documentation "Divide a rational number by an integer"))
(defgeneric divide (int second)
 (:documentation "Divide an integer by a rational number"))
;;; Arithmetic operations - generic methods
(defmethod add ((first my-rational) (second my-rational))
 (with-accessors ((num-one rational-numerator) (denom-one rational-denominator)) first
 (with-accessors ((num-two rational-numerator) (denom-two rational-denominator)) second
 (let ((d (* denom-one denom-two))
 (n (+ (* num-one denom-two)
 (* denom-one num-two))))
 (make-instance 'my-rational :numerator n :denominator d)))))
(defmethod add ((first my-rational) (int integer))
 (with-accessors ((num rational-numerator) (denom rational-denominator)) first
 (let ((n (+ num (* denom int))))
 (make-instance 'my-rational :numerator n :denominator denom))))
(defmethod add ((int integer) (second my-rational))
 (add second int))
(defmethod subtract ((first my-rational) (second my-rational))
 (with-accessors ((num-one rational-numerator) (denom-one rational-denominator)) first
 (with-accessors ((num-two rational-numerator) (denom-two rational-denominator)) second
 (let ((d (* denom-one denom-two))
 (n (- (* num-one den


Introduced: Hurricane Nuking Ban
June 10, 2020
File this under "Laws no one would have imagined necessary until the age of Trump".
Washington Post:
Last August, Axios reported that President Trump repeatedly asked top national security officials to consider using nuclear bombs to weaken or destroy hurricanes. Now, one congresswoman wants to make it illegal for Trump, or any president, to act on this idea, which experts say would be both ineffective and extremely dangerous.
On June 1, Rep. Sylvia Garcia (D-Tex.) introduced the Climate Change and Hurricane Correlation and Strategy Act, a bill that explicitly prohibits the president, along with any other federal agency or official, from employing a nuclear bomb or other "strategic weapon" with the goal of "altering weather patterns or addressing climate change."
In a phone interview, Garcia told The Washington Post that the bill was drafted as a direct response to last year's report that Trump has floated the idea of nuking hurricanes to his senior homeland security and national security advisers. Trump denied ever making such a suggestion in a tweet shortly after Axios published its report.
The bill comes at the start of the 2020 Atlantic hurricane season, which is off to a roaring start, with Tropical Storm Cristobal, the earliest-recorded third-named storm of any season, striking Louisiana on Sunday. The season is expected to bring above-average storm activity, with 14 to 19 named storms, according to the National Oceanic and Atmospheric Administration.
Indeed, the idea of nuking the weather into submission is nothing new: According to James Fleming, a professor at Colby College and author of "Fixing the Sky: The checkered history of weather and climate control," people have been discussing the possibility for almost as long as nuclear weapons have existed.
In October 1945, Vladimir Zworykin, associate research director at Radio Corporation of America, suggested that if humans had technology to perfectly predict the weather, military forces could be sent out to disrupt storms before they formed, perhaps using atomic bombs. That same year, UNESCO director Julian Huxley spoke at an arms control conference in Manhattan, where he discussed using nuclear weapons for "landscaping the Earth" or dissolving the polar ice cap. In a 1961 speech at the National Press Club, U.S. Weather Bureau head Francis Reichelderfer said he could "imagine the possibility someday of exploding a nuclear bomb on a hurricane far at sea," according to a 2016 report by National Geographic.
The United States even conducted several near-space experiments using nukes, including Operation Argus, a 1958 field test in which the military and the Atomic Energy Commission detonated atomic bombs more than 100 miles above the South Atlantic Ocean in an ill-conceived effort to induce artificial radiation belts in Earth's magnetic field. According to Fleming, the Argus tests, along with subsequent high-altitude nuclear detonations, helped "fuel discussions" leading to the Partial Test Ban Treaty of 1963, which prohibits atmospheric nuclear weapons tests.
While nuking a hurricane in an attempt to destroy or weaken it would probably cause an international uproar, the Partial Test Ban Treaty wouldn't prohibit the president from doing so. In addition, there's no domestic law or international treaty that would prohibit such an action, according to Scott Sagan, a professor of political science at Stanford University.
"It would be a stupid thing to do, but it would not be an illegal thing to do," Sagan said. He said test bans wouldn't cover the actual use of a nuclear weapon against a perceived threat to the United States. In such circumstances, the president has sole authority to use nuclear weapons.
Hurricane experts have long maintained that detonating a nuclear device in a hurricane would have little effect on it, according to an FAQ page on the NOAA website. As the agency explains, the energy released by nuclear weapons pales in comparison to the energy released by a typical hurricane, which the NOAA describes as comparable to a 10-megaton nuclear bomb exploding "every 20 minutes."
Even detonating multiple nuclear bombs inside a hurricane is unlikely to disrupt the storm, although the radioactive fallout released downwind could have catastrophic impacts for people and the environment.
5 Responses to "Introduced: Hurricane Nuking Ban"
 1. doldrom Says:
 I would favor the bill if they left out the part starting "with the goal …"
 Just ban employing nuclear bombs, which was te stated aim of the non-Proliferation Treaty.
 We were forewarned, because to my recollection, Trump was asking, before he was elected: What the point was of having nuclear weapons if you can't use them.
 - dumboldguy Says:
 After wading through "Look at Me" Chucky's usual inane and irrelevant comments, one finds some intelligent discussion of the topic by doldrom. Yep, banning use of nuclear weapons PERIOD would solve the problem, but we know that's not going to happen. Can we settle for just keeping the stable genius and his minions from uselessly firing one off against a hurricane?
 (And the list of stupid things done in the past with nuclear weapons or suggested by people who should have known better is pretty scary)
 2. […] the money might be a needful exercise, on the Trump recession now being a real thing, and in the "In what sane world would a law like this be needed?" […]
Leave a Reply
You are commenting using your account. Log Out / Change )
Google photo
Twitter picture
Facebook photo
Connecting to %s
%d bloggers like this:


text:
October 19, 2022
Trillion-dollar pension fund TIAA faces climate-washing complaint brought by hundreds of professors and scientists
New York, NY — Nearly 300 clients of the $1.2 trillion retirement giant TIAA filed a formal complaint today with the UN-sponsored Principles for Responsible Investment (PRI) initiative, alleging TIAA's substantial investments in fossil fuels and deforestation violate TIAA's climate pledges and commitment to the six Principles for Responsible Investment.
TIAA participants, including the academics Bill McKibben, Michael Mann, Dipesh Chakrabaty, Ruth Wilson Gilmore, and Judith Butler, are filing the complaint to highlight TIAA's investments in the drivers of climate change, including at least $78 billion in fossil fuels, $9.1 billion of which are coal industry bonds. Such investments escalate the climate emergency while violating the commitments TIAA made to PRI through its subsidiary and asset manager, Nuveen. TIAA also invests heavily in timber and industrial agriculture linked to deforestation and illegality. Deforestation is second to fossil fuels as a driver of climate change. The complainants call on the PRI to investigate and address TIAA's "irresponsible investments and systematic greenwashing practices."
Bill McKibben, author, climate expert, Schumann Distinguished Scholar at Middlebury College, and TIAA client, commented: "Most of the people that this giant fund serves are teachers, members of a profession that takes intellectual honesty — and the future — seriously. Time for TIAA to do the same."
The complainants argue that TIAA's refusal to consider fossil fuel divestment violates its fiduciary duty because burning fossil fuels ignores the interests of its clients and harms their long-term financial well-being.
TIAA is one of the world's largest holders of bonds across the coal value chain — ranking 4th globally — including holding over $91 million in bonds of the conglomerate Adani that owns the controversial Carmichael coal mine in Australia. TIAA/Nuveen also invests in fossil fuel companies, including Chevron, Exxon, Enbridge, TotalEnergies (building the contested East African Crude Oil Pipeline).
"When TIAA invests teachers' money in catastrophic fossil fuels and land grabs, they fundamentally undermine the work we do to prepare students for rich, fulfilling lives," commented Caroline Levine, Cornell University professor, and TIAA-Divest! team member.
The complainants, with the support of TIAA-Divest!, call on TIAA to establish a moratorium on new fossil fuel investments, including both shares and bonds; to divest its existing fossil fuel investments by 2025 in line with a 1.5°C pathway; and to stop land grabs leading to deforestation and human rights harms, in order to make good on the specific commitments it has made as a PRI signatory.
If TIAA/Nuveen refuses to come into compliance, the complainants are asking PRI to expel Nuveen from the PRI initiative.
Read more about the complaint, complainants, and PRI.
Additional Voices of Support
Amy Gray, Senior Climate Finance Strategist at Stand.earth and coordinator of the Climate Safe Pensions Network
"Our planet cannot afford any more stalling tactics from TIAA. Divestment from fossil fuel companies is an investment in our future. Frontline communities won't wait for big banks, investors, and asset managers to appease fossil fuel corporations while our homes burn and flood, while our bodies are polluted, and while our children's futures are destroyed for profit. TIAA/Nuveen must heed the writing on the wall, set the standard for the industry, and stop fossil fuel financing now."
Hana Heineken, Senior Attorney at the Center for International Environmental Law
"TIAA and the responsible investment community risk undermining their credibility if they fail to rapidly transition their investments away from fossil fuels and other high-emitting sectors. There is no more time for greenwashing, and they have a fiduciary duty to act with urgency."
Coedie McAvoy — Wangan and Jagalingou Cultural Custodian
"We, as Wangan and Jagalingou Cultural Custodians, condemn TIAA for investing in Adani while Adani builds its Carmichael coal mine on our ancestral lands without our consent. TIAA's funding of Adani makes it complicit in Adani's ongoing violation of our human rights."
Maria Luisa Mendonça, Network for Social Justice and Human Rights
"TIAA's role in financial speculation on farmland promotes land grabbing and human rights violations against Indigenous people and small farmers. TIAA promotes the expansion of commodity plantations by agribusiness, which increases deforestation in the Brazilian Cerrado — the most biodiverse savanna in the world. TIAA's clients and the general public need to denounce this destructive agribusiness system. We need to support land rights of local communities and ecological food production to deal with the global climate crisis."
David M. Hughes, a Rutgers University professor and member of the American Federation of Teachers (AFT) Climate Justice Task Force
"In July, the 1.7-million-member American Federation of Teachers voted – with an overwhelming majority – to urge TIAA to divest from fossil fuels. We represent 300,000 TIAA clients: higher ed teachers, scholars, and academic professionals. We intend to leave a livable planet for our students, our children, and our grandchildren. If it is to do good in the world, TIAA must take our money – it is OUR money – out of Big Oil permanently."
Eric Godoy, Ethics Professor, Illinois State University
"We know that fossil fuels are driving climate change, yet TIAA invests our money in these industries. This means our financial security is being generated at the expense of a livable climate. That's not right."
Dr. Pouné Saberi, MD, MPH, Distinguished Occupational and Environmental Medicine Physician, Physicians for Social Responsibility — Pennsylvania
"My medical career and retirement account with TIAA began at the same time. While as doctors, we have been trying to protect the health of people, TIAA has continued its health-harming practices in the form of investments in fossil fuels. It is time for TIAA to align its mission of financial security for health professionals with the promotion of a clean and safe energy future for us. It is time for TIAA to divest from fossil fuels."
Notes to the Editor
- The Principles for Responsible Investment (PRI) is the preeminent gathering of responsible investors, with over 5,000 signatories (as of October 9, 2022). It is responsible for $150 trillion in assets under management (as of 2021). TIAA, through its asset manager Nuveen, is a signatory of the PRI. See the PRI website for more details.
- TIAA provides benefits for over 5 million active and retired employees at nearly 15,000 higher education, research, medical, cultural, and nonprofit institutions. To date, over 1,550 institutions representing more than $40 trillion in assets have committed to some level of fossil fuel divestment.
- Coedie is a Wangan and Jagalingou man who has been maintaining a presence on Adani's mining lease for over 400 days. He and his family have been conducting an ongoing cultural ceremony a short distance from Adani's mine site called Waddananngu (the talking) in defiance of Adani's occupation of their homelands and in defense of their land, water, and culture.

source: m-a-p/FineFineWeb


text:
Pentax S-2100 2D Laser Scanner
- Availability: In Stock
- Brand: Pentax
- Product Code: MSLCODE-_PHONE_
- Industrial connections: using industrial connections, GPS, displacement sensors and counters can be attached. The external timing pulses are directly fed into the scan data stream. The new 1 GB Ethernet interface allows the scan data to be streamed directly to an external Pc for real-time evaluation
- Kinematic applications: Due to its high flexibility and the low power consumption the Pentax Scanning System S-2100 is suitable especially for all kinds of mobile mapping applications. With its high rotation speed of 200Hz, many details are recorded very quickly and accurately.
- The fastest 2D laser measurement system in the world with Scan rate >1 million points/sec
- The Pentax Scanning System S-2100 has a 360° vertical field of view and is the fastest 2D laser measurement system in the world.
- With its scan rate of more than 1 million points per second and a maximum scan speed of 200 profiles / sec., very short distances between profiles can be achieved even at high speeds.
- The high point density ensures that even the smallest objects can be registered and processed by the software.
- The new laser measurement system is classified "eye safe" in laser class 1. The scanner can be used in urban environments without any restrictions.
- A hardware-assisted pixel-by-pixel synchronization, already used and tested in previous models, makes it possible to process external signals to determine the position of the scan data.


What is Homenetmen
Homenetmen is the abbreviation of the first letters of the Armenian words for "Armenian General Union for Physical Education and Scouts".
Homenetmen is a Non-Governmental Organization that runs operations both in scouting and sports. Homenetmen consists of 108 chapters and units in 24 countries around the world.
Established in 1918, Homenetmen has a global structure. The organization's Armenian branch is called Homenetmen-HASK (Armenian National Scouts Organization) and represents the country's national scouting movement. As such, Homenetmen-HASK is a member to the World Organization of the Scout Movement.
Homenetmen Membership is open to all Armenians, regardless of their gender or faith.


text:
Letter of Intent Solvay Collaborates with Trillium Renewable Chemicals to Produce Sustainable Bio-Carbon Fiber
Solvay and Trillium Renewable Chemicals have joined hands to develop a bio-based acrylonitrile supply chain for producing bio-carbon fiber which can be used across various industries such as aerospace, automotive, energy, and consumer goods.
Brussels/Belgium – Solvay and Trillium Renewable Chemicals have signed a letter of intent to develop the supply chain for bio-based acrylonitrile (bio-ACN). Trillium will supply Solvay with bio-ACN from Trillium's planned commercial asset, and Solvay will evaluate bio-ACN for carbon fiber manufacturing as part of its long-term commitment to developing sustainable solutions from bio-based or recycled sources. The aim of this partnership is to produce carbon fiber for use in various applications such as aerospace, automotive, energy, and consumer goods.
Acrylonitrile is a chemical intermediate typically made from petroleum-based feedstocks like propylene and is the primary raw material used in the production of carbon fiber. Trillium's Bio-ACN process delivers acrylonitrile from plant-based feedstocks like glycerol with a lower carbon footprint.


text:
Maghain Aboth Synagogue
Comments on article: InfopediaTalk
Maghain Aboth Synagogue, which translates to "Shield of our Fathers", was completed in 1878. Situated at Waterloo Street, it is the oldest synagogue in Singapore and Southeast Asia. On 27 February 1998, the synagogue was gazetted as a national monument.
In 1841, the colonial government leased a plot of land to the Jewish community at a nominal rent, for the construction of a synagogue. This was to be the community's first synagogue. The land, estimated to measure 503m2, was located at where Synagogue Street is today, in the early Jewish quarters near Raffles Place.
The lease was enshrined in the Jewish Synagogue Ordinance and commenced on 1 September 1841. The three men that negotiated the lease, Joseph Dewk Cohen, Nassim Joseph Ezra and Ezra Ezra Ezekiel, were named in the Ordinance as the synagogue's trustees.
A two-storey shophouse was built to accommodate the synagogue, which began with a congregation of about 40 and served the local Jewish population for 30 years until the shophouse was sold. This building was demolished after World War II.
By 1870, the Jewish population had grown significantly and many were living further away from the synagogue. The leaders of the community thus saw the need to build a new synagogue, a need that was later met by the opening of the Maghain Aboth Synagogue.
In 1870, one of the new trustees, Joseph Joshua, negotiated to pay $4,000 for a piece of land owned by Raffles Institution at Bras Basah, for the construction of a new synagogue. However, the agreement required the synagogue to be built within three years. Because the funds for the building project could not be raised in time, the agreement lapsed.
It was only when Joshua's nephew Manasseh Meyer, also one of the trustees, returned to Singapore in 1873 that the current site for the Maghain Aboth Synagogue was acquired. Meyer, who had been in Rangoon (now called Yangon, in Myanmar) for the past six years, approached the government upon his return, for permission to sell the old synagogue and build a new one. The government approved his request and granted a plot of land at Waterloo Street (then known as Church Street) for the new synagogue.
On 4 April 1878, the Maghain Aboth Synagogue was consecrated. According to official sources, the service could have been conducted by one of two men, Lucunas or I. J. Hayeem, or both of them. The building had extensions added in 1924.
During the Japanese Occupation (_PHONE_), the synagogue remained an important meeting place, where the local Jews exchanged news and collected funds to help those in need.
The synagogue sits within a 2,290.6m2 compound where a sunk-in well for the mikvah or "ritual bath" can also be found. The synagogue itself is a simple, symmetrical building designed in neo-classical style. The covered porch that protrudes from the front of the building has an entrance arch large enough to allow horse carriages through.
From the front porch, a wide flight of steps leads up to the three wide doors at the main entrance of the synagogue. There are two separate entrances for women. Inside, the hall features a high triple-volume ceiling, traditional columns and rusticated walls that do not bear any decorations or images. In the centre is the bimah, a raised pulpit where prayers by the rabbi and readings from the Torah ("scrolls of the law") take place during services. The synagogue originally had only one storey, but a second-storey U-shaped balcony was later added to accommodate women.
The prayer hall is orientated west towards Jerusalem. The bimah faces the ahel or "ark", which is situated in a niche on an elevated area at the west wall of the hall. The ahel is an alcove where the Torah is stored and it is normally covered by the parochet, a fringed curtain with detailed embroidery. Hanging before the ahel is the eternal lamp, a symbol of the eternal flame that burned in what once was the Temple of Jerusalem. Sometimes a menorah or "seven-branched candlestand" would also be placed here, as a symbol of the state of Israel.
In the past, gas lighting and oil lamps provided illumination during services. The oil lamps, which were merely wicks placed in glass bowls filled with oil, still hang suspended from steel rods today, mainly in remembrance of those who died in the past year. Electric lamps attached to the ceiling and columns now provide the needed lighting.
Services and events
The Maghain Aboth Synagogue is a hive of activity during Jewish festive celebrations. It is open all year round and holds services daily except on Mondays, when services take place at the Chesed El Synagogue instead. In the early days, during the service, congregants had the practice of auctioning the aliyoth or "privileges" given to certain members of the congregation, with the money going towards the maintenance of the synagogue.
In 2006, the synagogue was one of the religious sites used as an exhibition venue during the inaugural Singapore Biennale.
Bonny Tan & Valerie Chew
Attorney General's Chambers. (2010). Jewish Synagogue Ordinance. Retrieved September 1, 2010, from Singapore Statutes Online website: _URL_
Edwards, N., & Keys, P. (1988). Singapore: A guide to buildings, streets, places (p. 271). Singapore: Times Books International.
(Call no.: RSING 915.957 EDW)
Jewish Welfare Board. (n.d.). History. Retrieved September 8, 2010, from _URL_
Lee, G. B. (2002). The religious monuments of Singapore: Faiths of our forefathers (pp. 102-105). Singapore: Landmark Books.
(Call no.: RSING 726.095957 LEE)
Lim, E. W. K., & Kho, E. M. (c2005). The Chesed-El Synagogue: Its history & people (pp. 8-19). Singapore: Trustees of Chesed-El Synagogue.
(Call no.: RSING 296.095957 LIM)
Nathan, E. (1986). The history of Jews in Singapore, _PHONE_ (pp. 1-13). Singapore: HERBILU Editorial & Marketing Services.
(Call no.: RSING 301.45192405957 NAT)
Singapore biennale 2006. (2006, September 6). The Straits Times. Retrieved January 21, 2011, from NewspaperSG.
Urban Redevelopment Authority. (1999). Maghain Aboth Synagogue preservation guidelines, Vol. I (pp. 4-6, 24). Singapore: Preservation of Monuments Board.
(Call no.: RSING 363.69095957 MAG)
Maghain Aboth Synagogue. (2010). Retrieved September 8, 2010, from Preservation of Monuments Board website: _URL_
Makepeace, W., Brooke, G. E., & Braddell, R. St. J. (Eds.). (1991). One hundred years of Singapore, Vol. 2 (pp. 274-275). Singapore: Oxford University Press.
(Call no.: RSING 959.57 ONE)
Samuel, D. S. (1991). Singapore's heritage: Through places of historical interest (pp. 49-51). Singapore: Elixir Consultancy Service.
(Call no.: RSING 959.57 SAM)
Wan, M. H. (2009). Heritage places of Singapore (pp. 127-128). Singapore: Marshall Cavendish Editions.
(Call no.: RSING 959.57 WAN)
The information in this article is valid as at 2010 and correct as far as we are able to ascertain from our sources. It is not intended to be an exhaustive or complete history on the subject. Please contact the Library for further reading materials on the topic.
Architecture and Landscape>>Building Types>>Historic Buildings
Architecture and Landscape>>Building Types>>Religious Buildings
People and communities>>Social groups and communities

source: HuggingFaceFW/fineweb-edu


text:
This 1,303-acre preserve located in the towns of Sullivan, Nelson, and Stoddard, provides vital habitat for several endangered natural communities.
Abutting more than 13,000 acres of protected lands (including the Andorra Forest), Otter Brook Preserve provides critical wetland and riparian habitat for wildlife. The preserve protects significant portions of the headwaters of Otter Brook, as well as parts of the watershed for Sullivan's largest and most productive aquifer.
The Nature Conservancy of New Hampshire established the Otter Brook Preserve in 1999. Located in Nelson, Stoddard, and Sullivan, the preserve offers excellent landscape scale conservation value due to its extensive core forest, adjoining conservation land, wetlands, and wildlife habitat. The preserve supports exemplary natural communities, including pristine ponds and acidic fens, and has excellent recreational and scenic value.
At nearly 15,000 acres, the Andorra Forest/Otter Brook conservation area is one of the largest contiguous forest blocks in Southwestern New Hampshire. It is this type of landscape scale conservation that will make a significant impact on the preservation of New Hampshire's most special places.
The Conservancy and its hardworking volunteers have established a 4.8-mile trail system at this relatively new preserve. The trail winds through diverse forest types to bring visitors to Bolster Pond and Brook, Otter Brook, Ellis Reservoir, and several other cultural features on the preserve.
Click here to download a trail map (.pdf, 594 kb).


text:
Time-dependent distance between two body coordinate systems
Constraints & Drivers
The Distance Driver block drives the distance between the origins of two Body coordinate system (CS) as a function of time that you specify. This function must always remain nonnegative during the simulation.
Let r1, r2 be the vector positions of the origins of CS1 on one Body and CS2 on the other Body, respectively. These vectors can be measured in any CS. The Distance Driver specifies the scalar distance d = |r1 - r2| between these points as a function of time:
You connect the Distance Driver to a Driver Actuator block.
The Simulink® input signal into the Driver Actuator specifies the time-dependent driving function f(t) and its first two derivatives, as well as their units. If you do not actuate Distance Driver, this block acts as a time-independent constraint that freezes the distance between the two Body CSs at its initial value d(t=0) during the simulation.
Caution The block computes the initial distance d(t=0) between the coordinate systems when the machine is in its home configuration, the original configuration of the machine's bodies before the simulation imposes initial conditions and implements joint assembly.
Drivers restrict relative degrees of freedom (DoFs) between a pair of bodies as specified functions of time. Locally in a machine, they replace a Joint as the expression of the DoFs. Globally, Driver blocks must occur topologically in closed loops. Like Bodies connected to a Joint, the two Bodies connected to a Drivers are ordered as base and follower, fixing the direction of relative motion.
You can also connect a Constraint & Driver Sensor to any Driver and measure the reaction forces/torques between the driven bodies.
The dialog has one active area, Connection parameters.
The base (B)-follower (F) Body sequence determines the sense of positive motion. Positive translation is the follower moving in the direction of the translation axis.
When you connect the base (B) connector port on the Distance Driver block to a Body CS Port on a Body, this parameter is automatically reset to the name of this Body CS. See the following figure, Distance Driver Base and Follower Body Connector Ports.
When you connect the follower (F) connector port on the Distance Driver block to a Body CS Port on a Body, this parameter is automatically reset to the name of this Body CS. See the following figure, Distance Driver Base and Follower Body Connector Ports.
Using this spinner menu, you can set the number of extra connector
ports needed for connecting Driver Actuator and Constraint & Driver
Sensor blocks to this Driver. The default is
To activate the Driver, connect a Driver Actuator.
Distance Driver Base and Follower Body Connector Ports

source: openbmb/Ultra-FineWeb


text:
Palm nuts with blue cloth bag, Nigeria, _PHONE_
The 16 palm nuts in this bag are used by Yoruba diviners to cast and ask questions about a person's illness. The nuts are passed from hand to hand eight times. Each time, one or two are kept in one hand and this is marked on a board. The diviner reads the pattern of these marks and matches it to one of 256 odu (signs or messages). The 16 palm nuts represent the children of Ifa, the Yoruba god of healing and divination. The Yoruba people traditionally live in south-west Nigeria.
Related Themes and Topics
There are 367 related objects. View all related objects
Techniques and Technologies:
Glossary: divination sets
The practice of seeking knowledge of the future through the interpretation of omens or other supernatural means.


text:
Utah State University Circular Variable Filter Spectrometers for Auroral Infrared Measurements.
STANFORD RESEARCH INST MENLO PARK CALIF
Pagination or Media Count:
The technical note is one of a series that provides brief descriptions of scientific programs investigating the physics and chemistry of the upper atmosphere under normal and disturbed conditions in support of the High Altitude Effects Simulation HAES program of the Defense Nuclear Agency. In the absence of actual nuclear testing in the atmosphere a number of experiments are being carried out both in the laboratory and in the field to determine a sufficient number of parameters to characterize the environment and its reactions in a suitable model. This technical note describes one of these experiments. The circular variable filter CVF infrared spectrometer is one of the principal instruments used in rocket-borne experiments to measure auroral infrared emissions. The spectrometers described were developed by Utah State University and include both liquid nitrogen cooled short wavelength infrared and liquid helium cooled long wave infrared spectrometers. A brief description is also given of the CVF spectrometer experiments flown in the ICECAP 73 rocket series launched from Poker Flat, Alaska in March 1973.
- Atmospheric Physics


text:
The effect of the pH on the interaction of L-arginine with colloidal silver nanoparticles. A Raman and SERS study
Raman and surface enhanced Raman scattering (SERS) spectroscopies were used to study the pH effect (7 to 9) on the interaction of arginine (Arg) with colloidal Ag nanoparticles (AgNps). A new methodology was implemented in order to obtain reproducible SERS spectra in solution. The dependence of the Arg concentration on the stability of the AgNps is discussed. A pH increasing of the colloidal solution to the limits of the Arg pKa2 value induces a preferential and stable Arg–metal interaction. j potential measurements of the Arg–AgNps system at different pH conditions studied provide information about the Arg–AgNps interaction; the pH increasing favors the interaction. SERS spectra at pH 7 indicate that the molecule interacts with the Ag surface only through the guanidinium fragment. By increasing the pH to 9, the molecule adopts a new conformation on the surface; the metal–analyte interaction is verified through the guanidinium, carboxylate and the aliphatic moieties. In addition, theoretical calculations performed by using the extended Hückel method for a model of Arg interacting with an Ag surface support the observed SERS results.
Artículo de publicación ISI
DOI: DOI 10.1002/jrs.4331
Quote ItemJ. Raman Spectrosc. 2013, 44, 1105 – 1110


text:
Trees were a type of plant found on many planets and moons throughout the galaxy. Some sentient species such as the Wookiees of the planet Kashyyyk and the Ewoks of the Forest Moon of Endor made their homes in the branches of trees. The subterranean caverns of Aleen housed a species of tree-like sentients, the Kindalo.
During his life on Tatooine, trees were unimaginable to Luke Skywalker, who had never seen them in the landscape of the desert planet, however trees were found on Tatooine in the poles where the desert surface was much like a savannah. This explains how Tatooine has a breathable atmosphere, with oxygen..


How do visually impaired swimmers know where their opponents are?
Paralympic champion Brad Snyder and tapper Brian Loeffler explain their tricks in the pool. 28 Apr 2017
Tapper taps a visually impaired swimmer on the head
Tappers let visually impaired swimmers know when they are approaching the end of the pool. Once the swimmers recieve the tap, they know when to turn.
"The most interesting dynamic to me is that after the race, we don't find out the outcome for quite a while because we can't see the scoreboard"
With raging adrenaline and muscles propelling their bodies at high speeds toward a wall, visually impaired swimmers need to know – exactly – when to turn.
Otherwise, they would collide with the wall.
This is where the swimmer's tapper comes into play.
A tapper is a person who lets the swimmer know when they are approaching the end of the pool by "tapping" them either once or twice.
Timing, the swimmer's preference and repetition, repetition, repetition, are all important, as five-time US Paralympic champion Brad Snyder and his tapper Brian Loeffler explain the tricks and techniques to visually impaired swimming:
1. How do you manage to swim in a straight line?
Brad Snyder: Practice, practice, and more practice … and even then, I still veer off course. That being said, the ways I attempt to stay straight are by always training with symmetry in mind, both in and out of the water.
I try to train so that my body is strong on both sides, and that I am employing both sides equally. Even still, I still notice differences in strength from one side to the other. So I note these differences and compete with that awareness.
I have modified my arm recovery, dragging my fingers along the surface of the water so that if I veer off course toward the lane line, I will hopefully detect the lane line with my fingers, allowing me to correct course before I crash and lose precious time.
2. How do you know (if even) where your opponents are?
BS: I don't! That's the magic of blind swimming. We are not really racing each other so much as we're racing ourselves.
3. How do you know if you are first, second, third, etc.? Or does that matter?
BS: I don't! I often imagine that I am behind so that it's easier to dig down deep towards the end of a race!
4. When a tapper taps your head, what does that tell you? How do you know when to turn for another lap?
BS: The tapper taps my back, not my head. When I get the tap, I immediately turn. We feel as though this eliminates any potential errors in stroke counting or whatever else. I try to simplify things as much as possible, so our strategy is 'tap, then turn!' Nothing else!
5. Have you been a "tapper" before you worked with Brad? What are some differences among athletes and their tapping preferences?
Brian Loeffler: Before I coached Philip Schultz who was a 2008 Paralympian. … That's where I had my first experience and really learned how to tap.
There are other nuisances with tapping. There's no official [tapping device].* It's not a standard piece of equipment. It's a really homemade device. Some people use long fishing poles. Brad would tend to use a cane that we could fold up to transport easily and it usually had a tennis ball at the end.
What also varies for each person is that some people like to be struck on the head. And some people like to be struck on the back. Brad likes the back. Philip likes the head.
6. What is key between a tapper and the swimmer?
BS: Consistency. It helps the tapper to know my race strategy and what pace I will be coming into the wall. It helps me if the tapper taps at the same point every time. When we get on the same page, the turn should look exactly like an able-bodied swimmer's turn. You shouldn't even be able to tell that I'm blind.
BL: I think it's really important to have a tapper you trust because you're swimming at a fast rate into the wall and you have to know that the tapper is going to tap you, and at a point where you're not too far away or close to the wall.
Some other folks like a long tapping device like 14 feet long. So they get to tap further out and take a couple of strokes before they flip in. Brad's preference is to be closer so that it's more immediate and he knows when to flip.
7. What else is important for a tapper on the pool deck?
BL: You have to just focus on your swimmer. Don't get distracted with what's going on in the race, where they are in the race or where their competitors are. Don't look at the stands. Your sole job is to focus on them and gauge their speed. It's very much like a relay takeoff. You have to anticipate how fast they're moving, and when the point is when they want to receive the tap.
I think some other things tappers might be afraid of when they're starting out is being too timid. … They need to be struck fairly hard. They would rather be struck hard and feel the tap rather than question oh was that a tap? Or was that a bump on the lane line?
Tappers also can't communicate with the swimmers. No words of encouragement or strategy.
8. What other facts should we know about how visually impaired swimmers swim?
BS: The most interesting dynamic to me is that after the race, we don't find out the outcome for quite a while because we can't see the scoreboard. It's excruciating to sit in the pool, listening to everyone cheer, hoping it's for you, but not being sure.
(*) While there are no set length regulations in the current rulebook, all tapping devices must be deemed safe by the Technical Officials at all international World Para Swimming competitions (rule


termed "impact analysis" is more detailed and costly, but also much more certain.
Table 8. MOC change impact pre-screening attributes.
From a best practice perspective, it's critical that change impact pre-screening differ dramatically from detailed impact analysis. Otherwise, pre-screening (which is supposed to be a 1 minute operation) will morph into its own business process and slow down the entire MOC initiation process. Screening questions should be designed so that all the screening questions should normally be answerable by one person, typically the initiator.
Change Impact Pre-Screening Impact Analysis
Process safety screening Is this a change to inventory of material? PHA to assess impact of inventory change.
Is there a change in the potential for personnel exposure? PHA to assess impact of personnel exposure change.
Environmental screening Is there a potential for a change in community effects? Analysis to assess impacts on community.
Does the change add a new air emission source of any pollutant? Analysis to assess impact of new emission source.
Financial screening Rough Order of Magnitude cost, say, ±100% More accurate cost estimate, say, ±20%
Table 9. Impact pre-screening vs. analysis.
Pre-screening Process Safety Risks
Pre-screening is often used to determine the following:
 - what kind of impact analyses will be performed during the Impact Analysis state: HAZOP, what-if, etc.?
 - does the change involve a topic where the company has received a prior citation? The intent is to identify these cases early in order to avoid a "willful negligence" citation.
Pre-screening Environmental Risks
Pre-screening is often used to identify the following:
 - does the change have the potential to create a situation which will cause permit limits to be exceeded? If so, then the Environmental group will demand immediate input on the change proposal.
Pre-screening Costs
Pre-screening is often used to determine the following:
 - if this is a discretionary change, does the change cause a budget limit to be exceeded? The person, paying for the change, may not actually have sufficient funds to allow it to proceed.
The cost attribute captures this information. But costs are not well known this early in the change process, so it's necessary to indicate the cost accuracy, e.g. ± 100%.
Most of the pre-screening attributes, but particularly costs, can be interpreted in multiple ways. Does the cost attribute represent just the material costs? material plus labor? or, some other variation? Some guidance on the form would be helpful, otherwise this data will not be provided in a consistent manner.
Additional information, that the initiator believes is important and/or relevant, can be put into the comments section, see Table 10.
Table 10. MOC comments.
This is "a" mechanism for capturing commentary during a change. The benefit of comments is that this typically appears on the front page of an MOC.
In electronic implementations, comments are also possible and desirable. However, other techniques, like Wikis, threaded discussions, "team sites", and so on, may provide the same benefits as a comments field.
Figure 2. Sample completed MOC initiation form.
This newsletter has presented a representative list of attributes for a Management of Change instance. A sample of a completed change initiation form appears in.
 1. OSHA, 1992, "Process safety management of highly hazardous chemicals," 29CFR1910.119, OSHA, Washington.
 2. Hoff, R., 2010, "Covered Processes," MOC Best Practices, 4(1).
 3. Hoff, R., 2010, "What's a change?," MOC Best Practices, 4(2).
 4. Hoff, R., 2009, "Replacement in Kind," MOC Best Practices, 3(4).
 5. Garwood, D., 2004, Bills of Material for a Lean Enterprise, Dogwood Publishing Company, Inc., Marietta, GA.
 6. Hoff, R., 2009, "MOCs, Capital Projects, Turnarounds," MOC Best Practices, 3(2).
 7. Hoff, R., 2007, "Lifecycles," MOC Best Practices, 1(2).
 8. American Institute of Chemical Engineers. Center for Chemical Process Safety., 2007, Guidelines for risk based process safety, Wiley-Interscience, Hoboken,N.J.
Standard Disclaimer
It is sincerely hoped that the information presented in this document will lead to an even more impressive safety record for the entire industry; however, Gateway Consulting Group, Inc., its employees, consultants, the document's authors disclaim making or giving any warranties or representations, express or implied, including with respect to fitness, intended purpose, use or merchantability and/or correctness or accuracy of the content of the information presented in this document. As between (1) Gateway Consulting Group, Inc., its employees, consultants, the document's authors and (2) the user of this document, the user accepts any legal liability or responsibility whatsoever for the consequence of its use or misuse.
Gateway Consulting Group Inc.
8610 Transit Road, Suite 100,
East Amherst, NY 14051 USA
Phone: _PHONE_
Directions from BUF Airport:
East on Genesee St./RT-33 for 1.6 mi.
North on Transit Rd./RT-78 for 4.4 mi
8610 Transit Rd is on the left
Direct Sales Inquiries to:
Phone: _PHONE_ X 4
© Copyright 2020 Gateway Consulting Group Inc. All Rights Reserved.


text:
Republic of Korea Marine Corps
From Canadian Power Wiki
The Republic of Korea Marine Corps (ROKMC; Korean: 대한민국 해병대; Hanja: 大韓民國海兵隊; Revised Romanization: Daehanminguk Haebyeongdae), also known as the ROK Marine Corps, or the ROK Marines, is the marine corps of South Korea. Though theoretically it is under the direction of the South Korean Chief of Naval Operations, the ROK Marine Corps operates as a distinct arm of the South Korean Armed Forces, unlike the marine corps of most other countries, which generally operate as part of a navy. The ROKMC was founded as a suppression operations force against communist partisans just prior to the start of the Korean War. The ROKMC also saw combat during the Vietnam War, while stationed in Da Nang, occasionally fighting alongside the U.S. Marines.


text:
Crabs sound out their ideal reef home
Coastal acoustics Sounds given off by coastal reefs help crab larvae to settle into their ideal coastal home, say New Zealand researchers.
Marine scientist Dr Jenni Stanley and colleagues from the University of Auckland report their findings today in the journal Proceedings of the Royal Society B.
"The reef is a very very noisy place," says Stanley, who says there is a range of noises produced by reef-dwelling animals.
These include low-frequency grunts and howls from fighting and mating fish, the click of crustacean claws and the chorus of sea urchin teeth grazing on algae, she says.
"The noisiest organism is the snapping shrimp that produce a pop and crackle that sounds like something frying in a fry pan."
Stanley says previous studies have found such sounds, which can reach up to 130 decibels, help guide marine larvae towards the coast where they mature and reproduce.
She and colleagues studied the role of sound in the helping five species of marine crabs to settle on coastal reefs.
The crab larvae swim sometimes tens of kilometres from offshore to the coast. When they find a suitable home, they mature by metamorphosing into an adult crab form that is more suitable for crawling than swimming.
Stanley and colleagues have found that as well as telling the crab larvae which way the coast is, reef sounds also help them to settle and mature in the right place.
Stanley recorded the sound made by a coastal reef, a harbour and a sandy beach all on the same part of the coast and played these different sounds back to different groups of crab larvae in the lab.
She then measured how long it took the different groups to mature into adult crabs.
Stanley found the time to metamorphosis was shortened by 33 to 47 per cent when the crabs heard the sound of their ideal coastal reef, compared to the sound of a sandy beach.
"The time to metamorphosis was a lot shorter when they were played the sound of an ideal habitat," she says.
Field-based experiments found the time to metamorphosis was shortened by about 21 to 34 per cent.
The relative delay in metamorphosis that occurs when larvae hear their non-ideal environment gives them time to keep looking for the right home.
"If they go to an unideal habitat, sink down to the bottom, have a look around and realise this isn't actually where they want to be, they can rise back up into the water column and do another search pattern for a more appropriate habitat," says Stanley.


RSyslog Documentation
imudp: UDP Syslog Input Module
Module Name:imudp
Author:Rainer Gerhards <>
Provides the ability to receive syslog messages via UDP.
Multiple receivers may be configured by specifying multiple input statements.
Note that in order to enable UDP reception, Firewall rules probably need to be modified as well. Also, SELinux may need additional rules.
Notable Features
Configuration Parameters
Parameter names are case-insensitive.
Module Parameters
typedefaultmandatoryobsolete legacy directive
This is a performance optimization. Getting the system time is very costly. With this setting, imudp can be instructed to obtain the precise time only once every n-times. This logic is only activated if messages come in at a very fast rate, so doing less frequent time calls should usually be acceptable. The default value is two, because we have seen that even without optimization the kernel often returns twice the identical time. You can set this value as high as you like, but do so at your own risk. The higher the value, the less precise the timestamp.
Note: the timeRequery is done based on executed system calls (not messages received). So when batch sizes are used, multiple messages are received with one system call. All of these messages always receive the same timestamp, as they are effectively received at the same time. When there is very high traffic and successive system calls immediately return the next batch of messages, the time requery logic kicks in, which means that by default time is only queried for every second batch. Again, this should not cause a too-much deviation as it requires messages to come in very rapidly. However, we advise not to set the "timeRequery" parameter to a large value (larger than 10) if input batches are used.
typedefaultmandatoryobsolete legacy directive
Can be used the set the scheduler priority, if the necessary functionality is provided by the platform. Most useful to select "fifo" for real-time processing under Linux (and thus reduce chance of packet loss). Other options are "rr" and "other".
typedefaultmandatoryobsolete legacy directive
Scheduling priority to use.
typedefaultmandatoryobsolete legacy directive
This parameter is only meaningful if the system support recvmmsg() (newer Linux OSs do this). The parameter is silently ignored if the system does not support it. If supported, it sets the maximum number of UDP messages that can be obtained with a single OS call. For systems with high UDP traffic, a relatively high batch size can reduce system overhead and improve performance. However, this parameter should not be overdone. For each buffer, max message size bytes are statically required. Also, a too-high number leads to reduced efficiency, as some structures need to be completely initialized before the OS call is done. We would suggest to not set it above a value of 128, except if experimental results show that this is useful.
typedefaultmandatoryobsolete legacy directive
New in version 7.5.5.
Number of worker threads to process incoming messages. These threads are utilized to pull data off the network. On a busy system, additional threads (but not more than there are CPUs/Cores) can help improving performance and avoiding message loss. Note that with too many threads, performance can suffer. There is a hard upper limit on the number of threads that can be defined. Currently, this limit is set to 32. It may increase in the future when massive multicore processors become available.
typedefaultmandatoryobsolete legacy directive
New in version 8.37.0.
This parameter is for controlling the case in fromhost. If preservecase is set to "on", the case in fromhost is preserved. E.g., 'Host1.Example.Org' when the message was received from 'Host1.Example.Org'. Default to "off" for the backword compatibility.
Input Parameters
typedefaultmandatoryobsolete legacy directive
Local IP address (or name) the UDP server should bind to. Use "*" to bind to all of the machine's addresses.
typedefaultmandatoryobsolete legacy directive
Specifies the port the server shall listen to.. Either a single port can be specified or an array of ports. If multiple ports are specified, a listener will be automatically started for each port. Thus, no additional inputs need to be configured.
Single port: Port="514"
Array of ports: Port=["514","515","10514","…"]
typedefaultmandatoryobsolete legacy directive
New in version 8.18.0.
Manages the IP_FREEBIND option on the UDP socket, which allows binding it to an IP address that is nonlocal or not (yet) associated to any network interface.
The parameter accepts the following values:
 - 0 - does not enable the IP_FREEBIND option on the UDP socket. If the bind() call fails because of EADDRNOTAVAIL error, socket initialization fails.
 - 1 - silently enables the IP_FREEBIND socket option if it is required to successfully bind the socket to a nonlocal address.
 - 2 - enables the IP_FREEBIND socket option and warns when it is used to successfully bind the socket to a nonlocal address.
typedefaultmandatoryobsolete legacy directive
Bind socket to given device (e.g., eth0)
For Linux with VRF support, the Device option can be used to specify the VRF for the Address.
typedefaultmandatoryobsolete legacy directive
Binds the listener to a specific ruleset.
typedefaultmandatoryobsolete legacy directive
New in version 7.3.1.
The rate-limiting interval in seconds. Value 0 turns off rate limiting. Set it to a number of seconds (5 recommended) to activate rate-limiting.
typedefaultmandatoryobsolete legacy directive
New in version 7.3.1.
Specifies the rate-limiting burst in number of messages.
typedefaultmandatoryobsolete legacy directive
New in version 8.3.3.
Specifies the value of the inputname property. In older versions, this was always "imudp" for all listeners, which still is the default. Starting with 7.3.9 it can be set to different values for each listener. Note that when a single input statement defines multiple listener ports, the inputname will be the same for all of them. If you want to differentiate in that case, use "name.appendPort" to make them unique. Note that the "name" parameter can be an empty string. In that case, the corresponding inputname property will obviously also be the empty string. This is primarily meant to be used together with "name.appendPort" to set the inputname equal to the port.
typedefaultmandatoryobsolete legacy directive
New in version 7.3.9.
Appends the port the inputname property. Note that when no "name" is specified, the default of "imudp" is used and the port is appended to that default. So, for example, a listener port of 514 in that case will lead to an inputname of "imudp514". The ability to append a port is most useful when multiple ports are defined for a single input and each of the inputnames shall be unique. Note that there currently is no differentiation between IPv4/v6 listeners on the same port.
typedefaultmandatoryobsolete legacy directive
This is an experimental parameter; details may change at any time and it may also be discontinued without any early warning. Permits to set a default timezone for this listener. This is useful when working with legacy syslog (RFC3164 et al) residing in different timezones. If set it will be used as timezone for all messages that do not contain timezone info. Currently, the format must be "+/-hh:mm", e.g. "-05:00", "+01:30". Other formats, including TZ names (like EST) are NOT yet supported. Note that consequently no daylight saving settings are evaluated when working with timezones. If an invalid format is used, "interesting" things can happen, among them malformed timestamps and rsyslogd segfaults. This will obviously be changed at the time this feature becomes non-experimental.
typedefaultmandatoryobsolete legacy directive
New in version 7.3.9.
This request a socket receive buffer of specific size from the operating system. It is an expert parameter, which should only be changed for a good reason. Note that setting this parameter disables Linux auto-tuning, which usually works pretty well. The default value is 0, which means "keep the OS buffer size unchanged". This is a size value. So in addition to pure integer values, sizes like "256k", "1m" and the like can be specified. Note that setting very large sizes may require root or other special privileges. Also note that the OS may slightly adjust the value or shrink it to a system-set max value if the user is not sufficiently privileged. Technically, this parameter will result in a setsockopt() call with SO_RCVBUF (and SO_RCVBUFFORCE if it is available). (Maximum Value: 1G)
Statistic Counter
If an "inputname" is defined for a listener, that inputname is used instead of "imudp" as statistic name. For example, if the inputname is set to "myudpinut", that corresponding statistic name in above case would be "myudpinput(*:514)". This has been introduced in 7.5.3.
The following properties are maintained for each listener:
 - submitted - total number of messages submitted for processing since startup
The worker thread (in short: worker) statistic is named "imudp(wX)" where "X" is the worker thread ID, which is an monotonically increasing integer starting at 0. This means the first worker


text: Tetris is a tile-matching puzzle video game originally designed and programmed by Alexey Pajitnov in the Soviet Union. It was released on June 6, 1984. Tetriminos are game pieces in geometric shapes composed of four square blocks each. A random sequence of Tetriminos fall down the playing field. The objective of the game is to manipulate these Tetriminos to create a horizontal line of ten blocks without gaps. When such a line is created, it disappears and any block above the deleted line will fall. When a certain number of lines are cleared, the game enters a new level. As the game progresses, the Tetriminos fall faster, and the game ends when the stack of Tetriminos reaches the top of the playing field and no new Tetriminos are able to enter.


text:
Continuous Krapcho Dealkoxycarbonylation in API Synthesis
A high pressure and high temperature continuous flow reactor has been used to intensify a Krapcho dealkoxycarbonylation reaction in the context of API synthesis. The reactor enables operation of the reaction above temperatures possible in batch and thus significantly increased conversion rates are achieved. Also a broader choice of solvents is possible by the use of the continuous process. Batch and continuous reaction are compared in terms of operation range and space-time-yield. Despite lower concentrations of the reactants in the continuous process, space-time-yield exceeds that of the batch process by more than an order of magnitude due to the higher reaction rates.
Use and reproduction:
All rights reserved


text:
Zero Waste Event at Ohanyan Educational Complex
On November 8, 2022, Ms. Natia Natsvlishvili, UNDP Resident Representative in Armenia, Mr. John Gallagher, UK Ambassador to Armenia as well as representatives from different international organizations, government institutions and diplomatic missions in Armenia took part in the demo event organized jointly by the UNDP/GEF Small Grants Programme and ISSD NGO at Ohanyan Educational Complex. The event included tree planting at the school orchard and demonstration of composting technology to promote a zero-waste culture and increase public awareness on the importance of composting among schoolchildren.
"…Today's event is our contribution to the country's commitments to increase the percentage of tree-planted areas in Armenia. And by assigning the schoolchildren as care takers, we hope that the planted orchard will be duly maintained" – Ms. Natia Natsvlishvili mentioned during her speech.
The ISSD NGO trainers conducted a masterclass for the guests and schoolchildren on composting and explained its importance for the environment.
During the event the schoolchildren of the educational complex were assigned trees planted in the name of guests and received symbolic passports to record any activities they performed to take care of the trees.
Subscribe for our news


text:
Gay-rights activists are celebrating in Puerto Rico after the Senate passed a sweeping bill that bans discrimination on sexual orientation and gender identity. The Puerto Rico Senate voted on May 16, 15-11, to pass Bill 238 just days after San Juan Mayor Carmen Yulín Cruz issued two executive orders banning discrimination against the city's LGBT municipal employees. Now, the bill moves on to the House and faces hurdles from a group of lawmakers in the lower chamber who have come out against it. The bill, though, has one famous supporter. Puerto Rican Ricky Martin released a statement in support of the law. "The rights of homosexual people are human rights and human rights are for everyone," Martin said in the letter released by his representative in San Juan.
For the original report go to _URL_
The Indian Caribbean Museum, described as "a national treasure, a window to the past, and an opportunity to see history come alive", has been cited by a National Geographic publication that showcases 500 of the world's most powerful and spiritual places and guides travellers who wish to visit them, as Paras Ramoutar reports in this article for twocircles.com.
"This is a fitting recognition in just seven years of our existence, especially as we celebrate the 168th Indian Arrival Day May 30," Sansbhan Jokhoo, the curator of the museum that serves as a link between indentured Indian labourers and the present, told IANS.
"The Indian Caribbean Museum has international prominence and recognition as the only one of its kind in the world. Not even India has one. And before the inauguration of the Kolkata memorial last year planners from India came to visit our facility," Jokhoo said.
The Kolkata memorial, in the city's Garden Reach area, remembers the indentured Indian labourers who left India during the 19th & early 20th centuries to work on plantations in the West Indies.
Between 1845 and 1917, approximately 148,000 Indians were brought to this country, principally from Bihar and Uttar Pradesh, and worked to rescue the decaying plantations following the abolition of slavery by the British government.
It is to keep alive their memory that Satnarayan Maharaj, secretary general of the Sanatan Dharma Maha Sabha (SDMS) launched the museum, which features in "Sacred Places of a Lifetime – 500 of the World's Most Peaceful and Powerful Destinations".
The collection includes items such as rare musical instruments, agricultural objects, cooking utensils, pieces of clothing, ancient photographs and historical books. Objects of historical and aesthetic value include a sapat (wooden slipper) jata (grinding stone) boli (gourd bowl) and hassawa (grass knife). There is also a huge copper basin that was used for boiling cane syrup in the sugar factories up to the 1930s, and a dekha (a wooden contraption used for grinding cocoa, coffee beans, corn and rice).
The museum, which has become a research centre with the country's National Archives, also houses an art gallery, a reference library and a computerised genealogical database. A botanical garden is also in the making. The institution is a member of the Caribbean Museum Association, which comprises 20 institutions spread across the region.
"The Indian Caribbean Museum is a national treasure, a window to the past, and an opportunity to see history come alive. To many visitors, it evokes memories of the past, a link to the present, and a vision for the future. The museum serves as a foundation for collective memory, cultural continuity and national development," Jokhoo said.
"It provides a common experience that families can share across generations and serve as a link between revered ancestors and living people. The museum provides information on the cultural heritage of Indians in the Caribbean to themselves and to people of all ethnic backgrounds," he added.
"The Caribbean Indian Museum holds fundamental importance and relevance to the continued kinship and affinity with India, and within the entire Indian diaspora, as it has myriad symbolic, cultural, religious and transcendental interpretations and meanings for all. It remains a monument for posterity. It will remain ageless," Jokhoo said.
Since its inception, in excess of 45,000 persons from all walks of life from the four corners of the globe have visited the museum, according to Ann Marie Ramhit, an assistant.
She said that Dennison Moore, who wrote the Canadian government's policy on multiculturalism, recently donated 107 books reflecting different aspects of India and the diaspora to the library.
"This donation has augmented our educational stock for research, as well as for leisure reading," Ramhit added.
Winston Dookeran, now the Trinidad and Tobago foreign minister, had in 2006 opened the museum, located in the west-central part of Trinidad.
For the original report go to _URL_
Scientists say three to six major hurricanes will hit US, some in areas far beyond those typically associated with extreme storms, as Suzanne Goldenberg reports in this article for London's Guardian.
Americans were warned on Thursday to brace for an extremely active hurricane season – less than a year after the devastation of Sandy, which hit the east coast in October 2012 – with 13 to 20 named storms, including seven to 11 hurricanes.
The National Oceanic and Atmospheric Administration, releasing its annual forecast, said 2013 would be prolific in raising storms out of the Atlantic and Caribbean. Of the predicted hurricanes, Noaa predicted that three to six could be major hurricanes, rated category three and packing winds of 111mph or higher.
Thursday's forecast was well above the average of 12 named storms, eight hurricanes and three major hurricanes. Administration officials also warned that the impacts of those storms – as with Sandy and Irene in 2011 – could be felt in areas far beyond those typically associated with hurricanes and tropical storms.
Sandy killed scores as it made its way across the Caribbean to the north-east US. While it was only a category two storm when it made landfall near Atlantic City in New Jersey, Sandy caused more than $75bn in damage. Lower Manhattan was knocked off the electrical grid for days because of storm surges and coastal communities have yet to recover.
"As we saw first-hand with Sandy, it's important to remember that tropical storm and hurricane impacts are not limited to the coastline. Strong winds, torrential rain, flooding, and tornadoes often threaten inland areas far from where the storm first makes landfall," said Kathryn Sullivan, the acting Noaa administrator.
Noaa scientists said there were three main causes behind the forecast of an extremely active season. They included a continuation of an atmospheric climate pattern, which includes a strong west African monsoon, that has been contributing to high activity during Atlantic hurricane season since the 1990s. Warmer ocean temperatures in the Atlantic and Caribbean oceans, where many storms originate, are also making for stronger storms. Officials said temperatures were on average about 0.8 of one degree fahrenheit above average.
El Niño, which can inhibit storm systems, was not expected to develop during this year's hurricane season. The season runs from 1 June to 1 November.
"There are no mitigating factors that we can see that will suppress the activity," said Gerry Bell, Noaa's lead Atlantic hurricane forecaster. "The computer models all point to an active, or very active, hurricane season."
Thursday's forecast was released at a time when Republicans in Congress are sharply scrutinising Noaa's role in forecasting. Earlier in the day, a house committee held a hearing to discuss privatising some of the forecasting functions that are overseen by the premier scientific agency. There has also been criticism of Noaa's messaging in advance of Hurricane Sandy, and whether its decision to officially downgrade the storm when it made landfall in New Jersey induced a false sense of security among some coastal communities.
Noaa officials, in unveiling their 2013 forecast, noted improvements to computer models that would allow better far-range prediction of storms. New Doppler radar data, to be introduced in July, will allow forecasters to better analyse rapidly changing storm conditions, officials said. However, the officials said it was impossible at this juncture to predict which coastal communities along the Atlantic coast are most likely to be hit this year.
It is also not yet clear when the storms will hit. As Sullivan noted, Sandy struck in the waning days of the hurricane season. "Hurricane Sandy was at the very end of the hurricane season and yet was one of the most devastating storms that we have ever seen," she said.
But officials said repeatedly that residents the length of the coast – and beyond – needed to prepare in advance, in order to be able to ride out storms in their homes or, if needed, have an exit plan in place. Such preparations should include putting aside a 72-hour supply of food and water at home, or having an evacuation plan in case of storm damage or flooding.
"This is a very dangerous hurricane season," said Joe Nimmich, who directs disaster response and recovery for the Federal Emergency Management Agency. "If you are not prepared you may become one of the statistics we don't care to have."
For the original report go to _URL_
The special issue, edited by Lorna Burns and Wendy Knepper, seeks to "sound new directions in Harris studies and attempt both to reinvigorate the current file and establish a new agenda for future scholarship."


Importing an image into SwiftUI using UIImagePickerController
Paul Hudson _USER_
In order to bring this project to life, we need to let the user select a photo from their library, then display it in ContentView. I've already shown you how this all works, so now it's just a matter of putting it into our app – hopefully it will make a little more sense this time!
Start by making a new Swift file called ImagePicker.swift, replace its "Foundation" import with "SwiftUI", then give it this basic struct:
struct ImagePicker: UIViewControllerRepresentable {
 _USER_(\.presentationMode) var presentationMode
 _USER_ var image: UIImage?
 func makeUIViewController(context: UIViewControllerRepresentableContext) -> UIImagePickerController {
 let picker = UIImagePickerController()
 return picker
 func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext) {
If you recall, using UIViewControllerRepresentable means that ImagePicker is already a SwiftUI view that we can place inside our view hierarchy. In this instance we're wrapping UIKit's UIImagePickerController, which lets the user select something from their photo library.
When that ImagePicker struct is created, SwiftUI will automatically call its makeUIViewController() method, which is what goes on to create and send back a UIImagePickerController. However, our code doesn't actually respond to any events inside the image picker – the user can search for an image and select it to dismiss the view, but we don't then do anything with it.
Rather than making us create a subclass of UIImagePickerController, UIKit instead uses a system of delegation: we create a custom class that will be told when something interesting happened. Each delegate class will usually need to conform to one or more protocols, and in our case that means UINavigationControllerDelegate and UIImagePickerControllerDelegate. The delegates work much like real-life delegates – if you delegate work to someone else, it means you're giving it to them to complete.
SwiftUI handles these delegate classes by letting us define a coordinator that belongs to the struct. This class can do anything we need, including acting as the delegate for UIKit components, and we can then pass any relevant information back up to the ImagePicker that owns it.
Start by adding this as a nested class inside ImagePicker:
class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
 let parent: ImagePicker
 init(_ parent: ImagePicker) {
 self.parent = parent
You can see that conforms to the two protocols we need to use for working with UIKit's image picker, and also inherits from NSObject which is the base class for most types that come from UIKit.
Because our coordinator class conforms to the UIImagePickerControllerDelegate protocol, we can make it the delegate of the UIKit image picker by modifying makeUIViewController() to this:
 let picker = UIImagePickerController()
 picker.delegate = context.coordinator
 return picker
We need to make two more changes to ImagePicker to make it useful. The first is to add a makeCoordinator() method that tells SwiftUI to use the Coordinator class for the ImagePicker coordinator. From our perspective this is obvious, because we created a class called Coordinator that was inside the ImagePicker struct, but this makeCoordinator() method lets us control how the coordinator is made.
If you recall, we gave the Coordinator class a single property: let parent: ImagePicker. This means we need to create it with a reference to the image picker that owns it, so the coordinator can forward on interesting events. So, inside our makeCoordinator() method we'll create a Coordinator object and pass in self.
Add this method to the ImagePicker struct now:
func makeCoordinator() -> Coordinator {
The final step for ImagePicker is to give the coordinator some sort of functionality. The UIImagePickerController class looks for two methods, but here we're only going to use one: didFinishPickingMediaWithInfo. This will be called when the user has selected an image, and will be given a dictionary of information about the selected image.
To make ImagePicker useful we need to implement that method inside Coordinator, make it set the image property of its parent ImagePicker, then dismiss the view.
UIKit's method name is long and complex, so it's best written using code completion. Make some space inside the Coordinator class and type "didFinishPicking", then press return to have Xcode fill in the whole method for you. Now modify it to have this code:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
 if let uiImage = info[.originalImage] as? UIImage {
 parent.image = uiImage
That completes ImagePicker.swift, so please head back to ContentView.swift so we can make use of it.
First we need an _USER_ Boolean to track whether our image picker is being shown or not, so start by adding this to ContentView:
_USER_ private var showingImagePicker = false
Second, we need to set that Boolean to true when the big gray rectangle is tapped, so replace the // select an image comment with this:
self.showingImagePicker = true
Third, we need a property that will store the image the user selected. We gave the ImagePicker struct an _USER_ property attached to a UIImage, which means when we create the image picker we need to pass in a UIImage for it to link to. When the _USER_ property changes, the external value changes as well, which lets us read the value.
So, add this property to ContentView:
_USER_ private var inputImage: UIImage?
Fourth, we need a method that will be called when the ImagePicker view has been dismissed. For now this will just place the selected image directly into the UI, so please add this method to ContentView now:
func loadImage() {
 guard let inputImage = inputImage else { return }
 image = Image(uiImage: inputImage)
And finally, we need to add a sheet() modifier somewhere in ContentView. This will use showingImagePicker as its condition, will reference loadImage as its onDismiss parameter, and present an ImagePicker bound to inputImage as its contents.
So, add this directly below the existing navigationBarTitle() modifier:
.sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
 ImagePicker(image: self.$inputImage)
That completes all the steps required to wrap a UIKit view controller for use inside SwiftUI. We went over it a little faster this time but hopefully it still all made sense!
Go ahead and run the app again, and you should be able to tap the gray rectangle to import a picture, and when you've found one it will appear inside our UI.
Tip: The ImagePicker view we just made is completely reusable – you can put that Swift file to one side and use it on other projects easily. If you think about it, all the complexity of wrapping the view is contained inside ImagePicker.swift, which means if you do choose to use it elsewhere it's just a matter of showing a sheet and binding an image.
Hacking with Swift is sponsored by Essential Developer
Save your spot now
Sponsor Hacking with Swift and reach the world's largest Swift community!
Was this page useful? Let us know!
Average rating: 4.4/5
Unknown user
You are not logged in
Log in or create account
Link copied to your pasteboard.


) string
Error is here to adhere to the error interface.
type Tag
type Tag int32
Tag represents the state for a Caser.
type TimeoutError
type TimeoutError int
TimeoutError is the error returned by all Expect functions upon timer expiry.
func (TimeoutError) Error
func (t TimeoutError) Error() string
Error implements the Error interface.
Source Files
Directories
Path Synopsis
examples
newspawner
telnet creates a new Expect spawner for Telnet.
telnet creates a new Expect spawner for Telnet.
process
process is a simple example of spawning a process from the expect package.
process is a simple example of spawning a process from the expect package.
Jump to
Keyboard shortcuts
? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL


text:
Ziv, Guy. Why Hawks Become Doves: Shimon Peres and Foreign Policy Change in Israel. Albany: State University of New York Press, 2014.
Why do hawkish leaders change course to pursue dovish policies? In Why Hawks Become Doves, Guy Ziv argues that conventional international relations theory is inadequate for explaining these momentous foreign policy shifts, because it underestimates the importance of leaders and their personalities. Applying insights from cognitive psychology, Ziv argues that decision-makers' cognitive structure—specifically, their levels of cognitive openness and complexity—is a critical causal variable in determining their propensity to revise their beliefs and pursue new policies. To illustrate his point, he examines Israeli statesman Shimon Peres. Beginning his political career as a tough-minded security hawk, Peres emerged as one of the Middle East's foremost champions of Israeli-Palestinian peacemaking. Drawing on a vast range of sources, including interviews with Peres and dozens of other political elites, archival research, biographies, and memoirs, Ziv finds that Peres's highly open and complex cognitive structure facilitated a quicker and more profound dovish shift on the Israeli-Palestinian conflict than his less cognitively open and complex rivals.
Table of Contents
1. Introduction: An Individual Level Explanation of Foreign Policy Change
2. Assessing Cognitive Structure: A Comparison of Four Israeli Prime Ministers
3. Peres: The Hawkish Years (1953–1977)
4. Peres's Dovish Turn, Phase I (1977–1987)
5. Pere's Dovish Turn, Phase II (1987–1997)


text:
Policies relevant to NHS funded knowledge and library services
NHS Library and Knowledge Services in England Policy
The NHS Library and Knowledge Services in England Policy was approved by the Health Education England Executive on the 29th November 2016.
The policy sets out our approach to delivering on the key objective of enabling access to knowledge and evidence for healthcare decision makers.
In the policy Health Education England commits to:
- Developing NHS library and knowledge specialists to use their expertise to mobilise evidence obtained from research and organisational knowledge to underpin decision-making in the National Health Service in England
- Enabling all NHS workforce members to freely access library and knowledge services so that they can use the right knowledge and evidence to achieve excellent healthcare and health improvement
- Developing NHS library and knowledge services into a coherent national service that is proactive and focused on the knowledge needs of the NHS and its workforce
Recommendations to improve the staff ratio
The NHS Knowledge and Library Services in England published its'recommendations to improve the staff ratio for the number of qualified library and knowledge specialists per member of NHS workforce policy' in November 2019.
The NHS requires proactive knowledge services as business-critical instruments of informed decision-making.
Currently there is significant variation in the ratio of qualified library and knowledge specialists to healthcare staff.
This leads to inequitable service provision across England and the Service is not uniformly able to draw on evidence for decision-making.
By introducing a recommended staff ratio Health Education England is enabling individual organisations to identify and address that risk.
This policy makes a set of recommendations through which trusts and arm's length bodies may look to ensure, and where necessary continuously build, improved staffing levels.
- To optimise the benefits for the NHS of the emerging new roles for librarians and knowledge specialists, HEE recommends that all NHS organisations:
- review regular reports of the positive impact of the library and knowledge service on outcomes
- work with the local library service manager to prioritise allocation of clinical librarian, knowledge manager and other embedded roles to specialities
- take incremental steps to improve the staff ratio between qualified librarians and knowledge managers per member of the NHS workforce, through role redesign and by expanding this specialist workforce
- HEE recommends that over time, all NHS organisations aspire to achieving a much-improved staffing ratio.
- HEE recommends that those NHS organisations with a staffing ratio in the region of the current average of 1 qualified librarian to 1,730 or more healthcare staff, strive to achieve a ratio of at least 1 qualified librarian or knowledge specialist per 1,250 WTE NHS staff.
- HEE commits to monitoring the staff ratios annually and to reviewing the recommended ratio in three years' time.
Organisations are invited to contact their regional HEE Knowledge and Library Services Lead for support [email protected].
Learning space within NHS Knowledge and Library Services in England
Published on 4th January 2021
There are two key recommendations in the policy:
- The library study and wellbeing space should be available to all staff, educators and learners both during and outside the working hours of the knowledge and library services team.
- The library service space should be developed, managed by the knowledge and library services staff, to ensure value through enabling organisational innovation, and meeting the changing needs of healthcare staff, learners and educators in relation to study and reflection, health and well-being, collaboration, and as a technology hub.
Focus on library space for:
- Self-directed learning: reflection and private study
- The best place to work: health and wellbeing
- Collaborative working and learning
- Digital skills and innovation: technology hub
Psychological support for embedded librarians
Published on 4th January 2021
There are three recommendations:
NHS organisations ensure that the psychological well-being of librarians and knowledge specialists working in clinical environments is considered.
NHS organisations extend existing arrangements for the multi-disciplinary team to include clinical librarians and knowledge specialists.
Access to psychological wellbeing services provided within the organisation is highlighted to embedded librarians and knowledge specialists working in clinical environments.
Page last reviewed: 21 June 2021


This page presents various ways to visualize a nosoiSim simulation output. Because this output contains all the data simulated, you can develop your own visualization procedure. The approaches presented here all rely on external packages.
Transmission chain
The transmission chain can be visualized using some of the packages dealing with networks in R, or, alternatively, as a phylogenetic-like tree. For both examples, we will use the following simulation:
library(nosoi)
 t_incub_fct <- function(x){rnorm(x,mean = 5,sd=1)}
 p_max_fct <- function(x){rbeta(x,shape1 = 5,shape2=2)}
 p_Move_fct <- function(t){return(0.1)}
 p_Exit_fct <- function(t){return(0.05)}
 proba <- function(t,p_max,t_incub){
 if(t <= t_incub){p=0}
 if(t >= t_incub){p=p_max}
 return(p)
 }
 time_contact <- function(t, current.in, host.count){
 temp.val = 30 - host.count
 if(temp.val <= 0) {
 return(0)
 }
 if(temp.val >= 0) {
 if(current.in=="A"){
 return(round((_URL_, 3, 1), 0))}
 if(current.in=="B"){return(0)}
 if(current.in=="C"){
 return(round((_URL_, 6, 1), 0))}
 }
 }
 transition.matrix = matrix(c(0,0.2,0.4,0.5,0,0.6,0.5,0.8,0),nrow = 3, ncol = 3,dimnames=list(c("A","B","C"),c("A","B","C")))
 set.seed(1050)
 test.nosoiA <- nosoiSim(type="single", popStructure="discrete",
 length=100,
 max.infected=200,
 init.individuals=1,
 init.structure="A",
 structure.matrix=transition.matrix,
 pMove=p_Move_fct,
 param.pMove=NA,
 diff.nContact=TRUE,
 hostCount.nContact=TRUE,
 nContact=time_contact,
 param.nContact=NA,
 pTrans = proba,
 param.pTrans = list(p_max=p_max_fct,
 t_incub=t_incub_fct),
 pExit=p_Exit_fct,
 param.pExit=NA
 )
As a network
To visualize the transmission chain as a network, I typically use igraph with ggnetwork. Keep in mind that the more nodes (i.e. infected hosts) you have, the more messy (or difficult) the visualization will be.
library(ggplot2)
library(viridis)
library(igraph)
library(ggnetwork)
library(ggpubr)
data.sim <- getTableHosts(test.nosoiA, "A")
# To show the graph, we need to invert column 1 and 2, and discard the first line (i.e. the first host,
# because it shows "NA" as infecting host). We then provide *Nosoi* output as elements for the vertices (nodes).
graph.simA <- graph.data.frame(data.sim[-1,c("inf.by","hosts.ID")],directed=T,vertices = data.sim)
graph.simA.network <- ggnetwork(graph.simA, layout = with_kk()) #using ggnetwork to provide the layout
#plotting the network (color is time of infection)
plot1 <- ggplot(graph.simA.network, aes(x = x, y = y, xend = xend, yend = yend)) +
 geom_edges(color = "grey70",arrow = arrow(length = unit(0.3, "lines"), type = "open")) +
 geom_nodes(aes(color=inf.time)) + scale_color_viridis(name="Time of infection",option = "plasma") +
 theme_blank()
#plotting the network (color is state the host was infected in)
plot2 <- ggplot(graph.simA.network, aes(x = x, y = y, xend = xend, yend = yend)) +
 geom_edges(color = "grey70",arrow = arrow(length = unit(0.3, "lines"), type = "open")) +
 geom_nodes(aes(color=inf.in)) + scale_color_discrete(name="State of infection") +
 theme_blank()
ggpubr::ggarrange(plot1,plot2,widths = 2, heights = 1, legend="bottom")
An animated version over time can also be rendered:
library(networkDynamic)
library(ndtv)
library(dplyr)
SimulationA <- getTableHosts(test.nosoiA, "A")
SimulationA$numID <- as.numeric(as.factor(SimulationA$hosts.ID)) #gets a unique numeric ID for each host
SimulationA[is.na(out.time),out.time:=(test.nosoiA$total.time)] #active hosts get a "end time" (i.e. the end of the simulation)
#Create "edges" table (line between nodes)
edges = SimulationA[,c("hosts.ID","inf.by","inf.time","out.time")]
colnames(edges) = c("to","from","infected","recovered")
edges$end = rep(test.nosoiA$total.time+1,nrow(edges))
#Create "vertex" table (nodes)
vertex2 = edges %>% group_by(to) %>% mutate(vertex=to)
vertex2 = vertex2[,c("vertex","infected","recovered","end")]
vertex2 = as.data.frame(vertex2)
vertex2$numericID = c(1:nrow(vertex2))
vertex2$infected = as.numeric(vertex2$infected)
vertex2$recovered = as.numeric(vertex2$recovered)
vertex2$end = as.numeric(vertex2$end)
vertex3=vertex2[,c(1,5)]
colnames(vertex3) = c("to","numeric.ID")
test=left_join(edges, vertex3, by=c("to"))
colnames(vertex3) = c("from","numeric.ID")
edges2=left_join(test, vertex3, by=c("from"))
colnames(edges2) = c("to","from","infected","recovered","end","to.num","from.num")
edges2[1,7] = 1
#Create main network using networkDynamic
test.network = networkDynamic(vertex.spells=vertex2[,c(2,4,5)],edge.spells =edges2[,c(3,5,7,6)])
#Animated plot where "active" hosts are red, inactive gray
activate.vertex.attribute(test.network,'color','gray',onset=0,terminus=47)
activate.vertex.attribute(test.network,'color','red',onset=vertex2$infected,terminus=vertex2$recovered)
#Render animation
library(tsna)
saveVideo(render.animation(test.network,vertex.col = "color",
 render.par=list(show.time=TRUE),
 edge.col = "gray60",
 displaylabels=FALSE, render.cache='none',mode="kamadakawai"),video.name="transmission-nosoi.mp4")
In this video, nodes (i.e. hosts) come from the center of the network: this does not mean anything in particular and is due to layout constrains. Nodes in red are active (i.e. infectious) hosts whereas nodes in gray are exited hosts. The time steps considered are displayed at the bottom of the frame.
As a phylogenetic-like tree
Alternatively, you can visualize the transmission as a phylogenetic-like tree object. You can


text:
Did you know that in Vancouver you can wash your hair with soap but in Montreal you need shampoo? Why? Because Vancouver water is soft and Montreal water is hard. That makes a big difference when it comes to satisfaction with hair washing. Hard water contains dissolved calcium and magnesium ions which react with soap to form a precipitate. This is the classic "bathtub ring." The grayish deposit is bad enough on a tub, but you sure don't want it on the hair. Vancouver has very soft water and soap will suds nicely and will not leave a deposit. In Montreal, on the other hand, the calcium and magnesium in the water will react with soap and form an insoluble scum. The active ingredient in shampoo is a "detergent," which like soap is a long molecule that has one end that is attracted to water and another that dissolves in fat. Dirt is embedded in the oily layer that naturally coats the hair, and the soap or detergent molecules can remove this by anchoring one end in the oil while the other end binds to water. Rinsing then removes the oily layer and the soil it harbours. The big difference between a soap and a detergent is that the detergent does not form a precipitate with calcium or magnesium. And that's why you can use soap in Vancouver to wash your hair but not in Montreal.
Why? Because Vancouver water is soft and Montreal water is hard.


19 – Using HSPA to improve the telemedical links on a moving ambulance…
What are you looking for?
< All Topics
Print
"Using HSPA to improve the telemedical links on a moving ambulance"
About: A study to investigate the benefits of using HSPA to improve the video conferencing between a moving ambulance and a hospital. Different scenarios were investigated to see how the communication worked when the ambulance was in the city center or at distance where the 3G coverage was low.
URL: _URL_
Language: English
Publication date: 2008-08-14
Study performed in Greece.
Categories


1aAO3. Ocean current effects on a low-frequency acoustic field and the feasibility of their use to monitor ocean dynamics.
Session: Monday Morning, December 2
Time: 10:50
Author: Oleg A. Godin
Location: School of Earth and Ocean Sci., Univ. of Victoria, P.O. Box 1700, Victoria, BC V8W 2Y2, Canada
Ray-travel-time nonreciprocity has been used in most tomography experiments to determine current velocity in the ocean by acoustic means at distances large compared to ocean depth. Although very successful in deep water, this approach is not applicable in the coastal ocean where ray arrivals are not separable and/or identifiable due to multiple bottom interactions. In this paper, other parameters of the acoustic field, including normal mode travel time, ray and mode horizontal refraction angles, and full field phase, are treated as possible data for the current velocity field. Some qualitative differences between acoustic fields in moving and motionless fluid are indicated and their importance for acoustic monitoring of ocean currents is emphasized. Existing mathematical models of low-frequency underwater sound propagation in a moving ocean are discussed. It is demonstrated that nonreciprocity of various acoustic field variables possess quite a different sensitivity to the flow velocity field and robustness with respect to unavoidable uncertainties in our knowledge of system and environmental parameters. Full-field inversion, based on an appropriate acoustic field variable, is concluded to be a promising technique for current velocity remote sensing in the coastal ocean environments. [Work supported by NSERC and RBRF.]
ASA 132nd meeting - Hawaii, December 1996