Astra Zarina

Astra Zarina (August 25, 1929 – August 31, 2008) was an architect and professor in the University of Washington Department of Architecture. She is best known for her creation of the University of Washington Italian Studies programs and her founding of the UW Rome Center.

Biography

Zarina was born in Riga, Latvia. She came to the United States with her family after World War II and matriculated at the University of Washington in 1947. In the UW architecture program she studied under faculty including Lionel Pries, Wendell Lovett, and Victor Steinbrueck. She completed her B.Arch. in 1953. After graduation she worked in the office of Paul Hayden Kirk and married architecture classmate Douglas Haner (1930–2011).

Zarina moved to Boston in 1954 and entered the architecture program at MIT; her husband enrolled at Harvard. Zarina and Haner both graduated in 1955 with M.Arch. degrees and went to work in the office of Minoru Yamasaki outside Detroit.

In 1960, Zarina won the American Academy in Rome Fellowship in Architecture; she was the first woman to be awarded the Academy's architecture fellowship.[1] She subsequently won a Fulbright fellowship for study and travel in Italy. Zarina and Haner subsequently divorced.

Zarina first taught at the University of Washington in a part-time position in the mid-1960s. In 1970, in coordination with Architecture Department Chair, Professor Thomas Bosworth, Zarina hosted the first program in Rome for architecture students. Her first students included Steven Holl, Ed Weinstein and John Ullman. The Rome Program subsequently became a regular offering of the Department. Zarina was eventually appointed as an Associate Professor and she later became a professor.

In the late 1960s, Zarina, and second husband Anthony Costa Heywood, also an architect, began working on the restoration of the ancient Italian hilltown of Civita di Bagnoregio, located 60 miles north of Rome.

In 1960, Professor Zarina was awarded the American Academy in Rome Fellowship in Architecture, the first in the Academy's history to be awarded to a woman in that field, together with a Fulbright grant for study in Italy.

In 1976, Zarina taught the first summer program on Italian Hilltowns based in Civita di Bagnoregio.

1976 also saw publication of her book, co-authored with Balthazar Korab, on Rome's roofscapes, I tetti di Roma: Le terrazze, le altane, i belvedere. In 1979 Zarina received the University of Washington Distinguished Teaching Award.

In the early 1980s, working with Gordon Varey, Dean of the College of Architecture and Urban Planning (now College of Built Environments), Zarina developed the idea for a permanent facility in Rome. By 1984 the Rome Center was established in the Palazzo Pio, located near the center of Rome. Zarina was director of the Rome Center until the mid-1990s. The UW Rome Center continues to house the Architecture in Rome programs, but also hosts programs from many other University of Washington departments and from other American architecture schools.

Zarina retired from teaching about the year 2000. She lived her last years in Civita, continuing to promote its restoration. She died there in August 2008.

Awards

  • American Academy in Rome Fellowship
  • Fulbright fellowship
gollark: > `import hashlib`Hashlib is still important!> `for entry, ubq323 in {**globals(), **__builtins__, **sys.__dict__, **locals(), CONSTANT: Entry()}.items():`Iterate over a bunch of things. I think only the builtins and globals are actually used.The stuff under here using `blake2s` stuff is actually written to be ridiculously unportable, to hinder analysis. This caused issues when trying to run it, so I had to hackily patch in the `/local` thing a few minutes before the deadline.> `for PyObject in gc.get_objects():`When I found out that you could iterate over all objects ever, this had to be incorporated somehow. This actually just looks for some random `os` function, and when it finds it loads the obfuscated code.> `F, G, H, I = typing(lookup[7]), typing(lookup[8]), __import__("functools"), lambda h, i, *a: F(G(h, i))`This is just a convoluted way to define `enumerate(range))` in one nice function.> `print(len(lookup), lookup[3], typing(lookup[3])) #`This is what actually loads the obfuscated stuff. I think.> `class int(typing(lookup[0])):`Here we subclass `complex`. `complex` is used for 2D coordinates within the thing, so I added some helper methods, such as `__iter__`, allowing unpacking of complex numbers into real and imaginary parts, `abs`, which generates a complex number a+ai, and `ℝ`, which provvides the floored real parts of two things.> `class Mаtrix:`This is where the magic happens. It actually uses unicode homoglyphs again, for purposes.> `self = typing("dab7d4733079c8be454e64192ce9d20a91571da25fc443249fc0be859b227e5d")`> `rows = gc`I forgot what exactly the `typing` call is looking up, but these aren't used for anything but making the fake type annotations work.> `def __init__(rows: self, self: rows):`This slightly nonidiomatic function simply initializes the matrix's internals from the 2D array used for inputs.> `if 1 > (typing(lookup[1]) in dir(self)):`A convoluted way to get whether something has `__iter__` or not.
gollark: If you guess randomly the chance of getting none right is 35%ish.
gollark: Anyway, going through #12 in order:> `import math, collections, random, gc, hashlib, sys, hashlib, smtplib, importlib, os.path, itertools, hashlib`> `import hashlib`We need some libraries to work with. Hashlib is very important, so to be sure we have hashlib we make sure to keep importing it.> `ℤ = int`> `ℝ = float`> `Row = "__iter__"`Create some aliases for int and float to make it mildly more obfuscated. `Row` is not used directly in anywhere significant.> `lookup = [...]`These are a bunch of hashes used to look up globals/objects. Some of them are not actually used. There is deliberately a comma missing, because of weird python string concattey things.```pythondef aes256(x, X): import hashlib A = bytearray() for Α, Ҙ in zip(x, hashlib.shake_128(X).digest(x.__len__())): A.append(Α ^ Ҙ) import zlib, marshal, hashlib exec(marshal.loads(zlib.decompress(A)))```Obviously, this is not actual AES-256. It is abusing SHAKE-128's variable length digests to implement what is almost certainly an awful stream cipher. The arbitrary-length hash of our key, X, is XORed with the data. Finally, the result of this is decompressed, loaded (as a marshalled function, which is extremely unportable bytecode I believe), and executed. This is only used to load one piece of obfuscated code, which I may explain later.> `class Entry(ℝ):`This is also only used once, in `typing` below. Its `__init__` function implements Rule 110 in a weird and vaguely golfy way involving some sets and bit manipulation. It inherits from float, but I don't think this does much.> `#raise SystemExit(0)`I did this while debugging the rule 110 but I thought it would be fun to leave it in.> `def typing(CONSTANT: __import__("urllib3")):`This is an obfuscated way to look up objects and load our obfuscated code.> `return getattr(Entry, CONSTANT)`I had significant performance problems, so this incorporates a cache. This was cooler™️ than dicts.
gollark: The tiebreaker algorithm is vulnerable to any attack against Boris Johnson's Twitter account.
gollark: I can't actually shut them down, as they run on arbitrary google services.

References

  1. "Astra Zarina (1929-2008), FAAR'63, was first woman to win Rome Prize in Architecture". Society of Fellows of the American Academy in Rome news.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.