text:
(-) Remove LS4 (1) filter LS4 (1)
(-) Remove LS5 (7) filter LS5 (7)
Project acronym activeFly
Project Circuit mechanisms of self-movement estimation during walking
Researcher (PI) M Eugenia CHIAPPE
Host Institution (HI) FUNDACAO D. ANNA SOMMER CHAMPALIMAUD E DR. CARLOS MONTEZ CHAMPALIMAUD
Summary The brain evolves, develops, and operates in the context of animal movements. As a consequence, fundamental brain functions such as spatial perception and motor control critically depend on the precise knowledge of the ongoing body motion. An accurate internal estimate of self-movement is thought to emerge from sensorimotor integration; nonetheless, which circuits perform this internal estimation, and exactly how motor-sensory coordination is implemented within these circuits are basic questions that remain to be poorly understood. There is growing evidence suggesting that, during locomotion, motor-related and visual signals interact at early stages of visual processing. In mammals, however, it is not clear what the function of this interaction is. Recently, we have shown that a population of Drosophila optic-flow processing neurons —neurons that are sensitive to self-generated visual flow, receives convergent visual and walking-related signals to form a faithful representation of the fly's walking movements. Leveraging from these results, and combining quantitative analysis of behavior with physiology, optogenetics, and modelling, we propose to investigate circuit mechanisms of self-movement estimation during walking. We will:1) use cell specific manipulations to identify what cells are necessary to generate the motor-related activity in the population of visual neurons, 2) record from the identified neurons and correlate their activity with specific locomotor parameters, and 3) perturb the activity of different cell-types within the identified circuits to test their role in the dynamics of the visual neurons, and on the fly's walking behavior. These experiments will establish unprecedented causal relationships among neural activity, the formation of an internal representation, and locomotor control. The identified sensorimotor principles will establish a framework that can be tested in other scenarios or animal systems with implications both in health and disease.
The brain evolves, develops, and operates in the context of animal movements. As a consequence, fundamental brain functions such as spatial perception and motor control critically depend on the precise knowledge of the ongoing body motion. An accurate internal estimate of self-movement is thought to emerge from sensorimotor integration; nonetheless, which circuits perform this internal estimation, and exactly how motor-sensory coordination is implemented within these circuits are basic questions that remain to be poorly understood. There is growing evidence suggesting that, during locomotion, motor-related and visual signals interact at early stages of visual processing. In mammals, however, it is not clear what the function of this interaction is. Recently, we have shown that a population of Drosophila optic-flow processing neurons —neurons that are sensitive to self-generated visual flow, receives convergent visual and walking-related signals to form a faithful representation of the fly's walking movements. Leveraging from these results, and combining quantitative analysis of behavior with physiology, optogenetics, and modelling, we propose to investigate circuit mechanisms of self-movement estimation during walking. We will:1) use cell specific manipulations to identify what cells are necessary to generate the motor-related activity in the population of visual neurons, 2) record from the identified neurons and correlate their activity with specific locomotor parameters, and 3) perturb the activity of different cell-types within the identified circuits to test their role in the dynamics of the visual neurons, and on the fly's walking behavior. These experiments will establish unprecedented causal relationships among neural activity, the formation of an internal representation, and locomotor control. The identified sensorimotor principles will establish a framework that can be tested in other scenarios or animal systems with implications both in health and disease.
Project acronym BIOGEOS
Project Bio-mediated Geo-material Strengthening for engineering applications
Researcher (PI) Lyesse LALOUI
Summary Given the increasing scarcity of suitable land for development, soil strengthening technologies have emerged in the past decade and go hand-in-hand with the implementation of the majority of foundation solutions. The goal is to alter the soil structure and its mechanical properties for ultimately securing the integrity of structures. The BIOGEOS project puts the focus on bio-mediated soil improvement, which falls within the broader framework of multi-physical processes in geo-mechanics. The goal of the project is to engineer a novel, natural material under controlled processes, for ultimately providing solutions to real problems in the geo-engineering and geo-energy fields by advancing knowledge around complex multi-physical phenomena in porous media. The bio-cemented geo-material, which is produced by carefully integrating the metabolic activity of native soil bacteria, is produced through the bio-mineralization of calcite bonds, which act as natural cementation for endowing the subsurface with real cohesion and increased resistance. A principal characteristic of the project is its multi-scale approach through advanced experimentation to identify the main physical mechanisms involved in the formation of the bio-mineralized bonds and their behaviour under mechanical loading. The development of such a bio-mediated technology will lead to innovative applications in a series of engineering problems such as the restoration of weak foundations, seismic retrofitting, erosion protection, and the enhancement of heat transfer in thermo-active geo-structures. The project foresees to adopt multiple loading conditions for its laboratory characterization and ultimately pass to the large experimental scale. BIOGEOS further aims to provide new knowledge around the way we perceive materials in relation with their micro-structure by implementing state-of-the-art inspection of the material's structure in 3D space and subsequent prediction of their behaviour through numerical tools.
Given the increasing scarcity of suitable land for development, soil strengthening technologies have emerged in the past decade and go hand-in-hand with the implementation of the majority of foundation solutions. The goal is to alter the soil structure and its mechanical properties for ultimately securing the integrity of structures. The BIOGEOS project puts the focus on bio-mediated soil improvement, which falls within the broader framework of multi-physical processes in geo-mechanics. The goal of the project is to engineer a novel, natural material under controlled processes, for ultimately providing solutions to real problems in the geo-engineering and geo-energy fields by advancing knowledge around complex multi-physical phenomena in porous media. The bio-cemented geo-material, which is produced by carefully integrating the metabolic activity of native soil bacteria, is produced through the bio-mineralization of calcite bonds, which act as natural cementation for endowing the subsurface with real cohesion and increased resistance. A principal characteristic of the project is its multi-scale approach through advanced experimentation to identify the main physical mechanisms involved in the formation of the bio-mineralized bonds and their behaviour under mechanical loading. The development of such a bio-mediated technology will lead to innovative applications in a series of engineering problems such as the restoration of weak foundations, seismic retrofitting, erosion protection, and the enhancement of heat transfer in thermo-active geo-structures. The project foresees to adopt multiple loading conditions for its laboratory characterization and ultimately pass to the large experimental scale. BIOGEOS further aims to provide new knowledge around the way we perceive materials in relation with their micro-structure by implementing state-of-the-art inspection of the material's structure in 3D space and subsequent prediction of their behaviour through numerical tools.
Project acronym CATACOAT
Project Nanostructured catalyst overcoats for renewable chemical production from biomass
Researcher (PI) Jeremy Scott LUTERBACHER
Summary In the CATACOAT project, we will develop layer-by-layer solution-processed catalyst overcoating methods, which will result in catalysts that have both targeted and broad impacts. We will produce highly active, stable and selective catalysts for the upgrading of lignin – the largest natural source of aromatic chemicals – into commodity chemicals, which will have an important targeted impact. The broader impact of our work will lie in the production of catalytic materials with unprecedented control over the active site architecture. There is an urgent need to provide these cheap, stable, selective, and highly active catalysts for renewable molecule production. Thanks to its availability and relatively low cost, lignocellulosic biomass is an attractive source of renewable carbon. However, unlike petroleum, biomass-derived molecules are highly oxygenated, and often produced in dilute-aqueous streams. Heterogeneous catalysts – the workhorses of the petrochemical industry – are sensitive to water and contain many metals that easily sinter and leach in liquid-phase conditions. The production of renewable chemicals from biomass, especially valuable aromatics, often requires expensive platinum group metals and suffers from low selectivity. Catalyst overcoating presents a potential solution to this problem. Recent breakthroughs using catalyst overcoating with atomic layer deposition (ALD) showed that base metal catalysts can be stabilized against sintering and leaching in liquid phase conditions. However, ALD creates dramatic drops in activity due to excessive coverage, and forms an overcoat that cannot be tuned. Our materials will feature the controlled placement of metal sites (including single atoms), several oxide sites, and even molecular imprints with sub-nanometer precision within highly accessible nanocavities. We anticipate that such materials will create unprecedented opportunities for reducing cost and increasing sustainability in the chemical industry and beyond.
In the CATACOAT project, we will develop layer-by-layer solution-processed catalyst overcoating methods, which will result in catalysts that have both targeted and broad impacts. We will produce highly active, stable and selective catalysts for the upgrading of lignin – the largest natural source of aromatic chemicals – into commodity chemicals, which will have an important targeted impact. The broader impact of our work will lie in the production of catalytic materials with unprecedented control over the active site architecture. There is an urgent need to provide these cheap, stable, selective, and highly active catalysts for renewable molecule production. Thanks to its availability and relatively low cost, lignocellulosic biomass is an attractive source of renewable carbon. However, unlike petroleum, biomass-derived molecules are highly oxygenated, and often produced in dilute-aqueous streams. Heterogeneous catalysts – the workhorses of the petrochemical industry – are sensitive to water and contain many metals that easily sinter and leach in liquid-phase conditions. The production of renewable chemicals from biomass, especially valuable aromatics, often requires expensive platinum group metals and suffers from low selectivity. Catalyst overcoating presents a potential solution to this problem. Recent breakthroughs using catalyst overcoating with atomic layer deposition (ALD) showed that base metal catalysts can be stabilized against sintering and leaching in liquid phase conditions. However, ALD creates dramatic drops in activity due to excessive coverage, and forms an overcoat that cannot be tuned. Our materials will feature the controlled placement of metal sites (including single atoms), several oxide sites, and even molecular imprints with sub-nanometer precision within highly accessible nanocavities. We anticipate that such materials will create unprecedented opportunities for reducing cost and increasing sustainability in the chemical industry and beyond.
Project acronym CERDEV
Project Transcriptional controls over cerebellar neuron differentiation and circuit assembly
Researcher (PI) Ludovic TELLEY
Host Institution (HI) UNIVERSITE DE LAUSANNE
Summary The cerebellum is a critical regulator of motor function, which acts to integrate ongoing body states, sensory inputs and desired outcomes to adjust motor output. This motor control is achieved by a relatively small number of neuron types receiving two main sources of inputs and forming a single output pathway, the axons of Purkinje cells. Although the cerebellum is one of the first structures of the brain to differentiate, it undergoes a prolonged differentiation period such that mature cellular and circuit configuration is achieved only late after birth. Despite the functional importance of this structure, the molecular mechanisms that control type-specific cerebellar neurons generation, differentiation, and circuit assembly are poorly understood and are the topic of the present study. In my research program, I propose to investigate the transcriptional programs that control the generation of distinct subtypes of cerebellar neurons from progenitors, including Purkinje cells, granule cells and molecular layer interneurons (Work Package 1); the diversity of Purkinje cells across cerebellar regions (Work Package 2) and the postnatal differentiation and circuit integration of granule cells and molecular layer interneurons (Work Package 3). The general bases of the approach I propose consist in: i) specifically label cerebellar neuron progenitors and their progeny at sequential developmental time points pre- and post-natally using birthdate-based tagging, ii) FAC-sort these distinct cell types, iii) isolate these cells and identify their transcriptional signatures with single-cell resolution, iv) functionally interrogate top candidate genes and associated transcriptional programs using in vivo gain- and loss-of-function approaches. Together, these experiments aim at deciphering the cell-intrinsic processes controlling cerebellar circuit formation, towards a better understanding of the molecular mechanisms underlying cerebellar function and dysfunction.
The cerebellum is a critical regulator of motor function, which acts to integrate ongoing body states, sensory inputs and desired outcomes to adjust motor output. This motor control is achieved by a relatively small number of neuron types receiving two main sources of inputs and forming a single output pathway, the axons of Purkinje cells. Although the cerebellum is one of the first structures of the brain to differentiate, it undergoes a prolonged differentiation period such that mature cellular and circuit configuration is achieved only late after birth. Despite the functional importance of this structure, the molecular mechanisms that control type-specific cerebellar neurons generation, differentiation, and circuit assembly are poorly understood and are the topic of the present study. In my research program, I propose to investigate the transcriptional programs that control the generation of distinct subtypes of cerebellar neurons from progenitors, including Purkinje cells, granule cells and molecular layer interneurons (Work Package 1); the diversity of Purkinje cells across cerebellar regions (Work Package 2) and the postnatal differentiation and circuit integration of granule cells and molecular layer interneurons (Work Package 3). The general bases of the approach I propose consist in: i) specifically label cerebellar neuron progenitors and their progeny at sequential developmental time points pre- and post-natally using birthdate-based tagging, ii) FAC-sort these distinct cell types, iii) isolate these cells and identify their transcriptional signatures with single-cell resolution, iv) functionally interrogate top candidate genes and associated transcriptional programs using in vivo gain- and loss-of-function approaches. Together, these experiments aim at deciphering the cell-intrinsic processes controlling cerebellar circuit formation, towards a better understanding of the molecular mechanisms underlying cerebellar function and dysfunction.
Project acronym COGRA
Project Decoding the Mechanics of Metals by Coarse-Grained Atomistics
Researcher (PI) Dennis Michael KOCHMANN
Summary """First principles"" and ""bottom-up"" have become buzz words across scientific and engineering disciplines when it comes to the discovery, prediction and understanding of material properties and their link to processing and microstructure. Reality, however, teaches us that in the foreseeable future computational resources will be insufficient to apply predictive techniques such as quantum mechanics or atomistics to the technologically most relevant length and time scales - far above nanometers and nanoseconds. This proposal aims for nothing less but the seemingly impossible: the application of atomistic techniques to problems occurring over microns to millimeters and seconds to minutes. Instead of relying on computational power, this will be achieved by a combination of scale-bridging methodologies (involving the PI's nonlocal and meshless quasicontinuum techniques, concepts from particle methods, continuum and statistical mechanics) and computational science strategies in order to produce new theory and an open-source, computational toolset for long-term, large-scale simulations relying solely on atomistic input. Spatial upscaling, temporal upscaling as well as heat and mass transfer will be addressed. Enabled by the new scale-bridging capabilities, two representative, open challenges will be investigated: recrystallization in magnesium during thermo-mechanical processing and corrosion in steel by hydrogen embrittlement. Both are of enormous technological and economic importance but current techniques are insufficient to bridge the gap between the macroscopic mechanical performance, microstructural mechanisms and predictive atomic-scale simulations. The outcomes of this five-year research program will provide never-before techniques and numerical tools to catalyze a user community across science and technology. Although the focus is on metals, several of the proposed techniques are applicable to a significantly wider range of materials and applications."
"""First principles"" and ""bottom-up"" have become buzz words across scientific and engineering disciplines when it comes to the discovery, prediction and understanding of material properties and their link to processing and microstructure. Reality, however, teaches us that in the foreseeable future computational resources will be insufficient to apply predictive techniques such as quantum mechanics or atomistics to the technologically most relevant length and time scales - far above nanometers and nanoseconds. This proposal aims for nothing less but the seemingly impossible: the application of atomistic techniques to problems occurring over microns to millimeters and seconds to minutes. Instead of relying on computational power, this will be achieved by a combination of scale-bridging methodologies (involving the PI's nonlocal and meshless quasicontinuum techniques, concepts from particle methods, continuum and statistical mechanics) and computational science strategies in order to produce new theory and an open-source, computational toolset for long-term, large-scale simulations relying solely on atomistic input. Spatial upscaling, temporal upscaling as well as heat and mass transfer will be addressed. Enabled by the new scale-bridging capabilities, two representative, open challenges will be investigated: recrystallization in magnesium during thermo-mechanical processing and corrosion in steel by hydrogen embrittlement. Both are of enormous technological and economic importance but current techniques are insufficient to bridge the gap between the macroscopic mechanical performance, microstructural mechanisms and predictive atomic-scale simulations. The outcomes of this five-year research program will provide never-before techniques and numerical tools to catalyze a user community across science and technology. Although the focus is on metals, several of the proposed techniques are applicable to a significantly wider range of materials and applications."
Project acronym DIGISMART
Project Multifunctional Digital Materials Platform for Smart Integrated Applications
Researcher (PI) Elvira Fortunato
Host Institution (HI) UNIVERSIDADE NOVA DE LISBOA
Summary DIGISMART creates new avenues into two main areas: 1) processing nanomaterials/nanostructures applied to electronic devices by exploring a new digital multifunctional direct laser writing (LDW) method for in situ synthesis of small-sized nanomaterials/nanofilms micro-patterned growth by selective photothermal decomposition of semiconductors, dielectrics and conductors precursors and 2) provide simultaneously multifunction to single based metal oxide devices (like thin film transistors, the workhorses for large area electronics having electron, charge and color modulation), as the basic unit to promote systems' integration by exploring the use of new advanced materials with unique multi-functionalities using low cost process solutions. This new fabrication process will be very useful for low-cost, eco-friendly, and efficient fabrication of nanostructures and thin films-integrated microelectronic devices due to its low-power, simple setup as well as excellent reliability. This new and disruptive concept will be achieved with low cost and non-toxic materials (new metal oxides, MO semiconductors, conductors, dielectrics and electrochromics free of In and Ga) associated to a low cost process multifunctional platform technology (ALL-IN-ONE TOOL) well supported by high-resolution nano-characterization techniques. With DIGISMART new and unexplored materials will be produced as well as to boost the original properties of conventional materials in order to contribute to the needs for low cost and flexible electronics. If we succeed to embed some level of intelligence in every object, this would change electronics and it would change society, ranging from embedded window displays to a wide range of biomedical electronics, just to mention a few and this is what the Internet of Things is looking for.
DIGISMART creates new avenues into two main areas: 1) processing nanomaterials/nanostructures applied to electronic devices by exploring a new digital multifunctional direct laser writing (LDW) method for in situ synthesis of small-sized nanomaterials/nanofilms micro-patterned growth by selective photothermal decomposition of semiconductors, dielectrics and conductors precursors and 2) provide simultaneously multifunction to single based metal oxide devices (like thin film transistors, the workhorses for large area electronics having electron, charge and color modulation), as the basic unit to promote systems' integration by exploring the use of new advanced materials with unique multi-functionalities using low cost process solutions. This new fabrication process will be very useful for low-cost, eco-friendly, and efficient fabrication of nanostructures and thin films-integrated microelectronic devices due to its low-power, simple setup as well as excellent reliability. This new and disruptive concept will be achieved with low cost and non-toxic materials (new metal oxides, MO semiconductors, conductors, dielectrics and electrochromics free of In and Ga) associated to a low cost process multifunctional platform technology (ALL-IN-ONE TOOL) well supported by high-resolution nano-characterization techniques. With DIGISMART new and unexplored materials will be produced as well as to boost the original properties of conventional materials in order to contribute to the needs for low cost and flexible electronics. If we succeed to embed some level of intelligence in every object, this would change electronics and it would change society, ranging from embedded window displays to a wide range of biomedical electronics, just to mention a few and this is what the Internet of Things is looking for.
Project acronym DYCOCIRC
Project Basal ganglia circuit mechanisms underlying dynamic cognitive behavior
Researcher (PI) Joseph PATON
Summary You're faced with a difficult choice. What do you do? Most people will, either explicitly or implicitly, weigh the possible consequences their decision. This involves an internal journey through possible events. Its these kinds of dynamic processes and their mapping onto behavior that characterize higher brain function. And yet, their very internal nature is both what makes them of critical interest and so difficult to study. Here, we propose to study a simple, well-controlled decision-making behavior wherein mice have to generate a dynamic, internal representation of elapsed time in order to make choices that result in reward. We focus on frontal cortico-basal ganglia circuits and their dopaminergic inputs that together are broadly implicated in cognition and involved in the production of this particular behavior. We have demonstrated previously that striatal population dynamics and dopamine neuron activity both correlate with and exert control over animals' judgments. Having identified key signals at multiple stages of the BG circuit related to this decision in rats and mice, my laboratory is now uniquely poised to dissect the circuit mechanisms by which such signals are generated and transformed into actions. Specifically, we will 1) Measure activity of specific cell types at multiple stages of the BG as mice judge duration. 2) Image and manipulate the activity of DA neurons while recording from neural populations in the BG to determine the relationship between neuromodulatory input, neural dynamics, and behavior. 3) Relate the activity of cortico-striatal inputs to striatal responses during behavior to understand the computational and circuit bases of striatal activity. These experiments promise to unlock deep mysteries regarding how animals free themselves from the immediacy of the current moment, learning, planning, and choosing their path toward a safer, more fruitful, and satisfying existence.
You're faced with a difficult choice. What do you do? Most people will, either explicitly or implicitly, weigh the possible consequences their decision. This involves an internal journey through possible events. Its these kinds of dynamic processes and their mapping onto behavior that characterize higher brain function. And yet, their very internal nature is both what makes them of critical interest and so difficult to study. Here, we propose to study a simple, well-controlled decision-making behavior wherein mice have to generate a dynamic, internal representation of elapsed time in order to make choices that result in reward. We focus on frontal cortico-basal ganglia circuits and their dopaminergic inputs that together are broadly implicated in cognition and involved in the production of this particular behavior. We have demonstrated previously that striatal population dynamics and dopamine neuron activity both correlate with and exert control over animals' judgments. Having identified key signals at multiple stages of the BG circuit related to this decision in rats and mice, my laboratory is now uniquely poised to dissect the circuit mechanisms by which such signals are generated and transformed into actions. Specifically, we will 1) Measure activity of specific cell types at multiple stages of the BG as mice judge duration. 2) Image and manipulate the activity of DA neurons while recording from neural populations in the BG to determine the relationship between neuromodulatory input, neural dynamics, and behavior. 3) Relate the activity of cortico-striatal inputs to striatal responses during behavior to understand the computational and circuit bases of striatal activity. These experiments promise to unlock deep mysteries regarding how animals free themselves from the immediacy of the current moment, learning, planning, and choosing their path toward a safer, more fruitful, and satisfying existence.
Project acronym ENTRAINER
Project Enhancing brain function and cognition via artificial entrainment of neural oscillations
Researcher (PI) Rafael POLANIA
Summary Neural oscillations are ubiquitous in the human brain and have been implicated in diverse cognitive functions to support both neural communication and plasticity. Their functional relevance is further supported by a large number of studies linking various cognitive deficits (e.g., attention deficit hyperactivity disorder, ADHD) with abnormal neural oscillations. However, this field of research faces two important problems: First, there is only correlative, but no causal evidence linking cognitive deficits to abnormal neural oscillations in humans. Second, there is virtually no theory-driven mechanistic approach that generates insights into how oscillations within and across neural networks are linked to human behavior. In this project, I propose to take decisive steps to provide a long-needed neurophysiological characterization—via (1) computational modelling, (2) electrophysiological measures, and (3) novel non-invasive manipulations of cortical rhythms—on how neural oscillations contribute to two types of cognitive processes that are fundamental for many aspects of human behavior: attention and short-term memory. I will go a step further by demonstrating that it is possible to augment performance in these cognitive functions with the design of non-invasive brain stimulation protocols individually tailored to the theory-driven neurocomputational characterizations and electrophysiological signatures of each individual. This will result in the applied goal of deriving new neuro-computational assays that can detect deviant network interactions causally related to cognitive functions, which is key for then renormalizing those functions in neuropsychological conditions such as ADHD. Thus, if successful, my proposed work will ultimately result in novel, low-cost, and painless non-invasive neural interventions for a wide range of neuropsychological disorders tied to abnormal neural oscillations.
Neural oscillations are ubiquitous in the human brain and have been implicated in diverse cognitive functions to support both neural communication and plasticity. Their functional relevance is further supported by a large number of studies linking various cognitive deficits (e.g., attention deficit hyperactivity disorder, ADHD) with abnormal neural oscillations. However, this field of research faces two important problems: First, there is only correlative, but no causal evidence linking cognitive deficits to abnormal neural oscillations in humans. Second, there is virtually no theory-driven mechanistic approach that generates insights into how oscillations within and across neural networks are linked to human behavior. In this project, I propose to take decisive steps to provide a long-needed neurophysiological characterization—via (1) computational modelling, (2) electrophysiological measures, and (3) novel non-invasive manipulations of cortical rhythms—on how neural oscillations contribute to two types of cognitive processes that are fundamental for many aspects of human behavior: attention and short-term memory. I will go a step further by demonstrating that it is possible to augment performance in these cognitive functions with the design of non-invasive brain stimulation protocols individually tailored to the theory-driven neurocomputational characterizations and electrophysiological signatures of each individual. This will result in the applied goal of deriving new neuro-computational assays that can detect deviant network interactions causally related to cognitive functions, which is key for then renormalizing those functions in neuropsychological conditions such as ADHD. Thus, if successful, my proposed work will ultimately result in novel, low-cost, and painless non-invasive neural interventions for a wide range of neuropsychological disorders tied to abnormal neural oscillations.
Project acronym MagTendon
Project Magnetically Assisted Tissue Engineering Technologies for Tendon Regeneration
Researcher (PI) Maria Manuela ESTIMA GOMES
Host Institution (HI) UNIVERSIDADE DO MINHO
Summary The poor healing ability of tendons, which play a critical role in the musculoskeletal system, as well as the limitations of currently used therapies have motivated tissue engineering (TE) strategies to develop living tendon substitutes. However, the limited knowledge on tendon development and healing processes has hindered the design of TE procedures that more closely recapitulate tendon morphogenesis. Extending beyond the state-of-the-art, MagTendon will explore conventional and innovative tools such as multimaterial 3 dimensional (3D) bioprinting to design magnetic responsive systems mimicking specific aspects of tendon tissue architecture, composition and biomechanical properties, which, combined with adequate stem cells, will render appropriate behavioural instructions to stimulate the regeneration of tendon tissue. Stem cell bioengineering approaches based on superparamagnetic nanoparticles (SPMNs), namely cell sorting, mechanoreceptors targeting and cell programming, will be used to unveil the cellular signalling pathways that trigger the tenogenic differentiation of the widely and easily obtained human adipose derived stem cells. Simultaneously, the 3D cell-laden magnetic system shall enable sophisticated 3D tissue models to unravel mechanisms behind tendon homeostasis and repair that will support the base knowledge to establish rational design criteria for the biofabrication of living tendon substitutes with the adequate signaling and structural cues to recapitulate tendon tissue developmental patterns. Therefore, the ground-breaking nature of the research proposed relies on the development of disruptive technological concepts for obtaining unique cell-laden 3D magnetically responsive systems that recapitulate key features of the native tissue and that can be further remotely modulated both in vitro and in vivo by the application of external magnetic stimuli, offering the prospect of tendon regeneration as opposed to simple tissue repair.
The poor healing ability of tendons, which play a critical role in the musculoskeletal system, as well as the limitations of currently used therapies have motivated tissue engineering (TE) strategies to develop living tendon substitutes. However, the limited knowledge on tendon development and healing processes has hindered the design of TE procedures that more closely recapitulate tendon morphogenesis. Extending beyond the state-of-the-art, MagTendon will explore conventional and innovative tools such as multimaterial 3 dimensional (3D) bioprinting to design magnetic responsive systems mimicking specific aspects of tendon tissue architecture, composition and biomechanical properties, which, combined with adequate stem cells, will render appropriate behavioural instructions to stimulate the regeneration of tendon tissue. Stem cell bioengineering approaches based on superparamagnetic nanoparticles (SPMNs), namely cell sorting, mechanoreceptors targeting and cell programming, will be used to unveil the cellular signalling pathways that trigger the tenogenic differentiation of the widely and easily obtained human adipose derived stem cells. Simultaneously, the 3D cell-laden magnetic system shall enable sophisticated 3D tissue models to unravel mechanisms behind tendon homeostasis and repair that will support the base knowledge to establish rational design criteria for the biofabrication of living tendon substitutes with the adequate signaling and structural cues to recapitulate tendon tissue developmental patterns. Therefore, the ground-breaking nature of the research proposed relies on the development of disruptive technological concepts for obtaining unique cell-laden 3D magnetically responsive systems that recapitulate key features of the native tissue and that can be further remotely modulated both in vitro and in vivo by the application of external magnetic stimuli, offering the prospect of tendon regeneration as opposed to simple tissue repair.
Project acronym PMSB
Project Principles of Musical Structure Building: Theory, Computation, and Cognition
Researcher (PI) Martin ROHRMEIER
Summary Music is a central human trait across all cultures and historical periods, involving a great rich variety of parameters, cognitive processes, and forms of structure building. The proposed project aims at advancing the understanding of human cognition and, specifically, the capacity to represent and process complex auditory sequences and syntactic structures by exploring the rich potential of music perception. Building on the PI's previous work, this interdisciplinary research programme will be divided into three core strands: (A) The theoretical strand will be devoted to the investigation of formal principles that govern musical syntax and structure building in Western and non-Western music. Many current approaches share the expressive power of (tree-based) context-free grammars and are mostly confined to harmonic syntax only. Therefore, they face difficulty in expressing certain crucial syntactic phenomena in music. To address this lacuna, the theoretical strand will develop a novel unified theory of musical syntax that exceeds context-free complexity and reconciles harmonic structure with the constraints of voice leading within a single coherent framework. (B) Addressing the lack of machine-readable corpora in music research, a large corpus of digitized syntactic analyses will be compiled and published in the context of the project's computational strand. Further, the unified syntax theory will be implemented based on a generalized parsing approach and graph grammars, and trained and evaluated using the analytical corpus. (C) The formal framework developed in (A) entails specific predictions about mental representations of musical structure that will be empirically tested in the experimental strand of the project. Particular focus will be on aspects of nonlocal dependency relations, learnability, revision, and tension. The outcomes of the project will make a significant contribution to both the field of music cognition and to the cognitive sciences in general.
Music is a central human trait across all cultures and historical periods, involving a great rich variety of parameters, cognitive processes, and forms of structure building. The proposed project aims at advancing the understanding of human cognition and, specifically, the capacity to represent and process complex auditory sequences and syntactic structures by exploring the rich potential of music perception. Building on the PI's previous work, this interdisciplinary research programme will be divided into three core strands: (A) The theoretical strand will be devoted to the investigation of formal principles that govern musical syntax and structure building in Western and non-Western music. Many current approaches share the expressive power of (tree-based) context-free grammars and are mostly confined to harmonic syntax only. Therefore, they face difficulty in expressing certain crucial syntactic phenomena in music. To address this lacuna, the theoretical strand will develop a novel unified theory of musical syntax that exceeds context-free complexity and reconciles harmonic structure with the constraints of voice leading within a single coherent framework. (B) Addressing the lack of machine-readable corpora in music research, a large corpus of digitized syntactic analyses will be compiled and published in the context of the project's computational strand. Further, the unified syntax theory will be implemented based on a generalized parsing approach and graph grammars, and trained and evaluated using the analytical corpus. (C) The formal framework developed in (A) entails specific predictions about mental representations of musical structure that will be empirically tested in the experimental strand of the project. Particular focus will be on aspects of nonlocal dependency relations, learnability, revision, and tension. The outcomes of the project will make a significant contribution to both the field of music cognition and to the cognitive sciences in general.


text:
Peter Greenaway
Filmmaker, Vereinigtes Königreich
Standard-Icon
Kultur |
Kunst |
Peter Greenaway is a well-known British film director, a curator and a philosopher of cinema. His multi-media approach surpasses traditional media forms and aims at a visual language in its own right.
Greenaway is since 2002 working on his most ambitious film project, The Tulse Luper Suitcases, a multimedia extravaganza featuring innovative film techniques.
Peter Greenaway is an Englishman, he was actually born in Newport in Wales (his mother is Welsh) on April 5th, 1942. The family left Wales when Greenaway was three years-old and moved to Essex, England. At an early age he decided he wanted to be a painter. He developed an interest in European cinema, focusing on the films of Antonioni, Bergman, Godard, Pasolini and Resnais. In 1962 he started studying at the Walthamstow College of Art, where amongst his fellow students was musician Ian Dury (who Greenaway would later cast in The Cook, The Thief, His Wife & Her Lover). Greenaway would spend the next three years there, and at the time of arriving there he made his first film, Death of Sentiment. It was about church yard furniture, crosses, flying angels, typography on grave stones, and was filmed in four large London cemeteries. In 1965 he joined the Central Office of Information (COI), where he remained for the next eleven years as a film editor and then a director.
Greenaway is a filmmaker trained as a painter. He has long been sceptical about the restrictive boundaries of cinema, and you could not say that his films were obsessive about the traditional characteristics of cinema. His films are very distinctive and stray well off the beaten path. Some commentators have said that his films are anti-cinematic and that he is not a filmmaker at all. He might not disagree with that. He is disquieted by the inability of the cinema that we now have, to give us all the rich potential excitements of the early 21st century world. No touch, no smell, no temperature, short duration. Passive, sedentary audiences, no real audience dialogue, overloaded technical specifications in set piece High Street architecture, limited to a single frame at a time, visible from only one direction. Excessive desire for reality, temporary sets, actors trained to pretend, flat illusions, little comprehension of a screen as a screen. Omnipotent financial vested interests, and the tyrannies of the frame, the actor and the text. And most disturbing of all, subject to the tyranny of the camera.
The list of disenchantments is long. He's far from being alone in holding these views. His present particular strategy to investigate and change these short comings, as he sees them, is to invest much time in extra cinema activities, if only in the hope of bringing those activities back in to cinema to find ways to reinvent it. For reinvention in the cinema is surely long overdue and very, very necessary. A medium without constant reinvention is doomed to perish. Many say now that there are no great inventors working in cinema any more. They have gone elsewhere. Perhaps they are right.
Werke / Projekte
In 1966 he made a film called Train, composed of footage of the last steam train arriving at Waterloo Station (directly behind the COI), structured into an abstract Man Ray ballet mécanique, all cut to a musique concrete track. He also made a film called Tree in 1966, the tree in question was surrounded by concrete outside the Royal Festival Hall on the South Bank in London. The 1970s would see Greenaway getting much more serious with his filmmaking. In 1978 he made Vertical Features Remake and A Walk Through H. The former is an examination of arithmetical structure and the latter a journey through various maps. In 1980 Greenaway delivered his most ambitious and extraordinary film of his career, The Falls - a mammoth, fantastical, absurdist encyclopedia of flight-associated material all relating to 92 victims of the Violent Unknown Event (VUE). The 1980s would see some of Greenaway's best films, The Draughtsman's Contact in 1982, A Zed & Two Noughts in 1985, The Belly of an Architect in 1987, Drowning by Numbers in 1988, and his most successful (in the mainstream) film in 1989, The Cook, The Thief, His Wife & Her Lover. The 1990s brought the visually spectacular Prospero's Books in 1991, the controversial The Baby of Mâcon in 1993, The Pillow Book in 1996, and 8 1/2 Women in 1999.
Since 2002 he is working on his most ambitious film project, The Tulse Luper Suitcases, a multimedia extravaganza featuring innovative film techniques.
Ergänzungen zur Schlagwortliste

redpajama_set_name: RedPajamaCommonCrawl


Just as it did with volume 001, the editorial idea for volume 002 began with the desire to explore artistic expression across a multitude of mediums, in an effort to better understand our culture. But it grew narrower - and deeper - with a desire to explore the specific effects of commodification on creativity. In this volume, we wanted to chronicle a portion, however small, of this phenomenon, and understand the inspiration behind the artists and thinkers that are resisting its overwhelming tides.
We had the pleasure of releasing our second volume at the home of our friends at Common Room Roasters. It was a beautiful night celebrating tactile objects, in a gorgeous industrial space, with real people, real music, and real conversations. For those that were able to attend, we appreciate your love, support, and ideas. For those that were unable, we hope to see you at the next one, as the conversation continues to grow and evolve in its aim to inquire into the cerebral lifestyle.


Indulge your taste buds during your bareboating holiday and experience the many culinary options available in the Whitsundays, from fresh caught seafood, world class restaurants or something created in your own on board galley and enjoyed on deck.
All of our boats come with a fully equipped galley and ample fridge and freezer facilities.
Both Coles & Woolworths supermarkets are located a 5 minute drive from our base at Abell Point Marina. Butchers, bakeries and bottle shops are all with in close proximity.
Take the hassle out of shopping: place an order through Whitsunday Provisioning and have your provisions delivered and stowed on your boat, ready for your arrival. Choose from either self-select order or packaged menus. Platters are also available.
For those lucky people chartering a vessel around the Whitsunday Islands. Slice Of Nature take the hassle out of meal time, allowing you to make the most of our picturesque Whitsunday evenings. Have just dinners catered for or have the full food experience and choose to add breakfasts, lunch & snacks, or breakfast lunch & snacks to your box.
If you're in need of a break from cooking, pull into one of the resort islands or mainland Airlie Beach and take advantage of the many dining options available. Bookings are recommended for all restaurants and berths while you dine. See Island Resorts & Airlie Beach for more information.


text:
+41 14468050 FAX +41 14468055
Wilhelm Sasnal and Maria Lassnig
Galerie Hauser & Wirth
Hauser & Wirth, Zurich
Sasnal's fascination for the unexpected detail within our shared reality permeates his work. The artists is showing new paintings, drawings and a 16-mm film. Maria Lassnig shows her recent, large-format oil paintings in which the artist portrays herself in various moods and physical states.
Two solo shows
WILHELM SASNAL (b. 1972) is one of the most important artists of his generation. The Kunstverein Frankfurt and the Van Abbemuseum in Eindhoven, in a joint project, dedicated a major solo exhibition to the Polish artist last year. Other key solo exhibitions have been held at the Douglas Hyde Gallery in Dublin (2006) and at the Berkeley Art Museum (2005). In November 2006 the artist received the prestigious Vincent Van Gogh Award.
For his second exhibition at Hauser & Wirth, Sasnal is showing new paintings, drawings and a 16-mm film.
Throughout his work WILHELM SASNAL combines references to political events, to art and cultural history with snippets of personal experience and everyday life. The breadth of his interests, once transferred into his work, eschews any sense of hierarchy. Within his paintings the eclecticism of his subject matter is matched by a relentless stylistic experimentation. In a continuously evolving aesthetic he quotes art historical styles, everything from Tachism to Geometric Abstraction and Photorealism to Pop Art, bending each genre to his chosen subject and submitting it to his own new interpretation.
Sasnal's fascination for the unexpected detail within our shared reality permeates his work. Selecting from what at times can be an almost overwhelming level of stimuli that makes up our daily existence, Sasnal often hones in to focus on an unexpected element. He absorbs information, on occasion borrows imagery from the Internet or elsewhere and views it from a novel angle. Yet somehow, through this highly subjective selection and means of expression, he creates an air of objectivity. There is a sense of detachment, which often leads to a feeling of unease. His new exhibition centres on the figure of Elvis Presley. Music is one of Sasnal's passions and it is a recurrent influence in his work; record sleeves, portraits of musicians and clips from music videos have all served as starting-points for his works.
The 16-mm film projection is based on found-footage from the late 1970s of Presley. The King of Rock 'n' Roll still retains some of his majesty but there is hesitation and vulnerability in his voice and posture that hint at his imminent demise. In motifs such as the falling star and the views of Graceland Sasnal captures the uncertainty of life in a damaged universe.
MARIA LASSNIG, the grande dame of Austrian art, was born in Carinthia in 1919 and now lives and works in Vienna. She is one of the most significant and innovative painters on the contemporary art scene. Since the early 1950s, her works have appeared in solo exhibitions, including at the Kunstmuseum in Düsseldorf (1985), the Stedelijk Museum in Amsterdam (1994), the Centre Pompidou in Paris (1995), the Kunsthaus in Zurich (2003) and at Hauser & Wirth in London (2004).
After studying at the Vienna Fine Arts Academy, she spent some time living in Paris and New York. From 1970 to 1972 she studied film animation at the New York School of Visual Arts. On returning to Vienna in 1980, she became the first woman professor of painting in the German-speaking countries, holding the chair in this discipline at Vienna University of Applied Arts. She participated in the Venice Biennale that same year. In 1982 and 1997 her work was displayed at the Documenta in Kassel.
MARIA LASSNIG's œuvre embraces not only painting, but sculpture, animated film and major graphic output. She had long kept her drawings under lock and key, and only published them in 1997 in 'Die Feder ist die Schwester des Pinsels' [The pen is the sister of the paintbrush], published by Hans Ulrich Obrist. Her life's work has won her many accolades, including the Grand Austrian State Prize in 1988, the City of Zurich Roswitha Haftmann Prize, the Rubens Prize of the Town of Siegen, Germany, in 2002, the City of Frankfurt Max Beckmann Prize in 2004 and the Austrian Decoration for Science and Art in 2005.
At her current exhibition in Zurich, Hauser & Wirth present a group of works: recent, large-format oil paintings in which the artist portrays herself in various moods and physical states. But there is a common theme: observation of the physical presence of the body and what she calls bodily consciousness. The works come across to the observer directly and effectively, as this artist reveals herself intimately and unpretentiously.
"I step in front of the canvas naked, as it were. I have no set purpose, plan, model or photography. I let things happen. But I do have a starting-point, which has come from my realization that the only true reality are my feelings, played out within the confines of my body. They are physiological sensations: a feeling of pressure when I sit or lie down, feelings of tension and senses of spatial extent. These things are quite hard to depict."
So these are not conventional self-portraits. Rather, they visualize an engagement with the body's inner sense, as it comes across in her works 'Hospital' or 'Speaking grille'. Contrasting colouring and strong body shapes give the works a powerful, even drastic impact. Nevertheless, they reflect fragility. The body portrait 'You or I?' on the other hand works by positioning the body directly to face the observer and this challenging question. The effect is provocative, threatening but, at the same time, ironic and almost humorous.
"If I did not tell people that these are body pictures, they wouldn't know. In fact it is only a belief statement on my part that these pictures must be understood as bodily consciousness. I tell people that it is so, but they cannot see it. In true portrayals of bodily consciousness, they cannot see it. But it is important to me that people should know this, because I think it matters."
Opening: 9 June, from 5 pm
Tetsumi Kudo
dal 2/12/2015 al 25/2/2016


The HAZ-DUST VDM-7500 wireless video dust monitoring system digitally records workplace dust exposure. The VDM-7500 provides the integration of video and particulate dust monitoring technology for a more dynamic assessment of air contamination and worker exposure. With the lightweight monitor clipped to a worker's belt and the sensor in the breathing zone, the VDM-7500 measures levels of lung-damaging particles while simultaneously overlaying dust concentration onto video. Through wireless communication, all data is displayed in real-time on the computer screen.


The "GANZ-MÁVAG" has distributed pumps and armatures all over the world, but 1994, after his desintegration the new enterprises did not continue this profile. However the practice and the know-how of many years had a considerable value.
At the same time the firm got the duty to service and repair GANZ pumps, had been made and installed earlier, helping his business partners by this way too.
We would like to cover larger and larger segment in the market with our products by permanent product and technological research and development. To save money for our customers we attach great importance to the interchangeability of the parts of our products in the process of development.
This "Pump Overview" shows the most popular types of our product range only, but we are able to take into account all the local circumstances and hydraulic demands, that are coming from the customers, in the process of production, so we are able to supply "tailor made" products to our customers. By this way we can insure the best efficiency and the minimum energy consumption.
© 2012 - 2017 Ganz-Vízgép Fővállalkozói Kft.All Rights Reserved!


text:
Home Anambra Crime News IN ANAMBRA: 3 students from one family drowned in River Niger
IN ANAMBRA: 3 students from one family drowned in River Niger
at March 25, 2020 Anambra, Crime, News,
Three students and children of one parent simply identified as Mr Chukwuemeka of Urum-Etiti in Anam, Anambra-west local government area of Anambra state have reportedly drowned at River Niger during a Canoe capsize.
AnambraUpdate learnt that the deceased, who were students of Community Secondary School, Atani, Ogbaru LGA, were on their way to home at Ochuche, a riverine community in the same Council area when they met their untimely death.
Mr Edwin Okadigbo, public relations officer of the Nigeria Security and Civil Defence Corps (NSCDC), Anambra state command, while confirming the news, said that the students were on March 23, declared missing during which the contacted.
"Recalled on 23/03/2020 at about 18:00hrs, following a distress call, NSCDC Ogbaru Divisional office was alerted that three students of Community secondary school, Atani capsized and were declared missing while peddling canoe on River Niger to their house.
"Preliminary Investigation revealed the three students on their way to Ochuche in Ogbaru LGA of Anambra state were children of one Mr Chukwuemeka of Urum-Etiti, Anam in Anambra West but residing at Ochuche. Cause of the incident was attributed to river turbulence, following the heavy downpour of March 23 2020.
"Two out of the five students that were in the canoe, however, managed to survive the capsizing. Efforts are being intensified at recovering the missing three. The State Commandant of NSCDC Comdt. David Bille has ordered for discreet investigation surrounding the incident," he disclosed.
Anambra, Crime, News
Anambra Crime News


text:
Nutella is de merknaam van een pasta voor broodbeleg van het Italiaanse bedrijf Ferrero.

De pasta werd in 1946 ontwikkeld en in 1964 op de markt geïntroduceerd, aanvankelijk onder de naam 'Giandujot Supercrema'. Tegen het eind van 1964 registreerde Ferrero de merknaam 'Nutella' en daarbij de afbeelding op het etiket, die nadien ongewijzigd is gebleven, behalve op tijdelijke actiepotten. Ook de vorm van de pot is merkenrechtelijk beschermd.

Een soortgelijke combinatie van hazelnoten en chocolade werd door chocolademakers in Turijn en omstreken al in de vroege negentiende eeuw ontwikkeld om te besparen op de hoeveelheid cacao. Tegenwoordig wordt het product wereldwijd verkocht; het is met name in Europa, Australië en de Verenigde Staten populair.

Ingrediënten
De exacte samenstelling van Nutella verschilt van land tot land. De belangrijkste ingrediënten zijn palmolie uit Maleisië en Papoea-Nieuw-Guinea en suiker. Samen maken ze 72% uit van een pot Nutella Chocopasta. De suikers bestaan afhankelijk van het productiegebied uit suikerbiet- of uit geraffineerde rietsuiker. Volgens Nutella bestaat anno 2017 de inkoop van de suiker voor driekwart uit die van suikerbieten en een kwart uit die van geraffineerde rietsuiker. De palmolie is volgens Nutella geur- en smaakloos en wordt volgens het bedrijf toegevoegd om het product zijn smeuïge textuur te geven. Door de toevoeging van de palmolie is de pasta volgens Nutella goed smeerbaar.

Daarnaast zit in Nutella (percentages voor in 2017 in Nederland verkochte Nutella):
 13% hazelnoten uit Turkije en Italië.
 7,4% magere cacao, verwerkt in Stadtallendorf in Duitsland of Alba in Italië. Hiervoor worden cacaobonen uit West-Afrika (Ivoorkust, Ghana, Nigeria) gebruikt.
 8,7% magere melkpoeder, vervaardigd in Frankrijk en België.
 weipoeder
 sojalecithine, om het mengsel smeerbaar te houden.
 0,02% synthetische vanilline

Externe links
 Officiële Nederlandse Nutella-website
 Officiële Belgische Nutella-website

Broodbeleg
Cacao
Merknaam van Ferrero

redpajama_set_name: RedPajamaWikipedia


text:
Q: Could not Update data using asp mvc Entity-Framework As a beginner with ASP .net MVC i m trying to update database using Entity Framework but the id is always null what it make the modelstate always non Valide
 this is Code of the Controller

A: Your Id is equal to null because the model binder doesn't find a value from your posted data.
To solve this you must add the Id as a hidden field into your view. In your Edit.cshtml just add the following line :
@Html.HiddenFor(model => model.Id)

A: Try it like this ->
public ActionResult Edit([Bind(Include = "Field1,Field2,Field3...")] Etudiant et)
    {
        if (ModelState.IsValid)
        {
            db.Entry(et).State = EntityState.Modified;

            db.SaveChanges();
        }
        return RedirectToAction("Index");
    }

redpajama_set_name: RedPajamaStackExchange


Data protection is important to us. Dodax AG understands your concern about the use and disclosure of your personal data. We respect your right to privacy and we try our best to request as few personal data as possible and to store the necessary ones as safely as possible. We want to make sure that you understand what type of data we collect about you, how they are used and which measures we take to protect your personal data. Hereinafter we wish to give you a short insight in the care we exercise when handling your personal data.
WHICH PERSONAL DATA DO WE COLLECT AND HOW ARE THEY USED?
might be necessary to establish or protect legal claims or in defense of court actions.
WHICH OTHER DATA IS COLLECTED?
Without any additional data, this information cannot be related to a specific or identifiable persons. It can be related to you only with additional data from your access provider. In principle, this isn't intended by us and therefore isn't carried out by us. Thus, such data is not personal data. In addition, we use Google Analytics to generate access and usage statistics and in connection with ad placements through Google Ads. This data as well does not relate to a specific or identifiable natural person.
Your data is centrally stored and processed on protected servers of a hosting provider in Germany and is accessible only to specially authorized persons appointed to process your data. The servers are protected through extensive safety measures from unauthorized external access. Dodax AG does not sell your personal data to third parties nor discloses them in any other way.
Upon written request ( see contact) we will gladly inform you about the data stored regarding your personal data. Moreover, you may demand at any time that we update, correct or delete your data according to your specifications.


Russian cosmonaut Aleksei Ovchinin and U.S. astronaut Nick Hague returned to Earth in their Soyuz capsule for an emergency landing following a problem with the booster rocket shortly after a launch bound for the International Space Station (ISS), a NASA TV announcer said on October 11, RFE/RL reported.
"The search and rescue teams have reached the Soyuz spacecraft landing site and report that the two crew members are in good condition and are out of the capsule," NASA said.
"The cosmonauts are alive. They have landed. They have been found," according to a source at the Russia-leased Baikonur launch facility in Kazakhstan.
The crew had to return in "ballistic descent mode," NASA earlier said, which it explained was "a sharper angle of landing compared to normal."
Meanwhile, Russian Deputy Prime Minister Yuri Borisov announced that manned space flights would be suspended until an investigation into the causes of the malfunction is completed.


There are websites which can only be reached by using the "www" in the url. When having an ordinary website hosting package, it's normal to have that redirection to the www-adress, but there are some major brands, where the redirection doesn't work.
For example: Swisscom Mobile. The biggest mobile phone service provider in Switzerland still doesn't redirect users from http://swisscom-mobile.com to http://www.swisscom-mobile.com (interestingly for http://swisscom-mobile.ch it works). I already informed them about that failure some months ago, but they haven't reacted.
That's a small usability-failure, but nevertheless it's bothersome if you are used to write urls withouth the "www" in front.
Question: Do you know any important websites that don't work without www in front?
Big brands fail in a world without www - A list of big brands where the website fails withouth the www. Maybe a little outdated, because it was posted last year.
http://no-www.org - classifies webpages depending on wheter they accept www in the hostname, or not.


text:
Ryan Reynolds Possibly Taking The Lead In The 'Highlander' Reboot
By BAADASSSSS! | Saturday, May 19th, 2012 at 6:25 pm
I like Ryan Reynolds. He's a very funny guy, a capable dramatic actor, and more often than not the best part of some godawful films. Even though last year's Green Lantern was an unequivocal failure on nearly every level, Reynolds' performance in the title role was solid enough to almost redeem the entire mess. However, I don't think Reynolds should be a part of, or even anchoring, every genre movie property with endless potential. Some movies the guy just doesn't seem to fit into.
Case in point: Lionsgate and Summit Entertainment's reboot of the 1986 action-fantasy cult classic Highlander, which has been in development ever since Summit acquired the rights to the franchise from producers William Panzer and Peter Davis back in 2008. The project currently has Juan Carlos Fresnadillo (28 Weeks Later) in the director's chair with a script by Iron Man scribes Matt Holloway and Art Marcum and the Spanish filmmaker's current top choice to be his sword-swingin' Scottish immortal Connor MacLeod is none other than Ryan Reynolds.
The actor has long been attached to a movie based around another badass master swordsman beloved by geeks the world over: the Marvel Comics masked antihero Deadpool, who Reynolds (sort of) played in 2009's X-Men Origins: Wolverine. The Deadpool flick unfortunately remains mired in Development Hell, leaving Reynolds open to taking on the lead in the new Highlander.
Released in 1986 the original Highlander wasn't a hit at the box office but it's enduring popularity on video and cable turned the film into a franchise that launched Christopher Lambert's career as a B-movie stalwart and spawned two sequels, a successful syndicated television series, two further sequels inspired by the TV show, and a short-lived animated series.
If Reynolds gets the part I'm sure he'll nail the physical attributes that comes with it and bring oodles of charisma to the proceedings, but that doesn't exactly make the most qualified candidate. There have been flashes of greatness in Reynolds' past performances and he's primed for a breakout role that will establish him as a name actor in the industry. Maybe Highlander will be the movie that does it.
[Source: Variety via io9]
Topics: Movies, News, Remakes
Tags: Art Marcum, Highlander, Juan Carlos Fresnadillo, Matt Holloway, Ryan Reynolds
Comic Review: The Dare! Detectives, Casebook No. 1: The Snow-Pea Plot
Geek Gear: Doctor Who 'It's Bigger on the Outside' Shirt
• 'Joker' Passes 'Deadpool' As Top R-Rated Movie; Ryan Reynolds Shares Fitting Response
• Apple Lands Musical Take On Charles Dickens' 'A Christmas Carol' Starring Ryan Reynolds, Will Ferrell
• Official Trailer Released For Michael Bay's '6 Underground' Starring Ryan Reynolds
• Netflix Acquires 'Red Notice' Starring Dwayne Johnson, Gal Gadot, and Ryan Reynolds


text:
Q: Store fields in database or in Lucene index file My domain object has 20 properties(columns, attributes, whatever you call it) and simple relationships. I want to index 5 properties for full-text search and 3 for sorting. There might be 100,000 records.
To keep my application simple, I want to store the fields in a Lucene index file to avoid introducing a database. Will there be a performance problem?

A: Depending on how you access stored fields, they may all be loaded into memory (basically, if you use a FieldCache everything will be cached into memory after the first use). And if you have a gig of storage which is taking up memory, that's a gig less to use for your actual index.
Depending on how much memory you have, this may be a performance enhancement, or a performance detriment.


Displays: most dealers and collectors in Europe use plastic trays with spaces for individual coins. The coins are usually loose, with slips of paper underneath them that bear relevant descriptive information. The trays are covered with a thick piece of clear plastic that can be removed easily in order to handle the coins. Locked display cases are rare.
Lighting: usually ambient or indirect lighting, though some areas are bathed in sunlight (more properly called daylight because the sun is not always shining in January in Berlin). Hardly any dealers use the lamps and lighting that are mainstays of American coin shows, thus making it difficult to grade coins.
Food: the main lobby of the Estrel Hotel offers several restaurant choices, but vendors wheeling carts of food around the bourse floor are very popular.
Grading: all over the board, ranging from ultra-tight to ultra-loose. That's why PCGS is there.
Fun level: high. At the opening bell, there are usually scores to hundreds of people waiting to get in. Floor activity is brisk and the aisles are often quite crowded. Often, there are long lines of people at some of the mint displays.
The Berlin Money Fair has something for everyone. I've often said that one can build an entire minting operation just by visiting this show. Vendors offer everything from planchet preparation to coin designing to actual minting presses to packaging for the final product, and everything in-between. And, you'll be able to see (and buy) some great coins from all over the world.
In 2010 the Mint struck over 100 different coins with legal tender status. And, today it would cost a minimum of $18,000 to buy an example of every single coin that the U.S. Mint issued in 2010.
Take a look at all the different coins a collector will have to acquire to have a complete collection of 2010 coins.
2010 is not the only year that the Mint produced this many coins. In 2007, 2008 and 2009 it also produced about the same amount of coins. The Mint has definitely kept modern coin collectors on their toes for the past few years. And it looks like 2011 will not be any different. Whoever said numismatics wasn't fun!
Can you believe that a coin graded PCGS Poor 1 will bring a higher premium than a coin that is graded PCGS MS63. It's unbelievable.
This 1897-S Morgan Dollar graded PCGS Poor 1 sold for $565 on November 2010. The same coin in Uncirculated PCGS MS63 grade sells for under $120. And there are many more PCGS Poor 1 examples in the market realizing even more.
Who would have ever thought that a coin that is almost completely worn and has the date and design just visible could be worth more than a coin in Uncircualted grades.
At PCGS, a coin assigned a grade of Poor 1 is a coin that has most of the design and date missing due to excessive wear from circulation. However, in most cases the coin has to be identifiable by its date, mint mark and type before PCGS assigns it a grade of Poor 1.
Not only do some coins in grades of Poor 1 command higher premiums than in most other grades. Numerous times collectors have sent in coins graded PCGS Fair 2 under a grade review, in hopes of getting their coin downgraded to a grade of Poor 1.
Perhaps coins in grades of Poor 1 are much more desirable because they circulated heavily, and therefore have much more historical significance. Or, it can be because this is the lowest grade possible and it's really hard to find a coin in this one specific grade. Is it because it takes just a bit more wear before it becomes un-greadable. Or, is it because of the Set Registry and several collectors want to compete in Low Ball sets? Or it may be because collecting Low Ball coins is really fun.
Whatever the reason is, its fun to see Low Ball coins attract this much attention in the marketplace.


As we've highlighted in the past, we believe that the software patent system is challenging for open source software development.
Because of the short innovation cycle and continuous iteration of software development, long patent terms impede the rapidly iterative processes that sustain the pace of software innovation. The "FUD" (fear, uncertainty and doubt) caused by software patents in a rapidly innovating space can cause everyone, particularly open source projects, to be frustrated (for an example, one of many, look at Google's and Microsoft's open codec attempts to see this in action).
The problem has several aspects. First, overworked patent offices have lead to the issuance of many non-innovative (and therefore at least partially invalid) software patents (some commentators have suggested this may be 38% of software patents). The number of patent applications only continues to grow, exacerbating this problem. Secondly, patent examiners who are strapped for time and resources mainly look to filings in the patent office itself as evidence of whether a patent claim is novel. Unfortunately, this makes it hard to adequately evaluate new software patent applications and identify relevant prior art — especially when the prior art is located in open source repositories and wikis, outside of patent office filings. This landscape has allowed software patent applicants to successfully claim software functions without worrying about open source precedents that would otherwise invalidate their patents, and sometimes even without any meaningful limitation to a particular system or purpose. Finally, once a patent is issued, it is very hard to invalidate. It can be at least two to four times the cost to invalidate a bad patent, even in the case where prior art is clear.
The threat posed by the growing pervasiveness of these types of overbroad and vague software patents is the shroud of FUD they cast over emerging and innovative technologies. It can feel impossible to know whether you are infringing someone else's software patent, which can slow or frustrate innovation. Aggressive patent litigation and settlement strategies have also created an atmosphere of FUD for the purpose of damaging open alternatives to proprietary products. Additionally, patent trolls have added uncertainty to open development by aggressively suing based on patent portfolios that allegedly cover foundational software technology. It is sadly ironic that much of the increasing costs of software patent issues are being borne by innovators themselves, including those in the open source community — the very individuals the patent system was supposed to incentivize.
Many of us (including the EFF, Engine Advocacy, Open Invention Network, and defensivepatentlicense.org, to name a few) have addressed the issue in various ways. Each of these tactics have led to changes in the way we think about the issue as well as breaking away at various parts of the problem. As Mozilla, we need to do something different that leverages our position in the ecosystem as an open innovator. We have been thinking about this issue and, over the next few weeks, we'll be working towards a Mozilla contribution to addressing the software patent problem. If you have thoughts about things we could do, we'd love to hear from you as well.


text:
#include <gtest/gtest.h>

#include "dart/dynamics/SimpleFrame.hpp"
#include "dart/math/Helpers.hpp"
#include "dart/math/Random.hpp"

#include "GTestUtils.hpp"
#include "TestHelpers.hpp"

using namespace dart;
using namespace dynamics;

template <int N>
Eigen::Matrix<double, N, 1> random_vec(double limit = 100)
{
  return Random::uniform<Eigen::Matrix<double, N, 1>>(-limit, limit);
}

void randomize_transform(
    Eigen::Isometry3d& tf,
    double translation_limit = 100,
    double rotation_limit = 100)
{
  Eigen::Vector3d r = random_vec<3>(translation_limit);
  Eigen::Vector3d theta = random_vec<3>(rotation_limit);

  tf.setIdentity();
  tf.translate(r);

  if (theta.norm() > 0)
    tf.rotate(Eigen::AngleAxisd(theta.norm(), theta.normalized()));
}

void randomize_transforms(common::aligned_vector<Eigen::Isometry3d>& tfs)
{
  for (std::size_t i = 0; i < tfs.size(); ++i)
  {
    randomize_transform(tfs[i]);
  }
}

void compute_spatial_velocity(
    const Eigen::Vector6d& v_parent,
    const Eigen::Vector6d& v_relative,
    const Eigen::Isometry3d& tf_rel,
    Eigen::Vector6d& v_child)
{
  v_child = math::AdInvT(tf_rel, v_parent) + v_relative;
}

void compute_spatial_acceleration(
    const Eigen::Vector6d& a_parent,
    const Eigen::Vector6d& a_relative,
    const Eigen::Vector6d& v_child,
    const Eigen::Vector6d& v_rel,
    const Eigen::Isometry3d& tf_rel,
    Eigen::Vector6d& a_child)
{
  a_child
      = math::AdInvT(tf_rel, a_parent) + a_relative + math::ad(v_child, v_rel);
}

void compute_velocity(
    const Eigen::Vector3d& v_parent,
    const Eigen::Vector3d& w_parent,
    const Eigen::Vector3d& v_rel,
    const Eigen::Vector3d& w_rel,
    const Eigen::Vector3d& offset,
    const Eigen::Isometry3d& tf_parent,
    Eigen::Vector3d& v_child,
    Eigen::Vector3d& w_child)
{
  const Eigen::Matrix3d& R = tf_parent.rotation();

  v_child = v_parent + R * v_rel + w_parent.cross(R * offset);

  w_child = w_parent + R * w_rel;
}

void compute_acceleration(
    const Eigen::Vector3d& a_parent,
    const Eigen::Vector3d& alpha_parent,
    const Eigen::Vector3d& w_parent,
    const Eigen::Vector3d& a_rel,
    const Eigen::Vector3d& alpha_rel,
    const Eigen::Vector3d& v_rel,
    const Eigen::Vector3d& w_rel,
    const Eigen::Vector3d& offset,
    const Eigen::Isometry3d& tf_parent,
    Eigen::Vector3d& a_child,
    Eigen::Vector3d& alpha_child)
{
  const Eigen::Matrix3d& R = tf_parent.rotation();

  a_child = a_parent + R * a_rel + alpha_parent.cross(R * offset)
            + 2 * w_parent.cross(R * v_rel)
            + w_parent.cross(w_parent.cross(R * offset));

  alpha_child = alpha_parent + R * alpha_rel + w_parent.cross(R * w_rel);
}

TEST(FRAMES, FORWARD_KINEMATICS_CHAIN)
{
  std::vector<SimpleFrame*> frames;

  double tolerance = 1e-6;

  SimpleFrame A(Frame::World(), "A");
  frames.push_back(&A);
  SimpleFrame B(&A, "B");
  frames.push_back(&B);
  SimpleFrame C(&B, "C");
  frames.push_back(&C);
  SimpleFrame D(&C, "D");
  frames.push_back(&D);

  // -- Test Position --------------------------------------------------------
  EXPECT_TRANSFORM_NEAR(
      D.getTransform(), Eigen::Isometry3d::Identity(), tolerance);

  common::aligned_vector<Eigen::Isometry3d> tfs;
  tfs.resize(frames.size(), Eigen::Isometry3d::Identity());

  randomize_transforms(tfs);

  for (std::size_t i = 0; i < frames.size(); ++i)
  {
    SimpleFrame* F = frames[i];
    F->setRelativeTransform(tfs[i]);
  }

  for (std::size_t i = 0; i < frames.size(); ++i)
  {
    Frame* F = frames[i];
    Eigen::Isometry3d expectation(Eigen::Isometry3d::Identity());
    for (std::size_t j = 0; j <= i; ++j)
    {
      expectation = expectation * tfs[j];
    }

    Eigen::Isometry3d actual = F->getTransform();
    EXPECT_TRANSFORM_NEAR(actual, expectation, tolerance);
  }

  randomize_transforms(tfs);
  for (std::size_t i = 0; i < frames.size(); ++i)
  {
    SimpleFrame* F = frames[i];
    F->setRelativeTransform(tfs[i]);
  }

  Eigen::Isometry3d expectation(Eigen::Isometry3d::Identity());
  for (std::size_t j = 0; j < frames.size(); ++j)
    expectation = expectation * tfs[j];

  EXPECT_TRANSFORM_NEAR(frames.back()->getTransform(), expectation, tolerance);

  // -- Test Velocity --------------------------------------------------------

  // Basic forward spatial velocity propagation
  { // The brackets are to allow reusing variable names
    common::aligned_vector<Eigen::Vector6d> v_rels(frames.size());
    common::aligned_vector<Eigen::Vector6d> v_total(frames.size());

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      v_rels[i] = random_vec<6>();

      SimpleFrame* F = frames[i];
      F->setRelativeSpatialVelocity(v_rels[i]);

      if (i > 0)
        compute_spatial_velocity(
            v_total[i - 1], v_rels[i], F->getRelativeTransform(), v_total[i]);
      else
        compute_spatial_velocity(
            Eigen::Vector6d::Zero(),
            v_rels[i],
            F->getRelativeTransform(),
            v_total[i]);
    }

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      SimpleFrame* F = frames[i];

      Eigen::Vector6d v_actual = F->getSpatialVelocity();

      EXPECT_VECTOR_DOUBLE_EQ(v_total[i], v_actual);
    }
  }

  // Testing conversion beteween spatial and classical velocities
  {
    std::vector<Eigen::Vector3d> v_rels(frames.size());
    std::vector<Eigen::Vector3d> w_rels(frames.size());

    std::vector<Eigen::Vector3d> v_total(frames.size());
    std::vector<Eigen::Vector3d> w_total(frames.size());

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      v_rels[i] = random_vec<3>();
      w_rels[i] = random_vec<3>();

      SimpleFrame* F = frames[i];
      F->setClassicDerivatives(v_rels[i], w_rels[i]);

      Eigen::Vector3d offset = F->getRelativeTransform().translation();

      Eigen::Isometry3d tf = i > 0 ? frames[i - 1]->getTransform()
                                   : Eigen::Isometry3d::Identity();

      if (i > 0)
        compute_velocity(
            v_total[i - 1],
            w_total[i - 1],
            v_rels[i],
            w_rels[i],
            offset,
            tf,
            v_total[i],
            w_total[i]);
      else
        compute_velocity(
            Eigen::Vector3d::Zero(),
            Eigen::Vector3d::Zero(),
            v_rels[i],
            w_rels[i],
            offset,
            tf,
            v_total[i],
            w_total[i]);
    }

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      SimpleFrame* F = frames[i];
      Eigen::Vector3d v_actual = F->getLinearVelocity();
      Eigen::Vector3d w_actual = F->getAngularVelocity();

      EXPECT_VECTOR_NEAR(v_total[i], v_actual, tolerance);
      EXPECT_VECTOR_NEAR(w_total[i], w_actual, tolerance);
    }
  }

  // -- Acceleration ---------------------------------------------------------

  // Basic forward spatial acceleration propagation
  {
    common::aligned_vector<Eigen::Vector6d> v_rels(frames.size());
    common::aligned_vector<Eigen::Vector6d> a_rels(frames.size());

    common::aligned_vector<Eigen::Vector6d> v_total(frames.size());
    common::aligned_vector<Eigen::Vector6d> a_total(frames.size());

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      v_rels[i] = random_vec<6>();
      a_rels[i] = random_vec<6>();

      SimpleFrame* F = frames[i];
      F->setRelativeSpatialVelocity(v_rels[i]);
      F->setRelativeSpatialAcceleration(a_rels[i]);
      Eigen::Isometry3d tf = F->getRelativeTransform();

      if (i > 0)
      {
        compute_spatial_velocity(v_total[i - 1], v_rels[i], tf, v_total[i]);
        compute_spatial_acceleration(
            a_total[i - 1], a_rels[i], v_total[i], v_rels[i], tf, a_total[i]);
      }
      else
      {
        compute_spatial_velocity(
            Eigen::Vector6d::Zero(), v_rels[i], tf, v_total[i]);
        compute_spatial_acceleration(
            Eigen::Vector6d::Zero(),
            a_rels[i],
            v_total[i],
            v_rels[i],
            tf,
            a_total[i]);
      }
    }

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      SimpleFrame* F = frames[i];

      Eigen::Vector6d a_actual = F->getSpatialAcceleration();

      EXPECT_VECTOR_DOUBLE_EQ(a_total[i], a_actual);
    }

    // Test relative computations
    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      Frame* F = frames[i];
      Frame* P = F->getParentFrame();

      Eigen::Vector6d v_rel = F->getSpatialVelocity(P, F);
      Eigen::Vector6d a_rel = F->getSpatialAcceleration(P, F);

      EXPECT_VECTOR_NEAR(v_rels[i], v_rel, tolerance);
      EXPECT_VECTOR_NEAR(a_rels[i], a_rel, tolerance);
    }

    // Test offset computations
    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      Eigen::Vector3d offset = random_vec<3>();
      Frame* F = frames[i];

      Eigen::Vector3d v_actual = F->getLinearVelocity(offset);
      Eigen::Vector3d w_actual = F->getAngularVelocity();
      Eigen::Vector3d v_expect, w_expect;
      compute_velocity(
          F->getLinearVelocity(),
          F->getAngularVelocity(),
          Eigen::Vector3d::Zero(),
          Eigen::Vector3d::Zero(),
          offset,
          F->getWorldTransform(),
          v_expect,
          w_expect);

      EXPECT_VECTOR_DOUBLE_EQ(v_expect, v_actual);
      EXPECT_VECTOR_DOUBLE_EQ(w_expect, w_actual);

      Eigen::Vector3d a_actual = F->getLinearAcceleration(offset);
      Eigen::Vector3d alpha_actual = F->getAngularAcceleration();
      Eigen::Vector3d a_expect, alpha_expect;
      compute_acceleration(
          F->getLinearAcceleration(),
          F->getAngularAcceleration(),
          F->getAngularVelocity(),
          Eigen::Vector3d::Zero(),
          Eigen::Vector3d::Zero(),
          Eigen::Vector3d::Zero(),
          Eigen::Vector3d::Zero(),
          offset,
          F->getWorldTransform(),
          a_expect,
          alpha_expect);

      EXPECT_VECTOR_DOUBLE_EQ(a_expect, a_actual);
      EXPECT_VECTOR_DOUBLE_EQ(alpha_expect, alpha_actual);
    }
  }

  // Testing conversion between spatial and classical accelerations
  {
    std::vector<Eigen::Vector3d> v_rels(frames.size());
    std::vector<Eigen::Vector3d> w_rels(frames.size());
    std::vector<Eigen::Vector3d> a_rels(frames.size());
    std::vector<Eigen::Vector3d> alpha_rels(frames.size());

    std::vector<Eigen::Vector3d> v_total(frames.size());
    std::vector<Eigen::Vector3d> w_total(frames.size());
    std::vector<Eigen::Vector3d> a_total(frames.size());
    std::vector<Eigen::Vector3d> alpha_total(frames.size());

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      v_rels[i] = random_vec<3>();
      w_rels[i] = random_vec<3>();
      a_rels[i] = random_vec<3>();
      alpha_rels[i] = random_vec<3>();

      SimpleFrame* F = frames[i];
      Eigen::Isometry3d rel_tf;
      randomize_transform(rel_tf);
      F->setRelativeTransform(rel_tf);
      F->setClassicDerivatives(v_rels[i], w_rels[i], a_rels[i], alpha_rels[i]);

      Eigen::Vector3d offset = F->getRelativeTransform().translation();

      Eigen::Isometry3d tf = i > 0 ? frames[i - 1]->getTransform()
                                   : Eigen::Isometry3d::Identity();

      if (i > 0)
      {
        compute_velocity(
            v_total[i - 1],
            w_total[i - 1],
            v_rels[i],
            w_rels[i],
            offset,
            tf,
            v_total[i],
            w_total[i]);
        compute_acceleration(
            a_total[i - 1],
            alpha_total[i - 1],
            w_total[i - 1],
            a_rels[i],
            alpha_rels[i],
            v_rels[i],
            w_rels[i],
            offset,
            tf,
            a_total[i],
            alpha_total[i]);
      }
      else
      {
        compute_velocity(
            Eigen::Vector3d::Zero(),
            Eigen::Vector3d::Zero(),
            v_rels[i],
            w_rels[i],
            offset,
            tf,
            v_total[i],
            w_total[i]);
        compute_acceleration(
            Eigen::Vector3d::Zero(),
            Eigen::Vector3d::Zero(),
            Eigen::Vector3d::Zero(),
            a_rels[i],
            alpha_rels[i],
            v_rels[i],
            w_rels[i],
            offset,
            tf,
            a_total[i],
            alpha_total[i]);
      }
    }

    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      SimpleFrame* F = frames[i];
      Eigen::Vector3d v_actual = F->getLinearVelocity();
      Eigen::Vector3d w_actual = F->getAngularVelocity();
      Eigen::Vector3d a_actual = F->getLinearAcceleration();
      Eigen::Vector3d alpha_actual = F->getAngularAcceleration();

      EXPECT_VECTOR_NEAR(v_total[i], v_actual, tolerance);
      EXPECT_VECTOR_NEAR(w_total[i], w_actual, tolerance);
      EXPECT_VECTOR_NEAR(a_total[i], a_actual, tolerance);
      EXPECT_VECTOR_NEAR(alpha_total[i], alpha_actual, tolerance);
    }

    // Test relative computations
    for (std::size_t i = 0; i < frames.size(); ++i)
    {
      SimpleFrame* F = frames[i];
      Frame* P = F->getParentFrame();
      Eigen::Vector3d v_rel = F->getLinearVelocity(P, P);
      Eigen::Vector3d w_rel = F->getAngularVelocity(P, P);
      Eigen::Vector3d a_rel = F->getLinearAcceleration(P, P);
      Eigen::Vector3d alpha_rel = F->getAngularAcceleration(P, P);

      EXPECT_VECTOR_NEAR(v_rels[i], v_rel, tolerance);
      EXPECT_VECTOR_NEAR(w_rels[i], w_rel, tolerance);
      EXPECT_VECTOR_NEAR(a_rels[i], a_rel, tolerance);
      EXPECT_VECTOR_NEAR(alpha_rels[i], alpha_rel, tolerance);
    }
  }
}

void randomize_target_values(
    const std::vector<SimpleFrame*>& targets, bool spatial)
{
  for (std::size_t i = 0; i < targets.size(); ++i)
  {
    SimpleFrame* T = targets[i];

    Eigen::Isometry3d tf(Eigen::Isometry3d::Identity());
    randomize_transform(tf, 1, 2 * dart::math::constantsd::pi());

    if (spatial)
    {
      T->setRelativeTransform(tf);
      T->setRelativeSpatialVelocity(random_vec<6>(1));
      T->setRelativeSpatialAcceleration(random_vec<6>(1));
    }
    else
    {
      T->setRelativeTransform(tf);
      T->setClassicDerivatives(
          random_vec<3>(1),
          random_vec<3>(1),
          random_vec<3>(1),
          random_vec<3>(1));
    }
  }
}

void set_relative_values(
    const std::vector<SimpleFrame*>& targets,
    const std::vector<SimpleFrame*>& followers,
    bool spatial)
{
  for (std::size_t i = 0; i < targets.size(); ++i)
  {
    Frame* T = targets[i];
    SimpleFrame* F = followers[i];
    Frame* P = F->getParentFrame();

    F->setRelativeTransform(T->getTransform(P));
    if (spatial)
    {
      F->setRelativeSpatialVelocity(T->getSpatialVelocity(P, F));
      F->setRelativeSpatialAcceleration(T->getSpatialAcceleration(P, F));
    }
    else
    {
      F->setClassicDerivatives(
          T->getLinearVelocity(P, P),
          T->getAngularVelocity(P, P),
          T->getLinearAcceleration(P, P),
          T->getAngularAcceleration(P, P));
    }
  }
}

void check_world_values(
    const std::vector<SimpleFrame*>& targets,
    const std::vector<SimpleFrame*>& followers,
    double tolerance)
{
  for (std::size_t i = 0; i < targets.size(); ++i)
  {
    Frame* T = targets[i];
    Frame* F = followers[i];

    const Eigen::Isometry3d& tf_error
        = T->getWorldTransform() * F->getWorldTransform().inverse();
    Eigen::Vector6d error;
    Eigen::AngleAxisd rot_error(tf_error.rotation());
    error.block<3, 1>(0, 0) = rot_error.angle() * rot_error.axis();
    error.block<3, 1>(3, 0) = tf_error.translation();

    EXPECT_TRUE(error.norm() < tolerance);

    error.block<3, 1>(0, 0) = rot_error.angle() * rot_error.axis();
    error.block<3, 1>(3, 0) = tf_error.translation();

    EXPECT_TRUE(error.norm() < tolerance);

    EXPECT_VECTOR_NEAR(
        T->getSpatialVelocity(), F->getSpatialVelocity(), tolerance);

    EXPECT_VECTOR_NEAR(
        T->getLinearVelocity(), F->getLinearVelocity(), tolerance);

    EXPECT_VECTOR_NEAR(
        T->getAngularVelocity(), F->getAngularVelocity(), tolerance);

    EXPECT_VECTOR_NEAR(
        T->getSpatialAcceleration(), F->getSpatialAcceleration(), tolerance);

    EXPECT_VECTOR_NEAR(
        T->getLinearAcceleration(), F->getLinearAcceleration(), tolerance);
  }
}

void check_values(
    const std::vector<SimpleFrame*>& targets,
    const std::vector<SimpleFrame*>& followers,
    const Frame* relativeTo,
    const Frame* inCoordinatesOf,
    double tolerance)
{
  for (std::size_t i = 0; i < targets.size(); ++i)
  {
    Frame* T = targets[i];
    Frame* F = followers[i];

    const Eigen::Isometry3d& tf_error
        = T->getTransform(relativeTo) * F->getTransform(relativeTo).inverse();
    Eigen::Vector6d error;
    Eigen::AngleAxisd rot_error(tf_error.rotation());
    error.block<3, 1>(0, 0) = rot_error.angle() * rot_error.axis();
    error.block<3, 1>(3, 0) = tf_error.translation();

    EXPECT_TRUE(error.norm() < tolerance);

    EXPECT_VECTOR_NEAR(
        T->getSpatialVelocity(relativeTo, inCoordinatesOf),
        F->getSpatialVelocity(relativeTo, inCoordinatesOf),
        tolerance);

    EXPECT_VECTOR_NEAR(
        T->getLinearVelocity(relativeTo, inCoordinatesOf),
        F->getLinearVelocity(relativeTo, inCoordinatesOf),
        tolerance);

    EXPECT_VECTOR_NEAR(
        T->getAngularVelocity(relativeTo, inCoordinatesOf),
        F->getAngularVelocity(relativeTo, inCoordinatesOf),
        tolerance);

    EXPECT_VECTOR_NEAR(
        T->getSpatialAcceleration(relativeTo, inCoordinatesOf),
        F->getSpatialAcceleration(relativeTo, inCoordinatesOf),
        tolerance);

    EXPECT_VECTOR_NEAR(
        T->getLinearAcceleration(relativeTo, inCoordinatesOf),
        F->getLinearAcceleration(relativeTo, inCoordinatesOf),
        tolerance);

    EXPECT_VECTOR_NEAR(
        T->getAngularAcceleration(relativeTo, inCoordinatesOf),
        F->getAngularAcceleration(relativeTo, inCoordinatesOf),
        tolerance);
  }
}

void check_offset_computations(
    const std::vector<SimpleFrame*>& targets,
    const std::vector<SimpleFrame*>& followers,
    const Frame* relativeTo,
    const Frame* inCoordinatesOf,
    double tolerance)
{
  for (std::size_t i = 0; i < targets.size(); ++i)
  {
    Frame* T = targets[i];
    Frame* F = followers[i];

    Eigen::Isometry3d coordTf = relativeTo->getTransform(inCoordinatesOf);

    Vector3d offset_T = random_vec<3>();
    Vector3d offset_F = T->getTransform(F) * offset_T;

    Vector3d v_TO, w_TO, v_FO, w_FO, a_TO, alpha_TO, a_FO, alpha_FO;

    // Compute velocity of the offfset in the relative frame
    compute_velocity(
        T->getLinearVelocity(relativeTo, relativeTo),
        T->getAngularVelocity(relativeTo, relativeTo),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        offset_T,
        T->getTransform(relativeTo),
        v_TO,
        w_TO);
    // Convert to the desired coordinate system
    v_TO = coordTf.linear() * v_TO;
    w_TO = coordTf.linear() * w_TO;

    // Compute acceleration of the offset in the relative frame
    compute_acceleration(
        T->getLinearAcceleration(relativeTo, relativeTo),
        T->getAngularAcceleration(relativeTo, relativeTo),
        T->getAngularVelocity(relativeTo, relativeTo),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        offset_T,
        T->getTransform(relativeTo),
        a_TO,
        alpha_TO);
    // Convert to the desired coordinate system
    a_TO = coordTf.linear() * a_TO;
    alpha_TO = coordTf.linear() * alpha_TO;

    compute_velocity(
        F->getLinearVelocity(relativeTo, relativeTo),
        F->getAngularVelocity(relativeTo, relativeTo),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        offset_F,
        F->getTransform(relativeTo),
        v_FO,
        w_FO);
    v_FO = coordTf.linear() * v_FO;
    w_FO = coordTf.linear() * w_FO;

    compute_acceleration(
        F->getLinearAcceleration(relativeTo, relativeTo),
        F->getAngularAcceleration(relativeTo, relativeTo),
        F->getAngularVelocity(relativeTo, relativeTo),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        Eigen::Vector3d::Zero(),
        offset_F,
        F->getTransform(relativeTo),
        a_FO,
        alpha_FO);
    a_FO = coordTf.linear() * a_FO;
    alpha_FO = coordTf.linear() * alpha_FO;

    Eigen::Vector3d v_TO_actual
        = T->getLinearVelocity(offset_T, relativeTo, inCoordinatesOf);
    Eigen::Vector3d v_FO_actual
        = F->getLinearVelocity(offset_F, relativeTo, inCoordinatesOf);

    EXPECT_VECTOR_NEAR(v_TO, v_FO, tolerance);
    EXPECT_VECTOR_NEAR(v_TO, v_TO_actual, tolerance);
    EXPECT_VECTOR_NEAR(v_FO, v_FO_actual, tolerance);

    Eigen::Vector3d a_TO_actual
        = T->getLinearAcceleration(offset_T, relativeTo, inCoordinatesOf);
    Eigen::Vector3d a_FO_actual
        = F->getLinearAcceleration(offset_F, relativeTo, inCoordinatesOf);

    EXPECT_VECTOR_NEAR(a_TO, a_FO, tolerance);
    EXPECT_VECTOR_NEAR(a_TO, a_TO_actual, tolerance);
    EXPECT_VECTOR_NEAR(a_FO, a_FO_actual, tolerance);
  }
}

void test_relative_values(bool spatial_targets, bool spatial_followers)
{
  const double tolerance = 1e-8;

  // These frames will form a chain
  SimpleFrame A(Frame::World(), "A");
  SimpleFrame B(&A, "B");
  SimpleFrame C(&B, "C");
  SimpleFrame D(&C, "D");

  std::vector<SimpleFrame*> targets;
  targets.push_back(&A);
  targets.push_back(&B);
  targets.push_back(&C);
  targets.push_back(&D);

  // R will be an arbitrary reference frame
  SimpleFrame R(Frame::World(), "R");
  targets.push_back(&R);

  // Each of these frames will attempt to track one of the frames in the chain
  // with respect to the frame R.
  SimpleFrame AR(&R, "AR");
  SimpleFrame BR(&R, "BR");
  SimpleFrame CR(&R, "CR");
  SimpleFrame DR(&R, "DR");
  SimpleFrame RR(&R, "RR");

  std::vector<SimpleFrame*> followers;
  followers.push_back(&AR);
  followers.push_back(&BR);
  followers.push_back(&CR);
  followers.push_back(&DR);
  followers.push_back(&RR);

  assert(targets.size() == followers.size());

  randomize_target_values(targets, spatial_targets);
  set_relative_values(targets, followers, spatial_followers);
  check_world_values(targets, followers, tolerance);

  // Check every combination of relative values
  for (std::size_t i = 0; i < targets.size(); ++i)
  {
    Frame* T = targets[i];
    for (std::size_t j = 0; j < followers.size(); ++j)
    {
      Frame* F = followers[j];

      check_values(targets, followers, T, F, tolerance);
      check_values(targets, followers, F, T, tolerance);
      check_offset_computations(targets, followers, T, F, tolerance);
    }
  }

  // Test SimpleFrame::setTransform()
  for (std::size_t i = 0; i < followers.size(); ++i)
  {
    for (std::size_t j = 0; j < followers.size(); ++j)
    {
      SimpleFrame* F = followers[i];
      SimpleFrame* T = followers[j];
      Eigen::Isometry3d tf;
      randomize_transform(tf, 1, 2 * dart::math::constantsd::pi());
      T->setTransform(tf, F);
      if (i != j)
      {
        EXPECT_TRANSFORM_NEAR(T->getTransform(F), tf, 1e-10);
      }
    }
  }
}

// Test different combinations of using spatial and classical derivative terms

TEST(RELATIVE_FRAMES, SPATIAL_SPATIAL)
{
  test_relative_values(true, true);
}

TEST(RELATIVE_FRAMES, CLASSIC_CLASSIC)
{
  test_relative_values(false, false);
}

TEST(RELATIVE_FRAMES, SPATIAL_CLASSIC)
{
  test_relative_values(true, false);
}

TEST(RELATIVE_FRAMES, CLASSIC_SPATIAL)
{
  test_relative_values(false, true);
}

TEST(FRAMES, CHILDHOOD)
{
  SimpleFrame F1(Frame::World(), "F1");
  SimpleFrame F2(&F1, "F2");

  EXPECT_TRUE(F1.getNumChildFrames() == 1);
}

redpajama_set_name: RedPajamaGithub