text:
Toggle search box visibility
Careers in Animation
Animation Firm Profiles
Find the right school for you
Location * - Select a state -OnlineAlabamaAlaskaArizonaArkansasCaliforniaColoradoConnecticutDelawareDistrict of ColumbiaFloridaGeorgiaHawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMarylandMassachusettsMichiganMinnesotaMississippiMissouriMontanaNebraskaNevadaNew HampshireNew JerseyNew MexicoNew YorkNorth CarolinaNorth DakotaOhioOklahomaOregonPennsylvaniaRhode IslandSouth CarolinaSouth DakotaTennesseeTexasUtahVermontVirginiaWashingtonWest VirginiaWisconsinWyomingCanada- Ontario- Quebec- British Columbia- Alberta- Manitoba- Saskatchewan- Nova Scotia- New BrunswickInternationalArgentinaAustraliaAustriaBangladeshBelgiumBrazilChileChinaCosta RicaCzech RepublicDenmarkEgyptEnglandFranceGermanyGreeceHong KongIndiaIndonesiaIrelandIsraelItalyJapanJordanMexicoMalaysiaNetherlandsNew ZealandNorwayPakistanPhilippinesPortugalQatarRomaniaSaudi ArabiaScotlandSerbiaSingaporeSouth AfricaSouth KoreaSpainSwedenSwitzerlandThailandTurkeyUAE
Did you know? Academy of Art University's School of Motion Pictures & Television offers a BFA program with six areas of emphasis -cinematography, directing, editing, producing, production design, and screenwriting- designed to equip the storytellers of tomorrow. Learn more
Top 10 Animation School Programs in New York - 2020 College Rankings
Posted by ACR Staff. Last updated January 13, 2020.
What are the top 10 animation school programs in New York for 2020?
1 School of Visual Arts New York
2 New York University New York
3 Rochester Institute of Technology Rochester
4 Pratt Institute Brooklyn
5 Rensselaer Polytechnic Institute Troy
6 The New School's Parsons School of Design New York
7 Syracuse University Syracuse
8 Alfred State College Alfred
9 New York Institute of Technology New York
10 Queens College Queens
Our 2020 ranking of the top animation school programs in New York. For an explanation of the ranking criteria, click here.
1. School of Visual Arts, New York, New York
The School of Visual Arts (SVA) was founded in 1947 as Cartoonists and Illustrators School. The school serves more than 3,700 students enrolled in over 30 programs. With nearly 400 students, 50 faculty and 40 courses Animation is the largest program at SVA. Students have a range of degree options to choose from including BFA degrees in Animation, Computer Art, Computer Animation and Visual Effects, and Cartooning. An MFA in Computer Art (Focus Animation, Motion Graphics or Fine Art) is also available as well as Continuing Education (CE) Animation courses.
The school says all animation students "learn the fundamentals of drawing, storytelling, character development, and professional animation software, as well as the history of animation, all for the purpose of bringing their creations to life." The curriculum "covers the entire spectrum of animation professions, from traditional animation to stop motion to digital; and access to faculty- and alumni-operated studios provides numerous opportunities for hands-on learning, internships and employment."
Students have studied and worked at studios such as Titmouse, Augenblick Studios, and Plympton, as well as numerous independent animation studios across New York. SVA animation graduates have gone on to work at major studios such as Blue Sky Studios, Disney Animation Studios, DreamWorks Animation, Lucasfilm Animation, Nickelodeon, Sony Pictures Animation, Warner Bros. Animation, and independent animation studios across the globe.
2. New York University, New York, New York
Serving more than 60,500 students, New York University (NYU) is the largest private university in the U.S. Founded in 1831, the school also has the highest number of international students in America with degree-granting campuses in New York, Abu Dhabi, and Shanghai. NYU operates 11 global academic centers and research programs in more than 25 countries. With more than 19,000 employees, NYU is also one New York's largest employers.
Founded in 1965, Tisch School of the Arts is part of NYU. The school houses the Maurice Kanbar Institute of Film and Television, home of the Department of Animation and Digital Arts. The Institute offers a BFA in Film and Television with an Animation Core in Production and an MFA in Animation and New Media. The two-year MFA program is also offered at Tisch Asia.
The Animation Area of the Kanbar Institute of Undergraduate Film & Television at NYU Tisch School of the Arts began in 1979. The program had just three classes: Art & Design, Animation I, and Animation II. For the 1980-1981 academic year, the program was home to 80 students enrolled in five classes. In 2013, the program enrolled 461 students. Today, the program serves hundreds of students from 48 states and 39 countries.
The school says that the Animation Area at NYU Tisch "serves the needs of all Film and TV students for both animation and live-action projects." The current curriculum "is varied and integrated with both traditional animation and 2D and 3D animation courses at fundamentals, intermediate and advanced levels, as well as storyboarding, titles, optical and digital effects, life drawing and history and criticism classes." Nearly 20 courses are offered as part of the program. Highlights include Action Analysis, Animation: From Pitching to Pipeline to Production, Drawing and Design for Animation, Experimental Animation, Life Drawing: Anatomy, Motion Design & Titles, Special Topics in 3D Computer Animation, Stop Motion Animation, Storyboarding, Visual Effects and Compositing, and Writing for Animation.
Other program highlights include internship opportunities, study abroad experiences, and guest speakers. Past guests have included Frank Thomas, Chuck Jones, Jeffrey Katzenberg, Roy E. Disney, George Griffin, David Polonski, Ed Catmull, Amid Amidi, and Willis Pyle, among others.
Graduates of the Animation program at Tisch have landed jobs at Pixar, DreamWorks, Walt Disney Animation Studios and many others.
3. Rochester Institute of Technology, Rochester, New York
Rochester Institute of Technology (RIT) was born of an unlikely institutional marriage of an influential cultural association, the Rochester Athenaeum (est. 1829), and a technical training school, the Mechanics Institute (est. 1885). The Institute adopted the name Rochester Institute of Technology in 1944 and awarded its first bachelor of science degree in 1955.
Today, RIT serves more than 19,000 students majoring in everything from Art and Design to Urban Community Studies. RIT's College of Imaging Arts and Sciences (CIAS) is home to the nation's first PhD in Imaging Science and the School of Film and Animation (SOFA). SOFA offers BFA and MFA degrees in Film and Animation.
The BFA in Film and Animation is one of the most selective majors at RIT. "All undergraduates share the same first semester, where they immediately begin production in both film and animation, ensuring each student is exposed to each form. "This also gives BFA students time to explore before deciding which to pursue," says the school. Three options are available: 2D Animation, 3D Animation, and Stop Motion.
The 2D Animation Option "begins with character design and progresses through dynamics and sequences. Hand drawing on paper or acetate, using a traditional layering technique, or creating elements originally in 2D software applications are the common options. Then shooting on a crane, bulk scanning the drawings into a computer or animating directly in a software application are the usual production techniques."
The 3D Animation Option covers all aspects of computer animation. "Modeling in Polygons, NURBs and Subdivision surfaces is taught with an emphasis placed on the need to strike a balance between heavy detail and economy of animation. Other areas covered include, character rigging, set construction, dynamics, character animation, particles, and compositing.
Stop Motion "takes student through all aspects involved in creating stop motion films. Students are taught animating technique, wire armature construction and set construction."
The Film and Animation MFA is a three-year program "designed to educate complete filmmakers." Students will "learn the artistic, narrative, technical, historical, and business aspects" of whatever form they choose during the first two years, and then create a thesis project in the third year that can be completed on or off campus. Like BFA students, MFA Animation students will concentrate in either 2D, 3D, or Stop Motion, "but be able to explore the other types of animation."
The MFA is a terminal degree that prepares students for professional careers in the industry or "teach filmmaking in other higher education programs of merit." Top careers for MFA graduates include Director, Documentary Filmmaker, Experimental Artist, Producer, and Visual Effects Supervisor. Top careers for BFA graduates include Character Animator, Effects Animator, 3D Modeling and Character Designer, Art Director, and Experimental Film Artist.
Graduates of RIT's BFA and MFA Film and Animation programs have landed positions at top studios such as Disney Animation Studios, Electronic Arts, DreamWorks, Blue Sky Studios, Nickelodeon, Lucasfilm, Industrial Light and Magic, Paramount, HBO, Rhythm and Hues Studios, and many others.
4. Pratt Institute, Brooklyn, New York
Founded in 1887, Pratt institute serves more than 4,800 students enrolled in over 25 undergraduate degree programs and concentrations and more than 26 graduate degree programs in its Schools of Art, Design, Architecture, Liberal Arts and Sciences, and Information. The Pratt Institute School of Art offers a BFA in Digital Arts and Animation with an Emphasis in Digital Animation and Motion Arts or Interactive Arts. Concentrations include 2D Animation, 3D Animation and Motion Arts, and Interactive Arts. An MFA in Digital Animation and Motion Arts is also available.
The school says students in the BFA programs will "develop aesthetic finesse, technological skill, conceptual sophistication related to digital media, and thorough comprehension of the potential of art and technology." Students also learn to create professional documentation and presentation. Graduates of the program "demonstrate an expertise in their discipline, a unique voice in their medium and knowledge of historical works in art and technology."
Students will create animated films at Myrtle Hall, a LEED Certified Green Building that includes nine state of the art digital studio/classrooms, the Digital Arts Resource Center and Digital Commons flex-space, a High Speed Fibre Channel Network, and Traditional Animation Facilities. An Audio Recording Studio, a Dedicated Green Screen facility, Graduate Studio spaces, 2D/3D Printers and production facility, and the Mediated Digital Arts Gallery are also housed in the building.
Students in the 60 credit hour MFA in Digital Animation and Motion Arts program will have the opportunity to create narrative and non-narrative films using 2D and 3D digital animation techniques, live action and motion graphics. Electives include Storyboarding and Storytelling, Lighting and Rendering, Motion Dynamics, Compositing and Special Effects, Character Design, Character Animation, Matte Painting, and more. Students will complete one year of work on a thesis, which culminates in an exhibition or screening of the completed work and a thesis paper. The MFA in Digital Animation and Motion Arts can be completed in two years.
Pratt School of Art alumni have landed positions at major studios such as Augenblick, Blue Sky, Digital Domain, Cartoon Network Studios, DreamWorks Studios, Curious Pictures, Industrial Light & Magic, Walt Disney Animation Studios, Rhythm and Hues Studios, Walt Disney Animation Studios, Curious Pictures, Gameloft, Sony Imageworks, NBC Universal, Titmouse, and many others.
5. Rensselaer Polytechnic Institute, Troy, New York
Established in 1824, Rensselaer Polytechnic Institute (RPI) serves nearly 8,000 students enrolled in more 100 degree programs through five schools. The School of Humanities, Arts, and Social Sciences (HASS) houses the Department of Art, which offers BS, MFA, and PhD degrees in Electronic Arts (EART).
The school says undergraduate students in the Arts have the opportunity to express themselves with a variety of media from fine art and music to experimental video and animation. Students will select from several concentrations within the BS EART degree to suit their interests. Options include Visual Arts & Animation, Computer Music & Sound Art, Video and Emerging Media, and Art, Technology & Culture.
The Department of Art is a partner in several other cutting-edge majors at Rensselaer, such as Information Technology and Games and Simulation Arts and Sciences. Even if the student is not an arts major, they can still exercise their creativity with one of the schools arts minor programs.
The school says that the BS in EARTS degree is designed to support either a single or dual major option. It is intended for students who want to critically and creatively explore the arts at the intersection of the humanities, and the physical, computational, engineering, and social sciences.
The MFA in EARTS, which is being redesigned, is for students pursuing artistic and academic careers emphasizing electronic media. The 60 credit hour program allows students to create independent works such as multimedia presentations, computer-generated or mediated images, videotapes and installations, performance art, and musical compositions and performances. Graduates of the BS and MFA programs are prepared to seek positions in animation, multimedia arts, design, research, and more.
The school says that the PhD in EARTS was established in 2007 to "fulfill increasing demands for a practice-based interdisciplinary arts doctoral degree within academe [the university], as well as to appeal to students who wish to pursue innovative research that integrates diverse media, performance, science-based and/or social practices, and curatorial studies into their artwork."
The core of the curriculum focuses on the student's creative practice, which is informed by coursework, individual attention from advisors, and culminates in a dissertation that is composed of the dissertation text and practice-based work. Graduates are prepared for academic positions in research-intensive fine arts settings, as well as visual culture, musicology/sound studies, cultural studies, humanities and media studies programs. They are also prepared for careers as artists, composers, curators, and administrators in galleries, museums, performing arts organizations, artist-run centers, and art-science programs and projects.
6. The New School's Parsons School of Design, New York, New York
The New School was founded in 1896 by American Impressionist William Merritt Chase. Back then, the school was known as The Chase School, and later as New York School of Fine and Applied Art. Today, known as The New School/Parsons, this art and design college serves nearly 6,000 students enrolled in 130 degree and diploma programs across five schools including the School of Art and Design History and Theory, School of Art Media and Technology, School of Constructed Environments, School of Design Strategies, and the School of Fashion.
Program options for animators are offered through the School of Art, Media, and Technology (AMT) and include BFA and MFA degrees in Design & Technology. Pathways include Creative Technology and Game Design. Minors in Immersive Storytelling and Comics and Graphic Nature are also available, as well as a related program—the BFA in Art, Media, and Technology, offered at the Parsons Paris Campus.
According to Parson's, the BFA Creative Technology pathway "focuses on methods of combining physical computing, creative coding, user experience, responsive environment, and immersion technology for innovative design solutions." The Game Design pathway "emphasizes the aesthetic aspects of designing games." It provides a set of tools that grows along with students' skills and provides them with an understanding of the game design process, from brainstorming to game publication.
Students in the program will visit industry leaders like the Rockwell Interaction Lab, Eyebeam Art and Technology Center, MTV, Nickelodeon, and Curious Pictures. Other industry partners include Apple, Atari, Human Rights Watch, MTV, Siemens, and UNESCO. Students also have access to the university's extensive libraries, galleries, and state-of-the-art facilities that help students engage their creativity and enable them to showcase their work.
Graduates leave the program prepared for careers in advertising, animation, film, game design, graphic arts, hardware engineering, motion graphics, software design, and virtual reality and immersion experience design.
The full-residency, two-year MFA program is studio based with areas of practice including interaction design, physical computing, game design, new media art, digital fabrication, data visualization, and critical design. In Collaboration Studio courses, students work on real-world projects with industry firms and nonprofits. Past partners include Red Bull, Intel, Apple, Eyebeam, gameLab, Human Rights Watch, Mozilla, NASA, the Red Cross, Samsung, the Whitney Museum of American Art, and the Metropolitan Museum of Art.
MFA graduates go on to establish careers in mobile and application design, Web, UI and UX design, interaction design, new media art, game design, motion graphics, 2D and 3D animation, and digital filmmaking.
7. Syracuse University, Syracuse, New York
Syracuse University (SU) was founded in 1870. The school serves nearly 22,500 students from across the U.S. and 126 countries. The school offers more 200 majors, 100 minors, and 200 advanced degree programs across 13 schools and colleges. The College of Visual and Performing Arts (VPA), Department of Transmedia offers several programs for aspiring animators. Offerings include a BFA in Computer Art and Animation, an MFA in Computer Art, and a Minor in Animation.
The 120 credit hour BFA in Computer Art and Animation "explores the possibilities of digital media within a fine art, exploratory, and culturally aware setting," says the school. The degree program provides instruction in multiple art media where the computer plays the primary role. These media include computer-generated images, 3D computer animation, physical computing, creative computer programming, computer gaming, computer music, and sonic art. Students are mentored to become highly skilled critical thinkers producing art in individual and collaborative contexts.
The 60 credit hour MFA program "is an artistic research and development program situated in the context of technology where students are encouraged to develop a diverse set of practices within computer art." The program covers computer generated imagery, 3D computer animation, physical computing, creative computer programming, computer gaming, computer music, visual effects, multi-channel installation, and sonic art.
Students in the program "are expected to develop a strong record of professional practice in a variety of contexts, including exhibition, screenings, public intervention, installation, performance, workshops, gaming events, and viral media, among other forms of public engagement." Students can expect to complete the MFA program in three years.
Students in both the BFA and MFA programs have access to study abroad programs in 60 countries throughout the world, enabling them "to gain a global perspective as they pursue their studies."
VPA animation graduates have found employment at major studios such as Pixar, Rhythm and Hues, Industrial Light and Magic, LucasArts, Blizzard Entertainment, Tippett Studios, Moving Picture Company, and Sony Pictures Imageworks. Graduates have also presented their work at galleries and media art festivals around the world.
8. Alfred State College, Alfred, New York
Founded in 1908, Alfred State College is part of the State University of New York (SUNY) system. The school serves nearly 3,700 undergraduates enrolled in more than 70 majors in agriculture, allied health, applied technology, architecture & engineering technology, business, and liberal arts and sciences at the baccalaureate, associate and certificate levels. Programs are offered through a number of colleges and departments, including Alfred State College of Technology, Department of Digital Media & Animation.
Here, students can earn an AAS or BS in Digital Media and Animation. The 63 credit hour, four-semester AAS program provides students "with a broad range of technical, creative, and problem-solving skills," says the school, "to facilitate employment in new media and animation."
"At the core of the program is a sequence of studio courses that enhances individual artistic creativity and provides instruction in the traditional arts and industry-standard computer graphics software." Course highlights include Digital Foundations, Interactive Design, Intermediate 3D Animation, Production, Foundations: Form/Space Relationship, Figure and Motion, and Survey of Animation & Visual Effects.
Graduates of the AAS program are prepared to enter the field in a range of areas including animation, fine art, digital imaging, interactive design, media design and more. They may also enter directly into the Digital Media and Animation BS, the Interdisciplinary Studies BTech, or the Technology Management BBA degree program.
The program has an employment and continuing education rate of 100% – 33 percent are employed; 67 percent continued their education.
The Digital Media and Animation BS requires around 123 credit hours of study, including a Senior Seminar, Senior Studio Project, Portfolio Courses, and Studio Tokyo. Studio Tokyo provides the opportunity for students to explore Japanese art, cinema, animation and digital media through a study-abroad program based in Tokyo. Students will create animation and digital media projects in collaboration with local artists, and expand upon their research from the Japanese Media course through screenings and site visits.
A Digital Media & Animation Internship is also part of the program. The course provides students with practical application of skills in the Digital Media and Animation major. The internship provides valuable real-life experience while extending the skills of the student towards various businesses, organizations, and professionals.
Graduates of the program are prepared to seek positions in animation, digital imaging, fine art, interactive media, media design, and many other areas. The program has a 100% employment and continuing education rate, meaning 100% of graduates are employed or enrolled in graduate programs.
9. New York Institute of Technology (NYIT), New York, New York
Founded in 1955, New York Institute of Technology (NYIT) serves 9,000 students representing nearly all 50 states and 100 countries. The school offers more than 90 technology-infused undergraduate, graduate, and professional programs in disciplines ranging from architecture and design to the STEM fields. Programs for aspiring animators are offered through the College of Arts & Sciences' Department of Digital Art and Design, where, the school says, "the founders of Pixar got their start." Options include a BFA in Digital Arts and an MFA in Digital Art & Design – Animation.
Program highlights include "HIVE," a unique research-studio environment where students creatively explore, innovate, and solve problems using motion capture, gaming, 3-D printing, and state-of-the-art graphics hardware and software and industry connections through internships, workshops, seminars an artist-in-residence program. Students also make connections through juried events such as the annual NYIT Animation Festival.
In addition to the BFA and MFA programs, NYIT offers a special Graphic Design & 3D Animation/Game Design Workshop. Students receive hands-on experience with the latest technologies in state-of-the-art facilities and gain insights into art, design, and technology while exploring techniques of visual communication and producing portfolio-ready artwork.
The program includes exposure to the digital art and design industry through a site visit to a professional design studio in New York City as well as guest critiques from industry professionals, an immersive academic experience of the graphic design and digital arts majors at NYIT's Department of Digital Art & Design, and one NYIT college credit per week of attendance.
Graduates of the degree programs and those who complete the will leave the programs with a professional portfolio that showcases their best work.
10. Queens College, Queens, New York
Founded in 1937, Queens College (QC) is part of the City University of New York (CUNY) system. The school, which serves more than 19,000 students from nearly 170 countries, offers bachelor's and master's degrees in over 170 areas through four Divisions. The Division of Arts and Humanities consists of 11 departments including the Art Department, which offers a BFA in Design with a Concentration in Animation & Illustration and a 21 credit hour Minor in Design.
Students can "specialize in techniques and approaches that prepare them for a multitude of design-based careers, including graphic designers, software and web developers, animators, marketing and advertising specialists, or product designers," says the school. The program also has an "extensive network of internships that allow students to get real-world experience as a designer while receiving college credit and building their resume."
Course highlights include Digital Animation, Traditional Animation, 3D Modeling, 3D Animation, Illustration, Motion Graphics, Video Graphics and Compositing, Storyboarding and Storytelling, Game Design, Shoot, Edit, Post, Digital Moviemaking, Digital Imaging, Pixel-Based Imagery, and Vector-Based Imagery. Students will also complete a portfolio of their best work.
Short Animation Contest
We are proud to announce our first short animation contest of 2019.
View contest gallery More info
© 2020Animation Career ReviewCompany info


text:
A bill to broaden protections for adult victims of labor trafficking and pimping passed the state Legislature on Friday and now awaits Gov. Jerry Brown's approval.
The bill is one of four introduced by Assemblyman Jordan Cunningham of Templeton that seek to combat the trafficking of people for the purposes of sex crimes and forced labor.
Cunningham, who represents San Luis Obispo and northern Santa Barbara counties, has called the Central Coast "the front lines in the fight against trafficking" due to Highway 101.
Brown has until Sept. 30 to sign or veto the bill.
Human trafficking is a widespread concern that advocates and law enforcement officials say is on the rise throughout Fresno. Three women tell their stories of horror, survival and healing.
By Aleksandra Appleton
Current state law allows a judge to issue a 10-year protective order for a victim of trafficking after a conviction only if the victim is a minor. Cunningham's bill, which passed through the state Senate with a unanimous vote Friday, would authorize protection orders for adult victims of labor trafficking and pimping for up to ten years.
"Human trafficking is a heinous crime that must be stopped," Cunningham said. "Since taking office, I have led the charge to protect innocent victims and increase penalties for traffickers. Victims deserve to feel safe and be protected from their former abusers."
The bill was supported by Crime Victims United, the California District Attorneys Association, the California Police Chiefs Association and the California State Sheriffs' Association.
Among the bills in Cunningham's anti-human trafficking package, two died in committee. One, according to Cunningham, would have simplified the legal definition pandering, and another would have required 20-year registration in California's sex offender registry for anyone convicted of the actual commission or soliciting of a sexual act with a minor if the person knew the victim was both underage and being trafficked.
A third bill, which provides more leeway to prosecutors in presenting jurors with past statements made by victims of human trafficking, was signed by the governor in July.
https://www.sanluisobispo.com/news/local/article217421695.html
August 27, 2018 / In the News

redpajama_set_name: RedPajamaCommonCrawl


text:
Werk press
Home Architecture Jesse Reiser and Nanako Umemoto by Andrew Benjamin
Jesse Reiser and Nanako Umemoto by Andrew Benjamin
Jesse Reiser and Nanako Umemoto have already produced a body of work that has exerted great influence on the practice of contemporary architecture. While that work reflects the current fascination with form generation that developed with the incorporation of animation software into the practice of design, their interest lies far more in the relation between materials and forces. Not just the potentiality of materials or the inescapable hold of gravity, forces can be understood as involving the urban field and programmatic conditions. Reiser argues that in an "idealist architecture, such as Mies van der Rohe's, geometry seeks to transcend the accidents of matter. What we are doing is releasing potentials within matter understood as an abstract machine." While abstraction looks like it stands opposed both to matter and to architecture's need to be specific, this is not the case. To allow for abstraction is to allow for a conception of form generation that resists the impulse for instrumentalization on the one hand and simple idealism on the other, focusing instead on the potential inherent in materials and forces. Potential can only ever be realized when that in which it inheres is initially understood as abstract. In arguing against idealism, Reiser identifies what is unique to the firm's undertaking. Many architects committed to the computer remain distanced from a sustained investigation of material possibilities. For Reiser and Umemoto, the choice is not between the computer on the one hand and tectonics combined with drawing on the other. In their work, not only does the implicit geometry of material inform tectonics, not only are materials able to register forces, but these elements cohere in the production of architecture.
All of these elements come together in Reiser and Umemoto's recent work. In the East River Corridor Project in New York, for example, their concern was to analyze a site in such a way that a generative potential would already be at work in the object's organization. While this is simply a description, what it allows is an easy transition to a discussion of materials. In other instances, what is always central is that the productive potential lies in the quality of the object and not in an ulterior concern that is brought to it. In their built work, competition entries, publications, and sustained pedagogical commitment, Reiser and Umemoto are at the forefront of innovation within the practice of contemporary architecture.
Andrew Benjamin How do you understand the relationship between architecture and materials? If there are changes in the materials, how do you adapt the architecture to them? Or do you think that the architecture should determine the materials?
Jesse Reiser Well, it's an interesting question. The popular conception of the development of architecture relative to the development of technologies and the material developments that accompany them acts more or less as a baseline for any serious practice in architecture, which is to say that at least we have a modernist framework. There is a general acceptance of developments within material technologies, but typically those get incorporated into models of design that are already fairly known. In other words, many times you'll simply see the same modernist organizational principles acquiring a new material sheath.
AB And so those materials are not exploited for their potential. They are in some sense restricted by the same old envelope or deployed in the same old way.
JR Right. The material becomes more or less coded into the architecture, and the way it is deployed becomes symbolic. The internal developments of the material wouldn't necessarily be exploited. What I find more interesting than the material innovation per se is the way in which we as designers can begin to harness the abstract potential of the material systems—meaning that it's not the use of a new material in a building that is of greatest interest to me, but rather that the matter itself, as a dynamic substance and principle, can actually inform the way we begin to conceive of how buildings can be organized. So it's not entirely about the literal use of the material, although at the end of the day that finally has to happen if you're talking about an actual building. It's more about how we begin to understand the relationship of matter and force in a design process.
AB Okay, let's take that point a step further. What is an abstract potential? I understand that it's a possibility that is there in the material, but I think this opens up questions that have to do with experimentation and research and architectural theory. So tell me a bit more about what an abstract potential would be.
JR In the design process, you have to find a kind of currency within architecture, some vehicle to express change in the development of a project. And that currency is generally manifest for us in the way that geometry and materials work with each other. So in contrast to a more classical way of thinking, in which a geometric diagram defines the lineaments of a building, here we are looking at the way in which matter and force can inform geometry and actually begin to develop a notion of organization within space that's based on those issues.
AB Is this development and organization only possible if one uses computers and specific programs, such as animation or CAD software? How much of this has been realized only because it's possible with a computer?
JR Well, these kinds of issues have become thematic to a generation because of the advent of the software and the computer. But there is more to "computing" than the actual boxes sitting in our office. One of the things that we find very interesting in our practice is that we can make models that are actually physical analogues that compute themselves; the model is equally a kind of computer. That doesn't mean that we're rejecting the computer. Far from it; we use computers every day in our practice. But we find a very productive relationship between physical modeling and certain kinds of modeling that index forces in a literal way and how those inform our practice and the design we're making. What I mean by indexing is that we set up models that are sensitive to external forces, gravity among them. Using these models allows us, first of all, to understand the structural capacities of the design we are generating and, more importantly, to register a wide range of influences, both programmatic and organizational.
Previous article Reforming Space by Jaclyn Alexander
Next article Jesús Tenreiro-Degwitz by Carlos Brillembourg
Another Bilbao! by Carlos Brillembourg
James Casebere by Roberto Juarez
Raimund Abraham by Carlos Brillembourg
Fruit and Vegetable Juice: How Food Affects Health
Fruit juices may seem like nutritious sources of vitamins and minerals, but they are super-concentrated in naturally occurring sugar. And commercial...
Guide to Cuyahoga Valley National Park near Cleveland, Ohio
Protect Your Child from Breast Cancer with High-Fiber Diet
Kurtkamm LTD digital universe is the first stop for savvy readers. Our website is the companion tool for smart internet readers. For cities around the globe, travellers can find things to do, places to eat, where to shop, entertainment options and event happenings. Timely stories and blog content, plus a resource of 50,000+ things to do for people, coupled with our funny blogs, makes us a a useful resource to today's audience.
Contact us: support@kurtkamm.com
Wireless 'Pacemaker For The Brain' Could Offer New Treatment For Neurological...
Surprising eSwatini (Swaziland): culture, safari and vast, unspoilt landscapes
A Surprising Trick to Get Kids to Eat More Veggies
Copyright © 2019 | All Right Reserved | support@kurtkamm.com


I have gone on my rants about band members feuding and refusing to play with each other, but today I thought my blog would reflect groups that remain in tact today.
The Rolling Stones: One of the biggest selling groups of all time is the Rolling Stones, a group of guys who have vowed to stay together till death and after more than 50 years of making music and selling out arenas they stand true to their pledge.
The Who: While they lost drummer Keith moon in 1978 and bassist John Entwistle in 2002, the core of Pete Townsend and Roger Daltry continue in a group that like the Stones, have been rocking for over 50 years.
ZZ Top: The trio of Billy Gibbons Frank Beard and Dusty Hill have sold over 50 million records and have been together since 1969.
Rush: The original drummer John Rutsey left before the band hit its stride, the nucleus of Geddy Lee, Neil Peart and Alex Lifeson remain friends and bandmates.
Aerosmith: They had a few lineup changes but everyday came back and the best selling rock band of all time is still together.
U2: Since 1978 the core of Bono, the Edge ,Adam Clayton and Larry Mullen Jr have enjoyed success beyond their wildest dreams, they have sold more the 150 million albums in their continued run as friends and band mates.
I know there is a lot of band politics and like a marriage things can turn bad, but give the above mentioned some credit for learning to get along and respect each other for so many years.


text:
Sibiryak may refer to:
Sibiryak, Russian word denoting an inhabitant of Siberia, as well as a member of the subethnic group of the Russians
Sybirak, a Polish term for a person exiled to Siberia by the Russian Empire or by the Soviet Union
Sibiryak (rural locality), several rural localities in Russia
Sibirjak, Novosibirsk-Moscow-Berlin express train
Sibiriak (horse), a horse from the Soviet Union that took part in 1964 Summer Olympics
Dmitry Mamin-Sibiryak, Russian writer
FC Sibiryak Bratsk, a Russian association football club based in Bratsk, Irkutsk Oblast

redpajama_set_name: RedPajamaWikipedia


text:
Curtis Hunt's Image Selection
Heavy Burden
gelatin silver print on paper
7 15/16 in x 9 15/16 in (20.16 cm x 25.24 cm)
Gift of Mr. & Mrs. Edward M. Strauss
View Object Record
Cracked Glass with Boy - Colorado, from "Portfolio of 15 Photographs"
16 in. x 19 15/16 in. ( 40.7 cm x 50.7 cm )
Gift of Gerald Lotenberg
A Flooded Street, Wilkes-Barre, PA, USA
8 x 10 in. ( 20.32 x 25.4 cm )
Gift of Thomas Wilson '79 and Jill Garling '80
9 15/16 in x 8 1/16 in (25.24 cm x 20.48 cm);14 5/16 in x 19 5/16 in (36.35 cm x 49.05 cm);9 15/16 in x 8 1/16 in (25.24 cm x 20.48 cm);9 11/16 in x 7 5/8 in (24.61 cm x 19.37 cm)
8 in x 9 15/16 in (20.32 cm x 25.24 cm);14 5/16 in x 19 5/16 in (36.35 cm x 49.05 cm);8 in x 9 15/16 in (20.32 cm x 25.24 cm);7 3/16 in x 9 3/4 in (18.26 cm x 24.77 cm)
Forced March to the Front between Lonié and Mitulen
Arm and Ventilator, New York
7 5/8 in x 9 1/16 in (19.37 cm x 23.02 cm)
Gift of Maxine and Lawrence K. Snider
Clifford Vaughs, another SNCC photographer, is arrested by the National Guard
11 in x 14 in (27.94 cm x 35.56 cm);8 ¾ in x 12 ⅞ in (22.23 cm x 32.7 cm)
March on Washington, [SNCC members and friends defiantly gather to sing freedom songs], from "Memories of the Southern Civil Rights Movement"
14 x 11 in. ( 35.56 x 27.94 cm )
The mass meeting in Danville is so crowded that it overflows out into the yard. When word arrives that heavily armed police and an armored vehicle are waiting up the road, the crowd disperses, leaving the SNCC workers to exit last, from "Memories of the Southern Civil Rights Movement"
10 7/8 in x 13 11/16 in (27.62 cm x 34.77 cm)
Gift of Mr. and Mrs. Douglas M. Kenyon
0 Tags & 0 Keywords

11 Collection Object Sources
Heavy Burden (1985/1.125.7)
Cracked Glass with Boy - Colorado, from "Portfolio of 15 Photographs" (1981/2.194.2)
A Flooded Street, Wilkes-Barre, PA, USA (2014/2.327)
The Swing (1985/1.125.6)
Transport (1985/1.125.8)
Forced March to the Front between Lonié and Mitulen (1985/1.125.9)
Arm and Ventilator, New York (2013/2.296)
Clifford Vaughs, another SNCC photographer, is arrested by the National Guard (2016/2.456)
March on Washington, [SNCC members and friends defiantly gather to sing freedom songs], from "Memories of the Southern Civil Rights Movement" (2014/2.322)
The mass meeting in Danville is so crowded that it overflows out into the yard. When word arrives that heavily armed police and an armored vehicle are waiting up the road, the crowd disperses, leaving the SNCC workers to exit last, from "Memories of the Southern Civil Rights Movement" (2014/2.321)
Untitled (1983/2.148)
AVG: 0 | Ratings: 0
Curtis Peter Hunt
Other Resources by this Author
All Rights Reserved (
February 16, 2019 12:52 p.m.
Reporting Policy


In the words of Tyanni Douglas, the son of former PM Rosie Douglas, the socioeconomic situation in Portsmouth can be described as a" human crisis." Several weeks ago a team of MiTC reporters took a trip down to Portsmouth where our team interacted with a number of residents. From our own findings the pain and the depression in Portsmouth is indeed of great concern and we now understand why the PM is now desperately conducting back to back Red Clinics in the town of Portsmouth. The people of Portsmouth may not be as vocal as they should but the burgeoning unemployment coupled with the flood of Haitian refugees in Portsmouth is taking its toll.
In this moment of agony it may seem graceless or insensitive to remind the people of Portsmouth of their foolish loyalty to a gang of wolves who for 19 years have offered them nothing but failed economic policies, unfulfilled promises and an overdose of mendacity. In fact 8 out of 10 people in Portsmouth today will proudly declare that their parliamentary representative Ian Douglas (Tu Ju Su) is a waste of time and through 3 election cycles a vote for Ian Douglas had been a vote for Roosevelt Skerrit the parliamentary Representative for the Vielle Case constituency. Since a vote for Ian meant a vote for Skerrit are the people of Portsmouth willing to accept that the "human crisis " now occurring in Portsmouth is the handy work of Roosevelt Skerrit the con artist? Will the Portsmouth people finally remove those convenient blinders and stop allowing themselves to be used by a group of self-serving kleptocrats headed by a conniving imposter.
Young Man- Sharle (Shall) that tie his cow inside their wee.
At the moment we thought the young man was asking us for permission (Shall) to tie his cow on the compound so our response was.
MiTC – Sir we are not representatives from the government we can't give you permission to tie your cow on the compound.
Young Man- "No I am not asking you to tie my cow inside there nuh, what I am telling you is that there is a man by the name of Sharle, he is the one that ties his cow inside the coffee factory.
By the time we understood that "Sharle" was an individual it became clear to us that the young man wanted to exculpate himself from what he thought we had seen inside the abandoned coffee factory. The sad truth is we saw signs that cows were being sheltered inside the abandoned coffee factory. In addition to the disgraceful and unsightly abandonment of brand new and never used coffee processing equipment , broken doors, missing roof there was evident of cow down(cow poop) on various sections of the coffee factory building.
The story of cow poop in the abandoned coffee factory at One Mile Portsmouth is again another example of the total let down and the afflictive failure of the Roosevelt Skerrit administration to provide economic security for the people of Portsmouth and surrounding. The Coffee factory was a US $12 Million gift by President Hugo Chavez. This gift was supposed to emulate the economic model of the famed Blue Mountain Coffee , one that would sustain large scale employment and economic opportunities not just for the people of Portsmouth but for coffee growers throughout the island.
MiTC has done several articles on the coffee factory. We have exposed the corruption and money laundering that took place during the construction of the facility. There was high day disappearance of over a hundred thousand dollars' worth of building material from the construction project and there were a number of letters and inquirieson this matter within the ministry of agriculture and the PM's office and Dr. Toussaint as DLP operative and main Liaison for the VENIDOM Corporation is yet to explain how the material disappeared. We also reported on the movement of cash in and out of the airport by some of the Venezuelans who were connected to VENIDOM and the construction of the Coffee factory. We know that Custom and Port security at the time were programmed to "Walk with their Eyes close" as the Venezuelans moved briefcases of cash in and out of Dominica.
The VENIDOM Corporation is a body made up of Labor Party cronies and corrupt accomplices of the Maduro cabal. The corporation was set up to manage and operate the coffee factory. From what we have seen in all our investigations the VENIDOM Corporation is nothing more than another setup for these corrupt and selfish operatives to enrich themselves using the Petro Caribe program as the conduit to launder cash. What we have also noticed is that the VENIDOM Corporation is inextricably tied to Reginald Austrie's proverbial tattoo, the Petro Caribe operations in Dominica. We know for a fact that it was Venezuelans wearing Petro Caribe uniform who came to Portsmouth to ask the Samaritan Purse to vacate the coffee factory building after the Samaritan Purse was given permission to store hurricane relief material inside the coffee factory.
After 8 years, US $12 Million in construction funding and over $5 Million in imported coffee beans, not one coffee bean has been processed at the facility in Portsmouth. According to the DLP apologists the coffee factory was supposed to bring considerable economic relief to the area. In fact at a 2013 debate at the Dominica State College, the former Ambassador to Venezuela Dr. Philbert Aaron argued that the geothermal plant and the coffee factory would be the only way forward for the Dominican economy. Needless to say both the coffee factory and the geothermal plant have been absolute failures.
A good Doctor and patient relationship should include open discussion on causative issues and the preventative measures. As the people of Portsmouth are being set up for the one day fixes at Skerrit's Red Clinic, they should be prepared to ask the Red Clinic doctor to explain why it is that after seven years, the Coffee factory has not processed one grain of coffee and has not provided the economic health benefits that were promised – not even one of the 300 jobs promised.
Mr. Skerrit, the Red Clinic Doctor and medicine dispenser should also be asked to explain why after 11 years the Morocco hotel in Portsmouth is yet to be completed. It would also be quite appropriate to ask Mr. Skerrit to explain how he was able to complete 8 Villas in Savane Pailles and one mansion in Vielle Case within a five year period whereas his government cannot complete an 80 Room hotel in 11 years. The Red Clinic doctor should also explain how in just a few months he was able to bring in all his marble and some other architectural finishes for his private dwelling house all the way from Morocco whereas it is now more than 5 years since Ian Douglas told us that the Moroccans left Dominica to get the architectural finishes for the Morocco Hotel project.
It would be great if the young people would ask the Red Clinic Doctor to also explain how it is that for almost 20 years of a DLP administration, the Cabrits Cruise Ship facility sat as a white elephant in the town of Portsmouth-the most loyal Labor Party constituency. The Red Clinic doctor should explain why there were no improvements let alone expansion of the facility so the people in Portsmouth and it's environ could enjoy the fruits of a vibrant and healthy cruise tourism sector. Today the cruise ship facility is in a dilapidated state with a leaky roof and unkempt condition. It is quite disheartening and shameful to say the least.
The Portsmouth people have also been told that 4 other Universities have expressed interest in the Ross University campus. It is quite interesting that while the people of Portsmouth have been promised 4 other Universities, the 8 Villas allegedly owned by the Red Clinic doctor and which served as residence for Ross University professors and other administrative personnel have allegedly been sold to a mysterious buyer. If the police would let me in to see the Red Clinic doctor I would ask him why he sold the villas while other rental owners in Portsmouth are suffering; god forbid some on the brink of suicide.
Is it true Roosevelt sell villas to range development under bubbles nose?


text:
"""The tests for the Template fan platform."""
import pytest
import voluptuous as vol

from homeassistant import setup
from homeassistant.components.fan import (
    ATTR_DIRECTION,
    ATTR_OSCILLATING,
    ATTR_PERCENTAGE,
    ATTR_PRESET_MODE,
    ATTR_SPEED,
    DIRECTION_FORWARD,
    DIRECTION_REVERSE,
    SPEED_HIGH,
    SPEED_LOW,
    SPEED_MEDIUM,
    SPEED_OFF,
)
from homeassistant.const import STATE_OFF, STATE_ON, STATE_UNAVAILABLE

from tests.common import assert_setup_component, async_mock_service
from tests.components.fan import common

_TEST_FAN = "fan.test_fan"
# Represent for fan's state
_STATE_INPUT_BOOLEAN = "input_boolean.state"
# Represent for fan's state
_STATE_AVAILABILITY_BOOLEAN = "availability_boolean.state"
# Represent for fan's speed
_SPEED_INPUT_SELECT = "input_select.speed"
# Represent for fan's preset mode
_PRESET_MODE_INPUT_SELECT = "input_select.preset_mode"
# Represent for fan's speed percentage
_PERCENTAGE_INPUT_NUMBER = "input_number.percentage"
# Represent for fan's oscillating
_OSC_INPUT = "input_select.osc"
# Represent for fan's direction
_DIRECTION_INPUT_SELECT = "input_select.direction"

@pytest.fixture
def calls(hass):
    """Track calls to a mock service."""
    return async_mock_service(hass, "test", "automation")

# Configuration tests #
async def test_missing_optional_config(hass, calls):
    """Test: missing optional template is ok."""
    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, None, None, None, None, None)

async def test_missing_value_template_config(hass, calls):
    """Test: missing 'value_template' will fail."""
    with assert_setup_component(0, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    assert hass.states.async_all() == []

async def test_missing_turn_on_config(hass, calls):
    """Test: missing 'turn_on' will fail."""
    with assert_setup_component(0, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    assert hass.states.async_all() == []

async def test_missing_turn_off_config(hass, calls):
    """Test: missing 'turn_off' will fail."""
    with assert_setup_component(0, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "turn_on": {"service": "script.fan_on"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    assert hass.states.async_all() == []

async def test_invalid_config(hass, calls):
    """Test: missing 'turn_off' will fail."""
    with assert_setup_component(0, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "platform": "template",
                "fans": {
                    "test_fan": {
                        "value_template": "{{ 'on' }}",
                        "turn_on": {"service": "script.fan_on"},
                    }
                },
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    assert hass.states.async_all() == []

# End of configuration tests #

# Template tests #
async def test_templates_with_entities(hass, calls):
    """Test tempalates with values from other entities."""
    value_template = """
        {% if is_state('input_boolean.state', 'True') %}
            {{ 'on' }}
        {% else %}
            {{ 'off' }}
        {% endif %}
    """

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": value_template,
                            "percentage_template": "{{ states('input_number.percentage') }}",
                            "speed_template": "{{ states('input_select.speed') }}",
                            "preset_mode_template": "{{ states('input_select.preset_mode') }}",
                            "oscillating_template": "{{ states('input_select.osc') }}",
                            "direction_template": "{{ states('input_select.direction') }}",
                            "speed_count": "3",
                            "set_percentage": {
                                "service": "script.fans_set_speed",
                                "data_template": {"percentage": "{{ percentage }}"},
                            },
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_OFF, None, 0, None, None, None)

    hass.states.async_set(_STATE_INPUT_BOOLEAN, True)
    hass.states.async_set(_SPEED_INPUT_SELECT, SPEED_MEDIUM)
    hass.states.async_set(_OSC_INPUT, "True")
    hass.states.async_set(_DIRECTION_INPUT_SELECT, DIRECTION_FORWARD)
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, SPEED_MEDIUM, 66, True, DIRECTION_FORWARD, None)

    hass.states.async_set(_PERCENTAGE_INPUT_NUMBER, 33)
    await hass.async_block_till_done()
    _verify(hass, STATE_ON, SPEED_LOW, 33, True, DIRECTION_FORWARD, None)

    hass.states.async_set(_PERCENTAGE_INPUT_NUMBER, 66)
    await hass.async_block_till_done()
    _verify(hass, STATE_ON, SPEED_MEDIUM, 66, True, DIRECTION_FORWARD, None)

    hass.states.async_set(_PERCENTAGE_INPUT_NUMBER, 100)
    await hass.async_block_till_done()
    _verify(hass, STATE_ON, SPEED_HIGH, 100, True, DIRECTION_FORWARD, None)

    hass.states.async_set(_PERCENTAGE_INPUT_NUMBER, "dog")
    await hass.async_block_till_done()
    _verify(hass, STATE_ON, None, 0, True, DIRECTION_FORWARD, None)

async def test_templates_with_entities_and_invalid_percentage(hass, calls):
    """Test templates with values from other entities."""
    hass.states.async_set("sensor.percentage", "0")

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "percentage_template": "{{ states('sensor.percentage') }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        },
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None)

    hass.states.async_set("sensor.percentage", "33")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, SPEED_LOW, 33, None, None, None)

    hass.states.async_set("sensor.percentage", "invalid")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, None, 0, None, None, None)

    hass.states.async_set("sensor.percentage", "5000")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, None, 0, None, None, None)

    hass.states.async_set("sensor.percentage", "100")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

    hass.states.async_set("sensor.percentage", "0")
    await hass.async_block_till_done()

    _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None)

async def test_templates_with_entities_and_preset_modes(hass, calls):
    """Test templates with values from other entities."""
    hass.states.async_set("sensor.preset_mode", "0")

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "preset_modes": ["auto", "smart"],
                            "preset_mode_template": "{{ states('sensor.preset_mode') }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        },
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, None, None, None, None, None)

    hass.states.async_set("sensor.preset_mode", "invalid")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, None, None, None, None, None)

    hass.states.async_set("sensor.preset_mode", "auto")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, "auto", None, None, None, "auto")

    hass.states.async_set("sensor.preset_mode", "smart")
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, "smart", None, None, None, "smart")

    hass.states.async_set("sensor.preset_mode", "invalid")
    await hass.async_block_till_done()
    _verify(hass, STATE_ON, None, None, None, None, None)

async def test_template_with_unavailable_entities(hass, calls):
    """Test unavailability with value_template."""

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'unavailable' }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()
    assert hass.states.get(_TEST_FAN).state == STATE_OFF

async def test_template_with_unavailable_parameters(hass, calls):
    """Test unavailability of speed, direction and oscillating parameters."""

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "speed_template": "{{ 'unavailable' }}",
                            "oscillating_template": "{{ 'unavailable' }}",
                            "direction_template": "{{ 'unavailable' }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, None, 0, None, None, None)

async def test_availability_template_with_entities(hass, calls):
    """Test availability tempalates with values from other entities."""

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "availability_template": "{{ is_state('availability_boolean.state', 'on') }}",
                            "value_template": "{{ 'on' }}",
                            "speed_template": "{{ 'medium' }}",
                            "oscillating_template": "{{ 1 == 1 }}",
                            "direction_template": "{{ 'forward' }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    # When template returns true..
    hass.states.async_set(_STATE_AVAILABILITY_BOOLEAN, STATE_ON)
    await hass.async_block_till_done()

    # Device State should not be unavailable
    assert hass.states.get(_TEST_FAN).state != STATE_UNAVAILABLE

    # When Availability template returns false
    hass.states.async_set(_STATE_AVAILABILITY_BOOLEAN, STATE_OFF)
    await hass.async_block_till_done()

    # device state should be unavailable
    assert hass.states.get(_TEST_FAN).state == STATE_UNAVAILABLE

async def test_templates_with_valid_values(hass, calls):
    """Test templates with valid values."""
    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "speed_template": "{{ 'medium' }}",
                            "oscillating_template": "{{ 1 == 1 }}",
                            "direction_template": "{{ 'forward' }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_ON, SPEED_MEDIUM, 66, True, DIRECTION_FORWARD, None)

async def test_templates_invalid_values(hass, calls):
    """Test templates with invalid values."""
    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'abc' }}",
                            "speed_template": "{{ '0' }}",
                            "oscillating_template": "{{ 'xyz' }}",
                            "direction_template": "{{ 'right' }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    _verify(hass, STATE_OFF, None, 0, None, None, None)

async def test_invalid_availability_template_keeps_component_available(hass, caplog):
    """Test that an invalid availability keeps the device available."""

    with assert_setup_component(1, "fan"):
        assert await setup.async_setup_component(
            hass,
            "fan",
            {
                "fan": {
                    "platform": "template",
                    "fans": {
                        "test_fan": {
                            "value_template": "{{ 'on' }}",
                            "availability_template": "{{ x - 12 }}",
                            "speed_template": "{{ states('input_select.speed') }}",
                            "preset_mode_template": "{{ states('input_select.preset_mode') }}",
                            "oscillating_template": "{{ states('input_select.osc') }}",
                            "direction_template": "{{ states('input_select.direction') }}",
                            "turn_on": {"service": "script.fan_on"},
                            "turn_off": {"service": "script.fan_off"},
                        }
                    },
                }
            },
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    assert hass.states.get("fan.test_fan").state != STATE_UNAVAILABLE

    assert "TemplateError" in caplog.text
    assert "x" in caplog.text

# End of template tests #

# Function tests #
async def test_on_off(hass, calls):
    """Test turn on and turn off."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # verify
    assert hass.states.get(_STATE_INPUT_BOOLEAN).state == STATE_ON
    _verify(hass, STATE_ON, None, 0, None, None, None)

    # Turn off fan
    await common.async_turn_off(hass, _TEST_FAN)

    # verify
    assert hass.states.get(_STATE_INPUT_BOOLEAN).state == STATE_OFF
    _verify(hass, STATE_OFF, None, 0, None, None, None)

async def test_on_with_speed(hass, calls):
    """Test turn on with speed."""
    await _register_components(hass)

    # Turn on fan with high speed
    await common.async_turn_on(hass, _TEST_FAN, SPEED_HIGH)

    # verify
    assert hass.states.get(_STATE_INPUT_BOOLEAN).state == STATE_ON
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 100
    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

async def test_set_speed(hass, calls):
    """Test set valid speed."""
    await _register_components(hass, preset_modes=["auto", "smart"])

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's speed to high
    await common.async_set_speed(hass, _TEST_FAN, SPEED_HIGH)

    # verify
    assert hass.states.get(_SPEED_INPUT_SELECT).state == SPEED_HIGH
    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

    # Set fan's speed to medium
    await common.async_set_speed(hass, _TEST_FAN, SPEED_MEDIUM)

    # verify
    assert hass.states.get(_SPEED_INPUT_SELECT).state == SPEED_MEDIUM
    _verify(hass, STATE_ON, SPEED_MEDIUM, 66, None, None, None)

    # Set fan's speed to off
    await common.async_set_speed(hass, _TEST_FAN, SPEED_OFF)

    # verify
    assert hass.states.get(_SPEED_INPUT_SELECT).state == SPEED_OFF
    _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None)

async def test_set_percentage(hass, calls):
    """Test set valid speed percentage."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's percentage speed to 100
    await common.async_set_percentage(hass, _TEST_FAN, 100)

    # verify
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 100

    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

    # Set fan's percentage speed to 66
    await common.async_set_percentage(hass, _TEST_FAN, 66)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 66

    _verify(hass, STATE_ON, SPEED_MEDIUM, 66, None, None, None)

    # Set fan's percentage speed to 0
    await common.async_set_percentage(hass, _TEST_FAN, 0)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 0

    _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None)

    # Set fan's percentage speed to 50
    await common.async_turn_on(hass, _TEST_FAN, percentage=50)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 50

    _verify(hass, STATE_ON, SPEED_MEDIUM, 50, None, None, None)

async def test_increase_decrease_speed(hass, calls):
    """Test set valid increase and derease speed."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's percentage speed to 100
    await common.async_set_percentage(hass, _TEST_FAN, 100)

    # verify
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 100

    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

    # Set fan's percentage speed to 66
    await common.async_decrease_speed(hass, _TEST_FAN)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 66

    _verify(hass, STATE_ON, SPEED_MEDIUM, 66, None, None, None)

    # Set fan's percentage speed to 33
    await common.async_decrease_speed(hass, _TEST_FAN)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 33

    _verify(hass, STATE_ON, SPEED_LOW, 33, None, None, None)

    # Set fan's percentage speed to 0
    await common.async_decrease_speed(hass, _TEST_FAN)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 0

    _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None)

    # Set fan's percentage speed to 33
    await common.async_increase_speed(hass, _TEST_FAN)
    assert int(float(hass.states.get(_PERCENTAGE_INPUT_NUMBER).state)) == 33

    _verify(hass, STATE_ON, SPEED_LOW, 33, None, None, None)

async def test_set_invalid_speed_from_initial_stage(hass, calls):
    """Test set invalid speed when fan is in initial state."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's speed to 'invalid'
    await common.async_set_speed(hass, _TEST_FAN, "invalid")

    # verify speed is unchanged
    assert hass.states.get(_SPEED_INPUT_SELECT).state == ""
    _verify(hass, STATE_ON, None, 0, None, None, None)

async def test_set_invalid_speed(hass, calls):
    """Test set invalid speed when fan has valid speed."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's speed to high
    await common.async_set_speed(hass, _TEST_FAN, SPEED_HIGH)

    # verify
    assert hass.states.get(_SPEED_INPUT_SELECT).state == SPEED_HIGH
    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

    # Set fan's speed to 'invalid'
    await common.async_set_speed(hass, _TEST_FAN, "invalid")

    # verify speed is unchanged
    assert hass.states.get(_SPEED_INPUT_SELECT).state == SPEED_HIGH
    _verify(hass, STATE_ON, SPEED_HIGH, 100, None, None, None)

async def test_custom_speed_list(hass, calls):
    """Test set custom speed list."""
    await _register_components(hass, ["1", "2", "3"])

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's speed to '1'
    await common.async_set_speed(hass, _TEST_FAN, "1")

    # verify
    assert hass.states.get(_SPEED_INPUT_SELECT).state == "1"
    _verify(hass, STATE_ON, "1", 33, None, None, None)

    # Set fan's speed to 'medium' which is invalid
    await common.async_set_speed(hass, _TEST_FAN, SPEED_MEDIUM)

    # verify that speed is unchanged
    assert hass.states.get(_SPEED_INPUT_SELECT).state == "1"
    _verify(hass, STATE_ON, "1", 33, None, None, None)

async def test_preset_modes(hass, calls):
    """Test preset_modes."""
    await _register_components(
        hass, ["off", "low", "medium", "high", "auto", "smart"], ["auto", "smart"]
    )

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's preset_mode to "auto"
    await common.async_set_preset_mode(hass, _TEST_FAN, "auto")

    # verify
    assert hass.states.get(_PRESET_MODE_INPUT_SELECT).state == "auto"

    # Set fan's preset_mode to "smart"
    await common.async_set_preset_mode(hass, _TEST_FAN, "smart")

    # Verify fan's preset_mode is "smart"
    assert hass.states.get(_PRESET_MODE_INPUT_SELECT).state == "smart"

    # Set fan's preset_mode to "invalid"
    await common.async_set_preset_mode(hass, _TEST_FAN, "invalid")

    # Verify fan's preset_mode is still "smart"
    assert hass.states.get(_PRESET_MODE_INPUT_SELECT).state == "smart"

    # Set fan's preset_mode to "auto"
    await common.async_turn_on(hass, _TEST_FAN, preset_mode="auto")

    # verify
    assert hass.states.get(_PRESET_MODE_INPUT_SELECT).state == "auto"

async def test_set_osc(hass, calls):
    """Test set oscillating."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's osc to True
    await common.async_oscillate(hass, _TEST_FAN, True)

    # verify
    assert hass.states.get(_OSC_INPUT).state == "True"
    _verify(hass, STATE_ON, None, 0, True, None, None)

    # Set fan's osc to False
    await common.async_oscillate(hass, _TEST_FAN, False)

    # verify
    assert hass.states.get(_OSC_INPUT).state == "False"
    _verify(hass, STATE_ON, None, 0, False, None, None)

async def test_set_invalid_osc_from_initial_state(hass, calls):
    """Test set invalid oscillating when fan is in initial state."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's osc to 'invalid'
    with pytest.raises(vol.Invalid):
        await common.async_oscillate(hass, _TEST_FAN, "invalid")

    # verify
    assert hass.states.get(_OSC_INPUT).state == ""
    _verify(hass, STATE_ON, None, 0, None, None, None)

async def test_set_invalid_osc(hass, calls):
    """Test set invalid oscillating when fan has valid osc."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's osc to True
    await common.async_oscillate(hass, _TEST_FAN, True)

    # verify
    assert hass.states.get(_OSC_INPUT).state == "True"
    _verify(hass, STATE_ON, None, 0, True, None, None)

    # Set fan's osc to None
    with pytest.raises(vol.Invalid):
        await common.async_oscillate(hass, _TEST_FAN, None)

    # verify osc is unchanged
    assert hass.states.get(_OSC_INPUT).state == "True"
    _verify(hass, STATE_ON, None, 0, True, None, None)

async def test_set_direction(hass, calls):
    """Test set valid direction."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's direction to forward
    await common.async_set_direction(hass, _TEST_FAN, DIRECTION_FORWARD)

    # verify
    assert hass.states.get(_DIRECTION_INPUT_SELECT).state == DIRECTION_FORWARD
    _verify(hass, STATE_ON, None, 0, None, DIRECTION_FORWARD, None)

    # Set fan's direction to reverse
    await common.async_set_direction(hass, _TEST_FAN, DIRECTION_REVERSE)

    # verify
    assert hass.states.get(_DIRECTION_INPUT_SELECT).state == DIRECTION_REVERSE
    _verify(hass, STATE_ON, None, 0, None, DIRECTION_REVERSE, None)

async def test_set_invalid_direction_from_initial_stage(hass, calls):
    """Test set invalid direction when fan is in initial state."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's direction to 'invalid'
    await common.async_set_direction(hass, _TEST_FAN, "invalid")

    # verify direction is unchanged
    assert hass.states.get(_DIRECTION_INPUT_SELECT).state == ""
    _verify(hass, STATE_ON, None, 0, None, None, None)

async def test_set_invalid_direction(hass, calls):
    """Test set invalid direction when fan has valid direction."""
    await _register_components(hass)

    # Turn on fan
    await common.async_turn_on(hass, _TEST_FAN)

    # Set fan's direction to forward
    await common.async_set_direction(hass, _TEST_FAN, DIRECTION_FORWARD)

    # verify
    assert hass.states.get(_DIRECTION_INPUT_SELECT).state == DIRECTION_FORWARD
    _verify(hass, STATE_ON, None, 0, None, DIRECTION_FORWARD, None)

    # Set fan's direction to 'invalid'
    await common.async_set_direction(hass, _TEST_FAN, "invalid")

    # verify direction is unchanged
    assert hass.states.get(_DIRECTION_INPUT_SELECT).state == DIRECTION_FORWARD
    _verify(hass, STATE_ON, None, 0, None, DIRECTION_FORWARD, None)

def _verify(
    hass,
    expected_state,
    expected_speed,
    expected_percentage,
    expected_oscillating,
    expected_direction,
    expected_preset_mode,
):
    """Verify fan's state, speed and osc."""
    state = hass.states.get(_TEST_FAN)
    attributes = state.attributes
    assert state.state == str(expected_state)
    assert attributes.get(ATTR_SPEED) == expected_speed
    assert attributes.get(ATTR_PERCENTAGE) == expected_percentage
    assert attributes.get(ATTR_OSCILLATING) == expected_oscillating
    assert attributes.get(ATTR_DIRECTION) == expected_direction
    assert attributes.get(ATTR_PRESET_MODE) == expected_preset_mode

async def _register_components(hass, speed_list=None, preset_modes=None):
    """Register basic components for testing."""
    with assert_setup_component(1, "input_boolean"):
        assert await setup.async_setup_component(
            hass, "input_boolean", {"input_boolean": {"state": None}}
        )

    with assert_setup_component(1, "input_number"):
        assert await setup.async_setup_component(
            hass,
            "input_number",
            {
                "input_number": {
                    "percentage": {
                        "min": 0.0,
                        "max": 100.0,
                        "name": "Percentage",
                        "step": 1.0,
                        "mode": "slider",
                    }
                }
            },
        )

    with assert_setup_component(4, "input_select"):
        assert await setup.async_setup_component(
            hass,
            "input_select",
            {
                "input_select": {
                    "speed": {
                        "name": "Speed",
                        "options": [
                            "",
                            SPEED_OFF,
                            SPEED_LOW,
                            SPEED_MEDIUM,
                            SPEED_HIGH,
                            "1",
                            "2",
                            "3",
                            "auto",
                            "smart",
                        ],
                    },
                    "preset_mode": {
                        "name": "Preset Mode",
                        "options": ["auto", "smart"],
                    },
                    "osc": {"name": "oscillating", "options": ["", "True", "False"]},
                    "direction": {
                        "name": "Direction",
                        "options": ["", DIRECTION_FORWARD, DIRECTION_REVERSE],
                    },
                }
            },
        )

    with assert_setup_component(1, "fan"):
        value_template = """
        {% if is_state('input_boolean.state', 'on') %}
            {{ 'on' }}
        {% else %}
            {{ 'off' }}
        {% endif %}
        """

        test_fan_config = {
            "value_template": value_template,
            "speed_template": "{{ states('input_select.speed') }}",
            "preset_mode_template": "{{ states('input_select.preset_mode') }}",
            "percentage_template": "{{ states('input_number.percentage') }}",
            "oscillating_template": "{{ states('input_select.osc') }}",
            "direction_template": "{{ states('input_select.direction') }}",
            "turn_on": {
                "service": "input_boolean.turn_on",
                "entity_id": _STATE_INPUT_BOOLEAN,
            },
            "turn_off": {
                "service": "input_boolean.turn_off",
                "entity_id": _STATE_INPUT_BOOLEAN,
            },
            "set_speed": {
                "service": "input_select.select_option",
                "data_template": {
                    "entity_id": _SPEED_INPUT_SELECT,
                    "option": "{{ speed }}",
                },
            },
            "set_preset_mode": {
                "service": "input_select.select_option",
                "data_template": {
                    "entity_id": _PRESET_MODE_INPUT_SELECT,
                    "option": "{{ preset_mode }}",
                },
            },
            "set_percentage": {
                "service": "input_number.set_value",
                "data_template": {
                    "entity_id": _PERCENTAGE_INPUT_NUMBER,
                    "value": "{{ percentage }}",
                },
            },
            "set_oscillating": {
                "service": "input_select.select_option",
                "data_template": {
                    "entity_id": _OSC_INPUT,
                    "option": "{{ oscillating }}",
                },
            },
            "set_direction": {
                "service": "input_select.select_option",
                "data_template": {
                    "entity_id": _DIRECTION_INPUT_SELECT,
                    "option": "{{ direction }}",
                },
            },
        }

        if speed_list:
            test_fan_config["speeds"] = speed_list

        if preset_modes:
            test_fan_config["preset_modes"] = preset_modes

        assert await setup.async_setup_component(
            hass,
            "fan",
            {"fan": {"platform": "template", "fans": {"test_fan": test_fan_config}}},
        )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

async def test_unique_id(hass):
    """Test unique_id option only creates one fan per id."""
    await setup.async_setup_component(
        hass,
        "fan",
        {
            "fan": {
                "platform": "template",
                "fans": {
                    "test_template_fan_01": {
                        "unique_id": "not-so-unique-anymore",
                        "value_template": "{{ true }}",
                        "turn_on": {
                            "service": "fan.turn_on",
                            "entity_id": "fan.test_state",
                        },
                        "turn_off": {
                            "service": "fan.turn_off",
                            "entity_id": "fan.test_state",
                        },
                    },
                    "test_template_fan_02": {
                        "unique_id": "not-so-unique-anymore",
                        "value_template": "{{ false }}",
                        "turn_on": {
                            "service": "fan.turn_on",
                            "entity_id": "fan.test_state",
                        },
                        "turn_off": {
                            "service": "fan.turn_off",
                            "entity_id": "fan.test_state",
                        },
                    },
                },
            },
        },
    )

    await hass.async_block_till_done()
    await hass.async_start()
    await hass.async_block_till_done()

    assert len(hass.states.async_all()) == 1

redpajama_set_name: RedPajamaGithub


A Cohabitation Agreement or Life Partnership Agreement would conventionally be used for partners that live together in a life partnership and it confirms their proprietary rights during the subsistence of their relationship. It sets out the financial terms of the relationship, and offers protection for the parties upon death, or should the relationship be terminated.
The Department of Home Affairs usually requires a notarially executed Cohabitation Agreement or Life Partnership Agreement to support applications for permanent residence visas or spousal visas where one partner is not a citizen or permanent resident of the Republic of South Africa. While such contracts are typically used in the event that parties are unmarried, the Department of Home Affairs sometimes requires a notarial contract to confirm their relationship and living arrangements in the case where the parties are married to each other without an antenuptial contract.
The above price excludes VAT and is applicable to online submissions only and does not include consultation with an attorney.
The above amounts exclude costs for any special provisions.
The form needs to be completed fully and accurately in order for us to prepare your documentation. This step should take approximately 15 minutes.
Pay our fee and submit form.
Once you have completed and submitted the online form, you will be directed to our payment page. We presently accept payment by EFT or direct deposit. We do not accept cheque deposits.
Upon receipt of your form and payment, we will prepare your documentation and email it to you, which includes the Special Power of Attorney and Cohabitation Agreement or Life Partnership Contract.
Should you find the documents to be in order, print and sign them. First email the documents to us to check that all is in order and thereafter send us the original documents to us (together with the required supporting documentation) via registered post, overnight mail or counter-to-counter mail.
Upon receipt of your original signed documents, we will appear before a Notary Public on your behalf to execute your contract in terms of the Special Power of Attorney.
Following execution, you will be furnished with a copy of the executed contract by email and the original will be available for collection at our offices. Should you require the original to be posted or couriered, additional costs will be applicable.


Erm… what to write, what to write… Don't you hate those days where you are ready to start writing up a paper but the moment your fingers stroke the keyboard nothing comes to mind? When you spent the whole day sorting out your feelings for the subject only to be denied it by your subconscious? A variety subjects have the same problem. An artist, for example, sits down to paint and finds her canvas blank after hours of recollection. How do we stop this wall from sheltering our own thoughts from us? How do you begin? Dynamite. Or for those who aren't allowed explosives, hammers work too. Walls usually fall to these tactics. Mental brick walls need something just as affective. I recommend quotes, song and conversations with friends.
Huge quote I know but some things work perfectly. Now what do you do? Now that you've found something to base your thoughts it's time to investigate it. The main theme I got from the above quote is to: not to judge a book by its cover, that everything is not what it seems, mysterious, and who are things/people really? BAM! We found our thesis! If you combine these supposedly insignificant insights you can find something to base your paper on. But, since I'm mostly a fiction writer this thesis would help define a scene in the story than be the main topic. Thesis are essential in all forms of writing, and can help prevent writer's cramp.
Thoughts are a peculiar thing. The more you think about it the more you tend to forget. But it you combine outside information with your topic, the easier it will be to write it down quickly and demolish that mental wall.
Ruminating the one I miss.
Aware that his wish to be with me has gone.
A creature whom to look up to.
Enticing him to complete obeisance.
I scrounge my mind for something of use.
For lost is he from me.


text:
Sleep Hormone Linked to Alzheimer's Progression
People with Alzheimer's disease often have sleep problems. Now scientists may know one reason why. Italian researchers found that people with the disease produce excessive levels of a hormone called orexin that is critical for sound sleep. Sleep disruptions may, in turn, contribute to deterioration in thinking and memory, the study suggests.
Orexin, also called hypocretin, is produced in the hypothalamus, a part of the brain involved in sleep, appetite and other functions. In Alzheimer's disease, the new study indicates, levels of the hormone in the cerebrospinal fluid, which bathes the brain and spinal cord, increase, leading to troubled sleep and contributing to declines in thinking and memory skills.
"Our study has shown that, in Alzheimer's disease, increased cerebrospinal fluid orexin levels are linked to a parallel sleep deterioration, which appears to be related to cognitive decline," write the authors of the study, which appeared in JAMA Neurology. They note that as the disease progresses, output of orexin becomes excessive, disrupting normal sleep and wake cycles.
Further research is needed to elucidate more fully the links between orexin, Alzheimer's and sleep troubles. But the findings raise the possibility that drugs that block the hormone could one day be developed to treat the disease.
Earlier studies indicated that orexin levels may be disrupted by Alzheimer's disease, though findings were ambiguous. For the current study, researchers at the University of Rome compared spinal fluid orexin levels in people with Alzheimer's with levels in their healthy, mentally intact peers. They also assessed sleep patterns in both groups, as well as indicators of Alzheimer's such as beta-amyloid and tau. The study included 21 participants with mild Alzheimer's, 27 with moderate to severe Alzheimer's, and 29 healthy controls.
The scientists found that those with moderate to severe Alzheimer's had higher average orexin levels compared with controls. Those with more advanced disease were also more likely to have impaired sleep compared with controls and those with mild Alzheimer's. In those with Alzheimer's, cognitive decline was also linked to impaired sleep.
In a commentary accompanying the study, Dr. Luigi Ferini-Strambi of the Universitá Vita-Salute in Milan notes that sound sleep is necessary to clear the brain of toxic proteins. Disruptions in sleep may impair this process.
"The main finding of the study is the increase of orexin levels in patients with moderate-to-severe Alzheimer's," he says. "Further research should clarify how to modify or improve sleep for mitigating the risk of future Alzheimer's disease or for slowing Alzheimer's progression."
By ALZinfo.org, The Alzheimer's Information Site. Reviewed by William J. Netzer, Ph.D., Fisher Center for Alzheimer's Research Foundation at The Rockefeller University.
Source: Claudio Liguori, MD1; Andrea Romigi, MD, PhD1; Marzia Nuccetelli, PhD, et al: Orexinergic System Dysregulation, Sleep Impairment, and Cognitive Decline in Alzheimer Disease. JAMA Neurology, Oct. 13, 2014.
Luigi Ferini-Strambi, MD: Possible Role of Orexin in the Pathogenesis of Alzheimer Disease. JAMA Neurology, Oct. 13, 2014.


text:
Q: Is there a pointer event that equals to 'click' event? The 'click' event is a mouse event which fires after both the mousedown and mouseup events have fired.
Now pointer event has a broader use case, so I wonder if there is a corresponding 'click' event for pointer event also?
Thanks.
Andy

A: As to the question: Is there a pointer event that's equivalent to the click event?
The answer is no.
As to the question: Does a pointer press dispatch a click event?
Answering that may take some testing.
Using a little test page that reports every pointer event and click event, I obtained the following events for a single finger press on an iPhone:
16:01:45.416 - pointerover - width: 48.5, height: 48.5
16:01:45.417 - pointerenter - width: 48.5, height: 48.5
16:01:45.418 - pointerdown - width: 48.5, height: 48.5
16:01:45.601 - pointerup - width: 0.0, height: 0.0
16:01:45.602 - pointerout - width: 0.0, height: 0.0
16:01:45.602 - pointerleave - width: 0.0, height: 0.0
16:01:45.636 - click - width: NaN, height: NaN

(the width and height values report the size of the pointer tip, which in this case is a finger)
So it seems that at least on an iPhone, a click event is dispatched with a finger press.

A: Not sure if this should've been a comment, but...
On MDN they state that "click" event is a MouseEvent.
And surely in desktop firefox the snippet below logs a MouseEvent.

document.querySelector("div").addEventListener("click", (ev) => {
 document.write(ev.constructor.name);
});

CLICK ME

However, on desktop chrome, it logs "PointerEvent"!
To answer your question (in a hacky way):
If you only target chrome, you can check ev.pointerType to distiguish between "mouse" and "touch". This means "click" event is generic, it will tell you "what clicked" in its event details. At least on chrome.
Edit:
I just noticed that spec allows for chrome's behavior.

Interface    PointerEvent

redpajama_set_name: RedPajamaStackExchange