347 research outputs found
Combating stem and leaf rust of wheat: Historical perspective, impacts, and lessons learned
millions fed, food security, wheat rust, stem rust, leaf rust, Norman Borlaug,
Balanced Increases in Selectivity and Tolerance Produce Constant Sparseness along the Ventral Visual Stream
Although popular accounts suggest that neurons along the ventral visual processing stream become increasingly selective for particular objects, this appears at odds with the fact that inferior temporal cortical (IT) neurons are broadly tuned. To explore this apparent contradiction, we compared processing in two ventral stream stages (visual cortical areas V4 and IT) in the rhesus macaque monkey. We confirmed that IT neurons are indeed more selective for conjunctions of visual features than V4 neurons and that this increase in feature conjunction selectivity is accompanied by an increase in tolerance (“invariance”) to identity-preserving transformations (e.g., shifting, scaling) of those features. We report here that V4 and IT neurons are, on average, tightly matched in their tuning breadth for natural images (“sparseness”) and that the average V4 or IT neuron will produce a robust firing rate response (>50% of its peak observed firing rate) to ∼10% of all natural images. We also observed that sparseness was positively correlated with conjunction selectivity and negatively correlated with tolerance within both V4 and IT, consistent with selectivity-building and invariance-building computations that offset one another to produce sparseness. Our results imply that the conjunction-selectivity-building and invariance-building computations necessary to support object recognition are implemented in a balanced manner to maintain sparseness at each stage of processing.National Eye Institute (Grant 1F32EY018063)National Eye Institute (Grant R01EY014970)McKnight Endowment Fund for Neuroscienc
Bean rust
Title from PDF caption (viewed on August 3, 2017).This archived document is maintained by the State Library of Oregon as part of the Oregon Documents Depository Program. It is for informational purposes and may not be suitable for legal purposes.Mode of access: Internet from the Oregon Government Publications Collection.Text in English
Selectivity and Tolerance ("Invariance") Both Increase as Visual Information Propagates from Cortical Area V4 to IT
Our ability to recognize objects despite large changes in position, size, and context is achieved through computations that are thought to increase both the shape selectivity and the tolerance (“invariance”) of the visual representation at successive stages of the ventral pathway [visual cortical areas V1, V2, and V4 and inferior temporal cortex (IT)]. However, these ideas have proven difficult to test. Here, we consider how well population activity patterns at two stages of the ventral stream (V4 and IT) discriminate between, and generalize across, different images. We found that both V4 and IT encode natural images with similar fidelity, whereas the IT population is much more sensitive to controlled, statistical scrambling of those images. Scrambling sensitivity was proportional to receptive field (RF) size in both V4 and IT, suggesting that, on average, the number of visual feature conjunctions implemented by a V4 or IT neuron is directly related to its RF size. We also found that the IT population could better discriminate between objects across changes in position, scale, and context, thus directly demonstrating a V4-to-IT gain in tolerance. This tolerance gain could be accounted for by both a decrease in single-unit sensitivity to identity-preserving transformations (e.g., an increase in RF size) and an increase in the maintenance of rank-order object selectivity within the RF. These results demonstrate that, as visual information travels from V4 to IT, the population representation is reformatted to become more selective for feature conjunctions and more tolerant to identity preserving transformations, and they reveal the single-unit response properties that underlie that reformatting.National Eye Institute (Grant 1F32EY018063)National Eye Institute (Grant R01EY014970)McKnight Endowment Fund for Neuroscienc
An ecophysiological approach to crop losses exemplified in the system wheat, leaf rust, and glume blotch
The motive of the author to embark upon the research reported here was the need to develop new concepts to approach the problem of crop losses, and eventually the problem of their prevention by means of disease control and plant breeding. The introduction of ecophysiology as an approach, explained above, was the first result. An ecophysiological treatment of processes like growth and development of plants in health and disease necessitates adjustments of current thoughts on experimental techniques and on organization in research (Van der Wal and Cowan, 1974).In order to measure plant or aegricorpus responses concurrently with environmental factors in climate chamber and field experiments during periods Of months, a great variety of instruments had to be bought, modified, or devised. The climate chamber had to be adjusted to allow for high light intensities with a view to growing wheat under conditions approximating those of early summer in the Netherlands; the yield of the spring wheat 'Kolibri' was c. 0.5 kg.m -2, which is nearly equivalent to the average field production of the country. Regulations for the prevention and control of contamination by aphids and mildew without any use of chemicals were issued after detailed experimentation (Van der Wal, unpubl.). Several instruments have been developed, usually with the help of others; this has led to two publications (Schurer and Van der Wal, 1972; Tegelaar and Van der Wal, 1974). These efforts resulted in the experimental designs described in the appendix. Field experiments, conducted in the same period as the climate chamber experiments reported here, will be published later. It is felt that the techniques to record growth of pathogens are still inadequate.The results reported in the appendix show that the 'state' of the plant at the time of infection is a major determinant of the plant's future behaviour, which plant breeders and pathologists can express in terms of resistance and tolerance. The conceptual framework presented above may contribute to a future revision of crop husbandry and crop protection practices
Tooling to Detect Unwanted Thread Exits in Rust
Technolution is a company that specializes in building embedded and information systems, in which software plays a key role. Recently, Technolution is transitioning from the use of C in embedded systems, to Rust, a relatively new programming language developed by Mozilla. By design, Rust provides the programmer with higher security and reliability guarantees, such as memory safety, type safety and the absence of race conditions. These guarantees are ensured by means of an expressive ownership-based type system. However, it is impossible for the Rust type system to detect all errors statically. Hence, there are still many operations that contain dynamic checks to test for erroneous conditions. When such a check fails, an unrecoverable problem has been encountered and the current thread exits, this is called a panic in Rust. A panic causes the program to terminate, leading to a decrease in availability of the system. To avoid situations causing panic, Technolution wants tooling that detects possible ways a program could panic. For this purpose, we developed a static analysis tool: Rustig. When given a program, Rustig notifies the user of all the operations that either directly, or indirectly via another library, may cause a panic. The tools performs the analysis of panic calls in two stages. First, it builds a call graph from the executable of a Rust program, modelling functions as nodes and function calls as directed edges. Secondly, it performs an analysis on the call graph to determine which functions could cause panic. As part of the development of Rustig, we devised two new approaches. We have developed an approach to construct call graphs taking into account dynamic dispatch calls. This is based upon the assumption once a function address is loaded, it will also be called during execution. Furthermore, in order to efficiently analyze the call graph, a simplification of the all paths problem is proposed. In contrast with the all paths problem, the simplification is solvable in polynomial time. The approach involves finding the shortest path for every crossing edge on a graph cut
Rust for Linux: Linux device driver development in Rust
The development of Linux began in the 90s. At the time, C was the most powerful and modern programming language. However, C's origins go back to the 1970s, which is reflected particularly into the cumbersome and error-prone software development, which in turn leads to the constant discovery of new security vulnerabilities.
Rust is a modern systems programming language which aims to improve on the weaknesses of C and C++, especially in terms of memory management, while maintaining the performance advantage. In recent years, large IT companies have begun to take an interest in Rust after realizing its advantages. In addition to efficiency, these include a high level of abstraction, which speeds up software development. The security in memory management prevents security vulnerabilities by preventing buffer overflows. A good memory management also allows for easy and efficient concurrency. Rust's modern development environment with package management, a built-in linter and a documentation creation tool facilitates software development.
Officially, Rust support was added into Linux in December 2022 in version 6.1. There is no intention to rewrite Linux, but only to make it possible for new device drivers to be written in Rust. Linux developers hope that the modern programming language will make it easier to maintain new drivers, reduce security problems and encourage new developers to contribute to Linux.
The purpose of this thesis was first to evaluate and implement a device driver using Rust for an embedded system of Wapice Ltd. Unfortunately, due to the lack of a needed API on Linux, it was not yet economically feasible. Linux still lacks many interfaces which allow device drivers to be easily written in Rust \- currently, the device driver author has to create the interfaces very likely themself. For this reason, the purpose of this thesis shifted to exploring the scope of Rust support in the form of a literature review: what has already been written in Rust so far, and what benefits and problems have been identified in _Rust for Linux_.
The work presents six existing device drivers written in Rust and collects both the advantages and disadvantages reported by their authors. The device drivers are very different from each other: there are a few block device drivers such as the NVMe driver, a network device driver for a physical ethernet controller, an inter process communication bus for Android called the Binder, as well as GPU drivers for Apple and Nvidia graphics cards. The work will compare the differences between these drivers and the corresponding C drivers, if available. For example, for the NVMe driver the efficiency between the Rust and C versions of the driver are compared while for the Binder driver both the efficiency and the object file size are compared. This paper also presents two identified major challenges raised by _Rust for Linux_, and discusses their possible and most likely solutions.
The literature review shows that when implemented in Rust, the drivers are slightly slower than their C counterparts, and the size comparison shows that the device drivers implemented in Rust are slightly larger. However, the differences are not significant compared to the advantages of Rust, making it an excellent choice for programming device drivers on Linux.Linuxin kehitys aloitettiin 90-luvulla, jolloin C oli tehokkain ja modernein ohjelmointikieli. C sai kuitenkin alkunsa jo 70-luvulla, mikä näkyy ohjelmistokehityksen kankeutena sekä virhealttiutena käytettäessä C:tä. Virhealttius näkyy esimerkiksi jatkuvasti löytyvinä tietoturvaongelmina.
Rust on moderni järjestelmäohjelmointikieli, joka pyrkii parantamaan C:n ja C++:n heikkouksia etenkin muistinhallinnan suhteen, säilyttäen kuitenkin näiden kielien edun suorituskyvyssä. Monien etujensa ansiosta Rust on viime vuosina alkanut herättää yhä useamman suuren tietotekniikka-alan yrityksen mielenkiinnon. Etuihin lukeutuu tehokkuuden lisäksi korkea abstraktiotaso, joka nopeuttaa ohjelmistokehitystä. Muistinhallinnan varmuus taas ennaltaehkäisee puskurien ylivuotoja, jotka ovat usein tietoturva-aukkojen perimmäisiä syitä. Hyvä muistinhallinta myös mahdollistaa käyttäjille helpompaa ja tehokkaampaa rinnakkaisuutta, koska suurin osa rinnakkaisuusongelmista on pohjimmiltaan muistinhallintaongelmia. Moderni kehitysympäristö pakettienhallinnan sekä sisäänrakennetun koodin jäsentely- ja dokumentaatiotyökalun kanssa helpottaa omalta osaltaan ohjelmistokehitystä Rustilla.
Virallisesti Rust-tuki tuli Linuxiin joulukuussa 2022 versiossa 6.1. Linuxia ei ole tarkoitus kirjoittaa uudelleen, vaan tuen on tarkoitus ainoastaan mahdollistaa uusien laiteajurien kehittäminen Rustilla. Linuxin kehittäjät toivovat modernin ohjelmointikielen helpottavan uusien laiteajurien ylläpitoa, vähentävän niissä esiintyviä tietoturvaongelmia ja herättää uusien kehittäjien kiinostusta Linuxiin.
Työn tarkoitus oli aluksi arvioida laiteajurin kehitystä Wapice Oy:n sulautettuun järjestelmään Rustilla ja toteuttaa se. Valitettavasti Linuxin Rust-tuen puutteellisuuden vuoksi sen tekeminen ei ollut vielä taloudellisesti hyödyllistä. Linuxista puuttuu vielä monia rajapintoja, joiden avulla laiteajureita voidaan helposti kehittää Rustilla - nykyisellään laiteajurin tekijä joutuu hyvin todennäköisesti tekemään rajapinnat itse. Tästä syystä työn tarkoitus siirtyi Rust-tuen laajuuden tutkimiseen kirjallisuuskatsauksen muodossa: mitä kaikkea tähän mennessä ollaan jo tehty Rustilla Linuxiin ja mitä hyötyjä tai ongelmia Rustissa ollaan havaittu Linuxin suhteen.
Työssä esitellään kuusi olemassa olevaa Rustilla kirjoitettua laiteajuria ja kootaan niiden tekijöiden raportoimia kokemuksia niin eduista kuin haitoistakin. Laiteajurit ovat keskenään hyvin erilaisia: mukaan mahtuu muun muassa muutamia lohkolaiteajureita kuten NVMe-ajuri, verkkolaiteajuri Ethernet-ohjaimelle, Androidin prosessikommunikaatioväylänä toimiva Binder sekä lisäksi Applen ja Nvidian näytönohjainajureita. Työssä vertaillaan näiden ajurien eroja vastaaviin C:llä kirjoitettuihin ajureihin, mikäli sellaiset ovat saatavilla. Esimerkiksi NVMe-ajurissa vertaillaan ajurien välistä tehokkuutta, kun taas Binder-ajurissa vertaillaan sekä tehokkuutta että objektitiedoston kokoa. Tässä työssä esitellään myös kaksi suurta Rust-tuen esille tuomaa ongelmaa Linuxissa ja keskustellaan niiden mahdollisista ja todennäköisimmistä ratkaisuista.
Kirjallisuuskatsauksessa käy ilmi, että Rustilla toteutettuna ajurit ovat hieman vastaavia C-toteutuksiaan hitaampia. Kokovertailussa selviää, että Rustilla tehdyt laiteajurit ovat hieman suurempia. Erot eivät kuitenkaan ole merkittäviä Rustin muihin etuihin verrattuna, mikä tekee Rustista erinomaisen vaihtoehdon laiteajurien ohjelmointiin Linuxissa
Modular game engine in Rust - Comparing performance of subsystems to C++
Modular game engines are defined by the fact that they are composed of different subsystems working on many distinct tasks. Exemplary systems are, inter alia, memory management, rendering or physics simulation. The similarity between the systems, regardless of how low-level or abstract they are, are performance and memory consumption. To gain control over these fields, most programmers choose system programming languages such as C++ as development tool. In this thesis the author chose the programming language Rust to implement selected subsystems of a modular game engine. It is the goal of the thesis to investigate whether Rust can avoid common difficulties known from C++ due to its new concepts while maintaining C++ like performance. For this purpose the selected systems will also be implemented in C++. They are then surveyed in different scenarios and compared to each other. The results are evaluated to see whether it is worth considering using Rust as a language for game engine programming. Furthermore the implementation details of the different languages and systems are discussed whereby the differences between the two languages are outlined.Modulare Spieleengines zeichnen sich dadurch aus, dass sie intern aus verschiedenen Subsystemen bestehen, die unterschiedlichste Aufgaben abarbeiten. Beispielhafte Systeme sind unter anderem Speichermanagement, Rendering oder Physiksimulation. Die Gemeinsamkeit zwischen den Systemen, unabhägig davon wie hardwarenahe oder abstrakt diese sind, sind Aspekte wie Performance und Speicherverbrauch. Um möglichst viel Kontrolle über diese Bereiche zu haben entscheiden sich viele EntwicklerInnen für Systemprogrammiersprachen wie C++ als Entwicklungswerkzeug. Im Zuge dieser Arbeit wird der Autor die seit 2015 existierende Programmiersprache Rust verwenden um ausgewählte Subsysteme einer modularen Spieleengine zu implementieren. Ziel der Arbeit ist es zu untersuchen, ob Rust durch seine neuen Konzepte gängige Schwierigkeiten bei der C++ Entwicklung vermeiden und gleichzeitig eine gleichwertige Performance liefern kann. Dafür werden ausgewählte Systeme in C++ und Rust implementiert. Diese werden anschließend in verschiedenen Szenarien vermessen und verglichen. Aus den Ergebnissen wird evaluiert ob Rust als Programmiersprache für Spieleengines in Frage kommt. Zusätzlich werden die Implementierungsdetails der verschiedenen Sprachen und Systeme behandelt, wodruch aufgezeigt wird, welche Unterschiede zwischen den beiden Sprachen bestehen.Masterarbeit Wien, FH Technikum Wien 201
MOZART MATURES: 1780s Piano Works
On MOZART MATURES: 1780s Piano Works, pianist Roberta Rust perceptively explores Mozart’s personal artistic journey and progression from an extraordinary talent to an immortal giant of musical composition.
Largely eschewing the popular tunes, Rust instead carefully handpicked musical selections designed to showcase the composer’s structural, technical, and harmonic development. The Sonata in F Major, K. 332, with its never-ending twists and turns, makes for a great starting point. But, considering that Rust is a talented extemporizer on the piano herself, it comes as no surprise that many of the pieces on MOZART MATURES are those originally conceived as improvisations. There are the two Fantasies in D minor and C minor, but also the quirky, prescient Gigue which Mozart hastily wrote into a German friend’s friendship album. And lest things get out of hand, the calmer Adagio in B minor as well as the Rondo in A minor round off the selection with timeless depth and serenity – the particular kind achieved in history by this one singular composer.
More Author/Title Info: Wolfgang Amadeus Mozart
Physical Description: 1 online resource (1 audio file)
Performers: Roberta Rust, piano.
Credits: Session producer, Brad Michel ; session engineer, Tom Stephenson ; piano technicians, Christine Lovgren, Len Richardson ; editing, mixing & mastering, Lucas Paquette.
Event Details: Recorded July 13-15, 2021 at the Shalin Liu Performance Center, Boston MA.
Contents: Fantasy in D minor, K. 397 (6:10) -- Sonata no. 12 in F major, K. 332 -- Adagio in B minor, K. 540 (9:50) -- Eine kleine gigue in G major, K. 574 (1:38) -- Fantasy in C minor, K. 475 (13:00) -- Rondo in A minor, K. 511 (10:16)
Osmia (Melanosmia) virga Sandhouse 1939
Osmia (Melanosmia) virga Sandhouse, 1939 Counties: Beltrami, Clearwater, Crow Wing, Hennepin, Koochiching, Sherburne. Subgenus Osmia Panzer s. str. Taxonomy: Rust (1974).Published as part of Portman, Zachary M., Gardner, Joel, Lane, Ian G., Gerjets, Nicole, Petersen, Jessica D., Ascher, John S., Arduser, Mike, Evans, Elaine C., Boyd, Crystal, Thomson, Robin & Cariveau, Daniel P., 2023, A checklist of the bees (Hymenoptera: Apoidea) of Minnesota, pp. 1-95 in Zootaxa 5304 (1) on page 73, DOI: 10.11646/zootaxa.5304.1.1, http://zenodo.org/record/804856
- …
