text:
from __future__ import unicode_literals

import logging
import random
import six
import string
import time
import traceback

from zope.interface import implementer

from six.moves.urllib_parse import unquote, unquote_plus
from twisted.internet.interfaces import IProtocolNegotiationFactory
from twisted.protocols.policies import ProtocolWrapper
from twisted.web import http

from .utils import parse_x_forwarded_for
from .ws_protocol import WebSocketProtocol, WebSocketFactory

logger = logging.getLogger(__name__)

class WebRequest(http.Request):
    """
    Request that either hands off information to channels, or offloads
    to a WebSocket class.

    Does some extra processing over the normal Twisted Web request to separate
    GET and POST out.
    """

    error_template = """

                <title>%(title)s</title>

%(title)s

%(body)s

                Daphne

    """.replace("\n", "").replace("    ", " ").replace("   ", " ").replace("  ", " ")  # Shorten it a bit, bytes wise

    def __init__(self, *args, **kwargs):
        try:
            http.Request.__init__(self, *args, **kwargs)
            # Easy factory link
            self.factory = self.channel.factory
            # Make a name for our reply channel
            self.reply_channel = self.factory.make_send_channel()
            # Tell factory we're that channel's client
            self.last_keepalive = time.time()
            self.factory.reply_protocols[self.reply_channel] = self
            self._got_response_start = False
        except Exception:
            logger.error(traceback.format_exc())
            raise

    def process(self):
        try:
            self.request_start = time.time()
            # Get upgrade header
            upgrade_header = None
            if self.requestHeaders.hasHeader(b"Upgrade"):
                upgrade_header = self.requestHeaders.getRawHeaders(b"Upgrade")[0]
            # Get client address if possible
            if hasattr(self.client, "host") and hasattr(self.client, "port"):
                # client.host and host.host are byte strings in Python 2, but spec
                # requires unicode string.
                self.client_addr = [six.text_type(self.client.host), self.client.port]
                self.server_addr = [six.text_type(self.host.host), self.host.port]
            else:
                self.client_addr = None
                self.server_addr = None

            if self.factory.proxy_forwarded_address_header:
                self.client_addr = parse_x_forwarded_for(
                    self.requestHeaders,
                    self.factory.proxy_forwarded_address_header,
                    self.factory.proxy_forwarded_port_header,
                    self.client_addr
                )

            # Check for unicodeish path (or it'll crash when trying to parse)
            try:
                self.path.decode("ascii")
            except UnicodeDecodeError:
                self.path = b"/"
                self.basic_error(400, b"Bad Request", "Invalid characters in path")
                return
            # Calculate query string
            self.query_string = b""
            if b"?" in self.uri:
                self.query_string = self.uri.split(b"?", 1)[1]
            # Is it WebSocket? IS IT?!
            if upgrade_header and upgrade_header.lower() == b"websocket":
                # Make WebSocket protocol to hand off to
                protocol = self.factory.ws_factory.buildProtocol(self.transport.getPeer())
                if not protocol:
                    # If protocol creation fails, we signal "internal server error"
                    self.setResponseCode(500)
                    logger.warn("Could not make WebSocket protocol")
                    self.finish()
                # Port across transport
                protocol.set_main_factory(self.factory)
                transport, self.transport = self.transport, None
                if isinstance(transport, ProtocolWrapper):
                    # i.e. TLS is a wrapping protocol
                    transport.wrappedProtocol = protocol
                else:
                    transport.protocol = protocol
                protocol.makeConnection(transport)
                # Re-inject request
                data = self.method + b' ' + self.uri + b' HTTP/1.1\x0d\x0a'
                for h in self.requestHeaders.getAllRawHeaders():
                    data += h[0] + b': ' + b",".join(h[1]) + b'\x0d\x0a'
                data += b"\x0d\x0a"
                data += self.content.read()
                protocol.dataReceived(data)
                # Remove our HTTP reply channel association
                if hasattr(protocol, "reply_channel"):
                    logger.debug("Upgraded connection %s to WebSocket %s", self.reply_channel, protocol.reply_channel)
                else:
                    logger.debug("Connection %s did not get successful WS handshake.", self.reply_channel)
                del self.factory.reply_protocols[self.reply_channel]
                self.reply_channel = None
                # Resume the producer so we keep getting data, if it's available as a method
                # 17.1 version
                if hasattr(self.channel, "_networkProducer"):
                    self.channel._networkProducer.resumeProducing()
                # 16.x version
                elif hasattr(self.channel, "resumeProducing"):
                    self.channel.resumeProducing()

            # Boring old HTTP.
            else:
                # Sanitize and decode headers, potentially extracting root path
                self.clean_headers = []
                self.root_path = self.factory.root_path
                for name, values in self.requestHeaders.getAllRawHeaders():
                    # Prevent CVE-2015-0219
                    if b"_" in name:
                        continue
                    for value in values:
                        if name.lower() == b"daphne-root-path":
                            self.root_path = self.unquote(value)
                        else:
                            self.clean_headers.append((name.lower(), value))
                logger.debug("HTTP %s request for %s", self.method, self.reply_channel)
                self.content.seek(0, 0)
                # Send message
                try:
                    self.factory.channel_layer.send("http.request", {
                        "reply_channel": self.reply_channel,
                        # TODO: Correctly say if it's 1.1 or 1.0
                        "http_version": self.clientproto.split(b"/")[-1].decode("ascii"),
                        "method": self.method.decode("ascii"),
                        "path": self.unquote(self.path),
                        "root_path": self.root_path,
                        "scheme": "https" if self.isSecure() else "http",
                        "query_string": self.query_string,
                        "headers": self.clean_headers,
                        "body": self.content.read(),
                        "client": self.client_addr,
                        "server": self.server_addr,
                    })
                except self.factory.channel_layer.ChannelFull:
                    # Channel is too full; reject request with 503
                    self.basic_error(503, b"Service Unavailable", "Request queue full.")
        except Exception:
            logger.error(traceback.format_exc())
            self.basic_error(500, b"Internal Server Error", "HTTP processing error")

    @classmethod
    def unquote(cls, value, plus_as_space=False):
        """
        Python 2 and 3 compat layer for utf-8 unquoting
        """
        if six.PY2:
            if plus_as_space:
                return unquote_plus(value).decode("utf8")
            else:
                return unquote(value).decode("utf8")
        else:
            if plus_as_space:
                return unquote_plus(value.decode("ascii"))
            else:
                return unquote(value.decode("ascii"))

    def send_disconnect(self):
        """
        Sends a disconnect message on the http.disconnect channel.
        Useful only really for long-polling.
        """
        # If we don't yet have a path, then don't send as we never opened.
        if self.path:
            try:
                self.factory.channel_layer.send("http.disconnect", {
                    "reply_channel": self.reply_channel,
                    "path": self.unquote(self.path),
                })
            except self.factory.channel_layer.ChannelFull:
                pass

    def connectionLost(self, reason):
        """
        Cleans up reply channel on close.
        """
        if self.reply_channel and self.reply_channel in self.channel.factory.reply_protocols:
            self.send_disconnect()
            del self.channel.factory.reply_protocols[self.reply_channel]
        logger.debug("HTTP disconnect for %s", self.reply_channel)
        http.Request.connectionLost(self, reason)

    def finish(self):
        """
        Cleans up reply channel on close.
        """
        if self.reply_channel and self.reply_channel in self.channel.factory.reply_protocols:
            self.send_disconnect()
            del self.channel.factory.reply_protocols[self.reply_channel]
        logger.debug("HTTP close for %s", self.reply_channel)
        http.Request.finish(self)

    def serverResponse(self, message):
        """
        Writes a received HTTP response back out to the transport.
        """
        if not self._got_response_start:
            self._got_response_start = True
            if 'status' not in message:
                raise ValueError("Specifying a status code is required for a Response message.")

            # Set HTTP status code
            self.setResponseCode(message['status'])
            # Write headers
            for header, value in message.get("headers", {}):
                # Shim code from old ASGI version, can be removed after a while
                if isinstance(header, six.text_type):
                    header = header.encode("latin1")
                self.responseHeaders.addRawHeader(header, value)
            logger.debug("HTTP %s response started for %s", message['status'], self.reply_channel)
        else:
            if 'status' in message:
                raise ValueError("Got multiple Response messages for %s!" % self.reply_channel)

        # Write out body
        http.Request.write(self, message.get('content', b''))

        # End if there's no more content
        if not message.get("more_content", False):
            self.finish()
            logger.debug("HTTP response complete for %s", self.reply_channel)
            try:
                self.factory.log_action("http", "complete", {
                    "path": self.uri.decode("ascii"),
                    "status": self.code,
                    "method": self.method.decode("ascii"),
                    "client": "%s:%s" % tuple(self.client_addr) if self.client_addr else None,
                    "time_taken": self.duration(),
                    "size": self.sentLength,
                })
            except Exception as e:
                logging.error(traceback.format_exc())
        else:
            logger.debug("HTTP response chunk for %s", self.reply_channel)

    def duration(self):
        """
        Returns the time since the start of the request.
        """
        if not hasattr(self, "request_start"):
            return 0
        return time.time() - self.request_start

    def basic_error(self, status, status_text, body):
        """
        Responds with a server-level error page (very basic)
        """
        self.serverResponse({
            "status": status,
            "status_text": status_text,
            "headers": [
                (b"Content-Type", b"text/html; charset=utf-8"),
            ],
            "content": (self.error_template % {
                "title": six.text_type(status) + " " + status_text.decode("ascii"),
                "body": body,
            }).encode("utf8"),
        })

@implementer(IProtocolNegotiationFactory)
class HTTPFactory(http.HTTPFactory):
    """
    Factory which takes care of tracking which protocol
    instances or request instances are responsible for which
    named response channels, so incoming messages can be
    routed appropriately.
    """

    def __init__(self, channel_layer, action_logger=None, send_channel=None, timeout=120, websocket_timeout=86400, ping_interval=20, ping_timeout=30, ws_protocols=None, root_path="", websocket_connect_timeout=30, proxy_forwarded_address_header=None, proxy_forwarded_port_header=None):
        http.HTTPFactory.__init__(self)
        self.channel_layer = channel_layer
        self.action_logger = action_logger
        self.send_channel = send_channel
        assert self.send_channel is not None
        self.timeout = timeout
        self.websocket_timeout = websocket_timeout
        self.websocket_connect_timeout = websocket_connect_timeout
        self.ping_interval = ping_interval
        self.proxy_forwarded_address_header = proxy_forwarded_address_header
        self.proxy_forwarded_port_header = proxy_forwarded_port_header
        # We track all sub-protocols for response channel mapping
        self.reply_protocols = {}
        # Make a factory for WebSocket protocols
        self.ws_factory = WebSocketFactory(self, protocols=ws_protocols)
        self.ws_factory.setProtocolOptions(
            autoPingTimeout=ping_timeout,
            allowNullOrigin=True,
        )
        self.ws_factory.protocol = WebSocketProtocol
        self.ws_factory.reply_protocols = self.reply_protocols
        self.root_path = root_path

    def buildProtocol(self, addr):
        """
        Builds protocol instances. This override is used to ensure we use our
        own Request object instead of the default.
        """
        try:
            protocol = http.HTTPFactory.buildProtocol(self, addr)
            protocol.requestFactory = WebRequest
            return protocol
        except Exception as e:
            logger.error("Cannot build protocol: %s" % traceback.format_exc())
            raise

    def make_send_channel(self):
        """
        Makes a new send channel for a protocol with our process prefix.
        """
        protocol_id = "".join(random.choice(string.ascii_letters) for i in range(10))
        return self.send_channel + protocol_id

    def reply_channels(self):
        return self.reply_protocols.keys()

    def dispatch_reply(self, channel, message):
        # If we don't know about the channel, ignore it (likely a channel we
        # used to have that's now in a group).
        # TODO: Find a better way of alerting people when this happens so
        # they can do more cleanup, that's not an error.
        if channel not in self.reply_protocols:
            logger.debug("Message on unknown channel %r - discarding" % channel)
            return

        if isinstance(self.reply_protocols[channel], WebRequest):
            self.reply_protocols[channel].serverResponse(message)
        elif isinstance(self.reply_protocols[channel], WebSocketProtocol):
            # Switch depending on current socket state
            protocol = self.reply_protocols[channel]
            # See if the message is valid
            unknown_keys = set(message.keys()) - {"bytes", "text", "close", "accept"}
            if unknown_keys:
                raise ValueError(
                    "Got invalid WebSocket reply message on %s - "
                    "contains unknown keys %s (looking for either {'accept', 'text', 'bytes', 'close'})" % (
                        channel,
                        unknown_keys,
                    )
                )
            # Accepts allow bytes/text afterwards
            if message.get("accept", None) and protocol.state == protocol.STATE_CONNECTING:
                protocol.serverAccept()
            # Rejections must be the only thing
            if message.get("accept", None) == False and protocol.state == protocol.STATE_CONNECTING:
                protocol.serverReject()
                return
            # You're only allowed one of bytes or text
            if message.get("bytes", None) and message.get("text", None):
                raise ValueError(
                    "Got invalid WebSocket reply message on %s - contains both bytes and text keys" % (
                        channel,
                    )
                )
            if message.get("bytes", None):
                protocol.serverSend(message["bytes"], True)
            if message.get("text", None):
                protocol.serverSend(message["text"], False)

            closing_code = message.get("close", False)
            if closing_code:
                if protocol.state == protocol.STATE_CONNECTING:
                    protocol.serverReject()
                else:
                    protocol.serverClose(code=closing_code)
        else:
            raise ValueError("Unknown protocol class")

    def log_action(self, protocol, action, details):
        """
        Dispatches to any registered action logger, if there is one.
        """
        if self.action_logger:
            self.action_logger(protocol, action, details)

    def check_timeouts(self):
        """
        Runs through all HTTP protocol instances and times them out if they've
        taken too long (and so their message is probably expired)
        """
        for protocol in list(self.reply_protocols.values()):
            # Web timeout checking
            if isinstance(protocol, WebRequest) and protocol.duration() > self.timeout:
                protocol.basic_error(503, b"Service Unavailable", "Worker server failed to respond within time limit.")
            # WebSocket timeout checking and keepalive ping sending
            elif isinstance(protocol, WebSocketProtocol):
                # Timeout check
                if protocol.duration() > self.websocket_timeout and self.websocket_timeout >= 0:
                    protocol.serverClose()
                # Ping check
                else:
                    protocol.check_ping()

    # IProtocolNegotiationFactory
    def acceptableProtocols(self):
        """
        Protocols this server can speak after ALPN negotiation. Currently that
        is HTTP/1.1 and optionally HTTP/2. Websockets cannot be negotiated
        using ALPN, so that doesn't go here: anyone wanting websockets will
        negotiate HTTP/1.1 and then do the upgrade dance.
        """
        baseProtocols = [b'http/1.1']

        if http.H2_ENABLED:
            baseProtocols.insert(0, b'h2')

        return baseProtocols

redpajama_set_name: RedPajamaGithub


Our society is saturated with GPS, or Global Navigation Satellite System (GNSS), applications. GPS is the first GNSS and it is operated by US Air Force. Most people are not aware of the fact that GPS was developed and is run by the military. A reduced quality signal is released for civil use. After Europe decided to build their own GNSS, called Galileo, the US Air Force decided to released an improved signal. It was and is a matter of competition.
On August 17th 2009, the US Air Force launched the last satellite that will improve the GPS service even more. Again, I think this is a competitive move - for the benefit for all of us as GPS is used around the world.
Some of these systems are already integrated (GPS and GLONASS) and there is a close cooperation between GPS, GLONASS and Galileo.


text:
Obedience is no virtue
By Greg Spearritt
Trust and obey,
For there's no other way
To be happy in Jesus,
But to trust and obey.
God's favour and joy – according to verse 4 of this execrable hymn – "are for them who will trust and obey". The obedient have also been rewarded, as we now know, with devastating sexual (and other) abuse. And not just in the Christian churches.
This particular curse of submissive obedience afflicts many religions, Hinduism, Buddhism, Judaism and Islam among them. ('Islam' apparently means 'submission'.)
The Boy Scout movement too has been hit with tens of thousands of sex-abuse claims.
A Scout, according to Scouting for Boys – a book apparently up there with the Bible in popularity back in the day – is "pure and clean-minded and manly" and resists "the secret vice which gets hold of so many fellows".
The Cub Scout Law?: "A Cub Scout is loyal and obedient. Cub Scouts do not give into themselves."
Turns out, for many, it wasn't actually 'themselves' they had to worry about.
In light of the revelations of recent decades – although, in a familiar pattern, abuse was noted well before that within the Fold – the Australian scout promise and law has been updated and 'obedience' is no longer explicitly there. Though it's still present in other guises, a disclaimer is necessary these days:
"Obedience is about doing what is right – assuming that being obedient is the right thing to do (and it may not always be, such as in the case of accepting or allowing abuse because someone was told to)."
In politics as well, as we've very recently seen, loyalty and obedience to the Party and the Minister is a recipe for abuse: "to be a good staffer you needed to keep quiet, ignore and bury bad behaviour and protect the Liberal Party at all costs".
Some of these powerful people are every bit as pious and hypocritical with their 'family values' as the abusive priest, imam or scout master.
Obedience born of loyal devotion, whether to institutions or gurus, is demonstrably a bad idea. A clear-eyed and critical commitment to worthy people and causes – such as a state acting to defeat a pandemic! – looks like a good solution.
Photo by Deb Dowd on Unsplash
David Miller	on 22/11/2020 at 9:44 am
Authority-figures of every variety get trust and obedience.
If this is a fault, is it their fault, or ours?
Greg	on 25/12/2020 at 6:18 am
I'm thinking it's a cultural issue. Teachers, priests, doctors and politicians are no longer held in the high regard that Australians once held them.
I believe, on balance, that's a good thing. It was an impossibly high and frequently unwarranted regard, and it gave them power to abuse.
The COVID response shows Australians for the most part still have the ability to respect authority when there's good reason to do so.
David Miller	on 23/12/2020 at 1:24 pm
Are the gods necessarily supernatural?
Or do they merely represent 'Authority'?
According to psychoanalysis, God symbolizes the father-figure.
Sociology extended this figure to the political leader.
Anthropology extends it back to the tribal leader.
And the evolutionists are pointing to the Alpha Male and dominance hierarchies within the packs of our common ancestors.
Marie Cameron	on 24/12/2020 at 10:08 pm
Those branches of Christianity which demand submission and obedience – not all of Christianity by any means – have badly distorted the approach and teaching of Jesus, who was all about encouraging his disciples to think for themselves, and to enter into a deeper understanding of and relationship with God. He told them that he regarded them not as servants but as friends, and that they were to call no man Father. He challenged the Jewish laws where they inhibited human wellbeing and flourishing. He accepted everyone where they were at, without demanding submission to doctrines or laws. I agree that unquestioning submission and obedience are bad, but it doesn't have to be that way in religion.

redpajama_set_name: RedPajamaCommonCrawl


The fundamentals of land ownership and land boundaries date back to the very roots of civilisation, and matters relating to possession and control (ownership) of land are well documented in historical records. Indeed, the territorial control of land has been a fundamental issue in the rise and fall of empires throughout history (for example, the Roman Empire) and the cause of a great number of the world's wars since the beginning of civilisation.
In the centuries BC, the importance of land ownership was focused on arable lands used for productive agriculture, and even in those times there were issues associated with occupation and boundaries: "in 173 BC Lucius Postumius Albinus, a statesman of the Roman Republic, was sent to Campania (a region in Southern Italy) to separate the land of the state from that of private persons, because private land owners had slowly expanded their boundaries into public lands" (Lucius Postumius Albinus (Consul 173 BC) wiki 2011).
Biblical references to the Land of Israel and its boundaries can be found in: Genesis 15; Exodus 23; Numbers 34; and Ezekiel 47 (Land of Israel wiki 2012). In fact, the boundaries of the Middle Eastern States have changed regularly throughout history.
In more modern times, we continue to witness wars arising, in part, over control of territorial boundaries, for example: the Six Day War in the Middle East in 1967 between Israel and Jordan, Egypt and Syria; and the Bosnian War that took place between April 1992 and December 1995 as a result of the breakup of Yugoslavia.
In recent times, the importance of control of land (and a nation's offshore and seabed maritime boundaries) is more likely to be centred on rights of economic development and control of important resources, such as oil and fishing rights.
natural resource and environmental management and sustainability.
land use management and regulation.


Santa Rosalia's shore line above and to the left abandon factories left over from the copper industry. More photo's to come.
Gay I am thinking maybe you should't lay in that thing. Too bad this wasn't a video so we could share your swinging and your desperation to hang on to the hammock....I'm still laughing... on the left is the river outlet to the Sea of Cortez and the lower photo is the road going into the city of Mulegue ...careful stay to the middle.
The big glasses on the table were filled with fresh squeezed orange juice.
Las Casitas is strongly recommended when in Mulegue. The food was excellent and the prices were fair; also the atmosphere was delightful.
After breakfast Bob sat on the bench reading while I did a little blanket shopping. Very relaxing until we realized back at the campsite that he lost his wallet and it most likely was on the bench. After rushing back to town all was good and the wallet was found...on the bench.


Dope new delivery from New Balance. Fresh color ways on the 1500's silhouette, made in UK of course + one 1500.9. Peep the pics above, and stop by the shop get yours.
Article suivant Converse x DrWoo coach jacket.


Issue: After translating a DWG? or DXF? file, the Text Attributes Floating Window always displays the selected text block as being Geneva when in fact it is some other font.
After translating a DWG or DXF file, and choosing Editable Text in the Text Settings dialog, the text blocks in the new PCD8 drawing are always described as Geneva when in fact their font is something else.
Translate a DWG file and choose Editable in the Text Settings dialog and choose any font other than Geneva from the pop up list.
Choose Windows menu → Text Attributes.
Select any Advanced Text Block.
Observe; as pictured below, the selected text block is described as being Geneva when in fact it is not.
There is no known work around to what is essentially a cosmetic condition. When editing the text block in the Advanced Text Edit Window the Fonts panel will render the correct font and you may still change it to whatever you like.


text:
How old is Richard Gere?
Richard Gere was born on 31 August 1949.
Richard Gere is 69 years old.
How old is Richard Gere in days now?
Richard Gere is 69 years 10 months 17 days old.
When is the next birthday of Richard Gere?
Richard Gere's next birthday is in 1 month 13 days.
What is the zodiac sign of Richard Gere?
Zodiac sign of Richard Gere is Virgo.
Richard Gere is an American actor, who is best remembered for his roles as courageous and loving gentlemen. He was born in Philadelphia in 1949, and in his childhood, he dreamed about becoming a musician. He played trumpet, but after the first attempts to find his place in the music world (after finishing university), Gere decided to focus rather on acting. In 1973 he appeared in "Grease" musical in London and starting from 1975 he started receiving small roles in various cinema movies. "Days of Heaven", "American Gigolo", "An Officer And a Gentleman", "Pretty Woman" (with Julia Roberts), "Primal Fear", "Chicago" (with Catherine Zeta-Jones and Renee Zellweger), "Arbitrage" are among the most successful movies of the actor. Richard dated a number of famous actresses, including Kim Basinger, Penelope Milford, and so on. For a few years he was married to a famous model Cindy Crawford, and after divorcing her Gere got married to another model, Carey Lowell, who is the mother of Gere's only son.
Related Actors Birthdays


SCHULTZ® S760 is an excellent synthetic super high temperature heat transfer fluid with outstanding thermal stability. It provides long lasting service life in operation temperature of -20℃~350℃. SCHULTZ® S760 is the same product as Dowtherm RP and can be mixed together in any ratio.
High Thermal Stability —— SCHULTZ® S760 is one of the most heat resistant liquid phase fluids. Its maximum operating temperature in liquid phase is as high as 350℃ due to the premium thermal stability.
Good Low Temperature Pumpability —— The great low temperature pumpability of SCHULTZ® S760 makes it easier to startup in cold areas.
Excellent Cleanness —— The low thermal degradation rate of SCHULTZ® S760 makes it difficult to produce high boilers. SCHULTZ® S760's high cleanness and anti-coking ability constantly keep the system clean and extend its service life.
Note: The above data are based upon test samples in laboratory, and not guaranteed for all products. For full specifications of SCHULTZ® S760, please contact our sales dept.
SCHULTZ® S760 completely satisfies the strict demand of polyester and chemical fiber processing based on its remarkable thermal stability.
SCHULTZ® S760 is also used in hot-pressing, vulcanizing and refining rubber machines due to the required high temperatures.
SCHULTZ® S760 is the best choice for heat transfer and storage in sea water desalination process, which is economical and efficient.
SCHULTZ® S760 is the ideal heat transfer fluid for many pharmaceutical manufacturers as it has relatively wide range of operation temperatures which are suitable for several steps of processing.


text:
Tag: wikipedia
What happens to the CC licenses if something happens to CC?
A thought prompt from a post to the Wikimedia mailing list: how likely is it that Creative Commons fails, and if so, what happens to Wikimedia? The Wikimedia projects use the Creative Commons licenses (most use BY-SA; a few use BY and the CC0 tool). So do many other projects in the free and open culture space, many of which use these licenses for easy compatibility with each other. They depend on these licenses to provide part of their legal infrastructure. So what needs to be true about Creative Commons to avoid endangering this?
CC has a wider mission than simply the maintenance of the licenses, of course, but much of it could be suspended in a dire situation; nothing would move forward, but the core of its mission would not fall apart. But stewarding the licenses is the core of its job—so what has to remain true for that to happen (in this case, for the license-using community to go on unaffected)? It's perhaps a thought exercise anyone involved with an organization should take on, even if that worst case never happens—what needs to stick around even if nothing else does, and what does that worst case look like? Here are the thoughts I proposed to the list, edited and slightly expanded on here.
Only the barest sliver of the organization needs to exist for the licenses to exist: someone willing to carry on the name and core mission, even if the organization became unable to pay anyone's salary to work on it full time. While much of the other work is more resource-intensive, the continued maintenance and stewarding of the canonical version of the licenses does not strictly need to be.
The vast majority of the time, this task is simply keeping the servers running so that they remain accessible: the URL that people use to refer to the text should always give the license text. This itself takes some limited amount of time and funds, someone willing to makes sure the site stays up and the hosting bill is paid. 1 On rare and what I hope are increasingly infrequent occasions, it means revision of the license suite. 2 The main resource this takes is the time of people with the necessary knowledge and commitment to do it, and not even necessarily their full-time efforts. This comes with tradeoffs: it is a long, drawn-out endeavor under the best of circumstances, and our scenario is far from it. (For that matter, deciding when it needs to be done is a drawn-out endeavor in itself.) But I don't see an inability to find capable lawyers interested in working on such a project, even if in spare time. I was thrilled to be brought on to the team, but it was after I had sent several messages already picking apart the licenses 3, while others particularly from the affiliate network and fellow-traveler organizations contributed detailed comments from their time. The hardest part would be finding someone to lead and coordinate without an existing full-time General Counsel (though even where no staff existed before, it is possible someone could be hired for the task). It benefits from an organization that can support paying for full-time work on it, but does not strictly require it, and should be a process that won't need to happen again for quite some time. 4
Do the licenses require the organization at all? Yes—but not necessarily the organization in its current form. Someone who has the trust of the license-using community needs to be the license steward, and that someone should also be the rightful user of the CC name. The license text itself is under CC0—anyone can take it and republish it or modify it. But the name is not: it's a trademark held by the organization, licensed for limited purposes. There are many years of work behind the name and its recognition; attempting to rebrand would be difficult and confusing and harm adoption. Far better to have the holder of the mark and the license steward with community trust be one and the same. (It is of course possible even now to have competing forks of the licenses, and this is a bad idea for the same reason forks of many types of standards with network effects are a bad idea. 5) There doesn't need to be much to the organization to hold the authority to use the name; anything that counts as a legal nonprofit entity is enough. 6
It's hard to say what would be considered enough trust and goodwill to be a suitable license steward, but a few thoughts. One is that it should remain a neutral organization, not beholden to particular interests that would sway license interpretation and future versions toward its ends. The 4.0 and earlier texts are fixed, of course, but there is room to influence the 3.0 and 4.0 license communities through the compatibility mechanisms, and future versions could be altered to the benefit of a particular community of adopters at the expense of others; an organization controlled by someone with interests that aren't in line with the interests of other adopters is more likely to introduce these changes. (I even think that CC should remain independent of other license-using organizations that share common goals—for example, it's better for Wikimedia to be a user of the licenses than to take CC under its wing, simply because it would influence the license development toward its use cases more than already happens, where it would be better for a steward to not be tightly tied to one type of user.)
Another is that it should keep development in the open, and take input from its community. The licenses' usefulness depends largely on their adoption by the community; that community is best placed to see both where revision is needed and where change cannot be tolerated. An organization putting out a new version would be foolish to simply toss a new version over the fence, without engaging with suggestions and criticisms and making an effort to reach out to a broad swath of license users to figure out where changes could violate expectations; abandoning the communities would be a fine reason for the communities to abandon the licenses.
Finally, while it's difficult to get financial support for many kinds of work that don't involve discrete, easily-quantified, shiny new projects (not the sort CC specializes in), the licenses are easier to make the case for, both with foundations and the public—even in the worst case, I don't think it would be difficult to get support for the bare bones described here.
So I'm not worried about the projects that depend on CC licenses. But the worst case is a case worth considering.
I'm excluding the tools surrounding the licenses, such as the license chooser, which is surprisingly complex. Even the deeds are built on a complex structure, though they could be adapted to be simpler (and easier to maintain) with some feature loss. ↩
I have joked that I will be happy to consult on the 5.0 revision from my retirement home, shaking my cane at the kids. This is about half a joke: I hope that by the time I am frail enough to need mobility aids there is something better available, like a robotic exoskeleton. ↩
Another joke: that it was easier for them to just hire me than to keep answering my email. ↩
The CC0 legal tool is another matter—that may come up again soon. ↩
Search for "license proliferation" for more argument here. ↩
A nonprofit's assets, such as its trademarks, can generally be transferred only to another nonprofit. ↩
Posted on 24 February 2015 25 February 2015 Categories UncategorizedTags creative commons, licenses, thought exercises, wikimedia, wikipediaLeave a comment
We are the media, and so are you
It's been a while since I've used this thing. But I've written in a few other places.
Here is my editorial with Jimmy Wales in the Washington Post after the SOPA blackouts, "We are the media, and so are you".
This was written after the anti-SOPA blackouts to combat two terrible memes. One, that the "content industry" means only the members of the MPAA and RIAA. And two, that Wikimedia is just another tech company, aligned with the "tech industry" interests, making top-down decisions in isolated boardrooms.
It has almost completely failed at fighting those memes. But its other purpose was to give Wikimedia something positive to say that didn't sink to simply countering the shots fired at us from the bills' supporters. And at that I hope it was a success.
Posted on 28 April 2012 Categories UncategorizedTags advocacy, SOPA, wikipediaLeave a comment
Women and Wikipedia
This is probably the most popular thing I've written all year. Prompted by the question a NYT reporter asked, "do you agree that Wikipedia's culture is unfriendly to women?" The article is here and quotes one sentence, but I had several thoughts about this topic that the article did not reflect (and in fact most writing on the topic does not reflect) that I believe the discussion is incomplete without.
I don't agree that Wikipedia has a culture that is unfriendly to women–if I did I wouldn't have stuck around for long. So why aren't more women on Wikipedia?
It's a little odd, asking this question of the women who are currently participating; in some sense we are exactly the wrong people to ask. I remember joining in 2004 and feeling at home, that these were people a lot like me, and why hadn't I known of it before? When I'm online I don't think about my gender very much. I think of myself as a geek, a freedom of information advocate, a researcher, but I only think of "woman" as part of my identity when something reminds me of it; say, someone addresses me with the wrong pronoun. And then I remember: "oh yeah, I'm one of those too."
Most of the women I know personally on the projects are a little bit unusual–at least a little bit geeky (maybe a lot), probably somewhat introverted, would rather participate in a mostly goal-directed activity than a mostly social one. (This is also true of most of the men.)
I'm not a sociologist, so I'm hesitant to make a lot of generalizations. But I'd say there is definitely a culture on Wikipedia that has its own quirks, and not everyone finds it welcoming or appealing. It's very skeptical, and criticism and correction is
often valued more than pure social interaction. (I have to remind myself not to fall into the same patterns–that I should make an effort to let people know when I see good things happening, rather than only when I notice something going wrong.) Many people are very young and this is the first place they've ever had any kind of power or authority, where people have taken them seriously. Some still don't think that interacting on Wikipedia is very serious, that it has any real effect on people. I suspect that some of the least welcoming interactions come from people who are still very new to Wikipedia themselves, who are learning the culture by trying to copy what they see others do (and especially others who seem to have a lot of experience or social capital) without knowing the reasons behind it or when it doesn't apply. It's a little bit argumentative–or at least, you won't go very long without encountering something that is going to spark dispute, and it's expected that sometimes this will happen; you have to either be able to handle conflict without taking it personally, or be able to let it go and find something else to work on. It requires a little bit of self-confidence, to be able to handle criticism well, or to contradict a total stranger when you don't agree.
It also requires at least a bit of boldness, to think that you might have something to contribute to the encyclopedia! Maybe even more so now than years ago–before, there was still enough low-hanging fruit that a casual visitor would easily stumble across something which was obviously poorly-written or incomplete and think "I could do better than that". It's a lot harder now to find areas to contribute where it's obvious your work will be useful. (Though any experienced Wikipedian can rattle off long lists.)
It seems almost disingenuous to say that the culture is not biased against women, but rather biased toward certain traits and against others–and that generally men are more likely to be in the group whose characteristics are more accepted. But it makes me genuinely angry when I read "women don't like X because they're Y"–am I less real because I am a woman who does like X and isn't Y? It's making the same mistake in reverse, just choosing a different group to dismiss. I don't think it's about gender in particular, and I hate to focus on gender specifically; it discounts the experience of the women involved and it makes things uncomfortable for the men involved. I think the disproportionate lack of women in the community isn't about gender so much as it is about a culture that rewards certain traits and discourages others. And we're not getting people who don't have those other traits, male or female; more of the people who do fit the current culture are male. But the focus should be on becoming more open and diverse in general–becoming more inclusive to everyone, which will naturally bring in more women.
(I don't think of the "Wikipedia community" as a monolith–it's more like hundreds of different communities some of which overlap with each other just enough. I cringe whenever I hear "Wikipedia doesn't think this is notable" or "Wikipedia decided to change" for a decision that was probably made by four or five people which no one else even knew about; unless it's really one of the rare occasions where some big decision is made and there is a huge effort to inform everyone, most everything is only seen by a very small group of people.)
I think there need to be many different ways to be a part of Wikipedia–if you're the kind of person who reads the manual first and wants minimal interaction, there should be a place for you; if you want someone to talk you through your first interactions and spend time getting to know people personally before you contribute, there should be a place for you too.
One problem with Wikipedia's culture, like a lot of subcultures, is that it is self-reinforcing. For some groups that's less of a problem–a purely social group can split into a lot of subgroups. For something like Wikipedia, where the goal is to reflect all of the world's knowledge, that is a problem. Occasionally you have the experience of reading something where it's clear that the writer doesn't know what they don't know; for example, they have never experienced poverty, never left the USA, never genuinely tried to consider why others hold a different political position, it's written from a perspective that is too limited for the subject it's trying to cover. The more insular and homogeneous Wikipedia's community is, the more danger we have of being that limited as well, the less useful we are to everyone. The world's knowledge isn't only the knowledge of a single demographic group; some subject areas and some important perspectives are going to be undercovered if we rely only on what a single group is most knowledgeable about. There's enough media in the world that represents only a very limited perspective on the world, what is and is not important–our mission is to do more than that. Being more inclusive means having access to the knowledge and skills of people whose input is not already widely available, and to share it with people who weren't aware of it before. And we, unlike many sources using a more traditional model, do have the capability to do that; we're not fulfilling our mission if we don't.
The big problem is that the current Wikipedia community is what came about by letting things develop naturally–trying to influence it in another direction is no longer the easiest path, and requires conscious effort to change. How do you become more inclusive without breaking the qualities that make the project happen to begin with? (Any easy, obvious answer to this question is probably wrong.) That Wikipedia works at all is an improbable thing; that it works, for the most part, well, nearly miraculous. Wikipedia's culture doesn't have to be hostile or unfriendly to a group for it to be underrepresented–it merely has to be not one of the most attractive options.
Posted on 14 July 2011 14 July 2011 Categories UncategorizedTags gender, gendergap, press, wikimedia, wikipedia2 Comments


Purchase golden beets at your local health food store or produce market; they're sweet as can be and won't stain your hands red.
Place a medium saucepan filled with water over high heat; bring to a boil. Add beets, bring back to a boil and reduce heat to medium; simmer until beets pierce easily with the point of a sharp knife, about 25 minutes.
Remove beets from pan and place under cold running water until cool enough to handle. Peel beets with a vegetable peeler and cut into 1/2-inch wedges; place beets in a large bowl.
Add tomato, avocado, onion, oil, vinegar, salt and pepper to bowl; toss to combine. Sprinkle with basil and chives; serve. Yields about 1 1/4 cups per serving.


Samoa's Minister for Natural Resource and Environment Faumuina Tiatia Liuga says Samoa needs to improve its land registration system.
Faumuina says converting a deed system into a Torrens system will make things more efficient.
He says New Zealand, Australia and Singapore have all successfully converted to Torrens which is a better way to manage land.
But concerns have been raised by some people who claim it threatens customary land titles.
Faumuina insists the proposed legislation will not affect customary land as it will only apply to public and freehold land and will benefit everyone.
"It's much cheaper. Its the protection of the owner of those properties and its efficiency as right now in existing legislation it takes months or years for people to get their land registered. Whereas in this torrens system you can register your land within a day or through the internet."


text:
Quiet day for European markets, Tesla shares slide on the US open
mhewson_CMC
European markets have seen a subdued start to the week, with little directional bias one way or the other, although the DAX still looks on course for a record daily close. The FTSE100 has traded in a fairly tight range, with the best performers being precious metals miners Fresnillo and Evraz.
Volatility has continued in Darktrace shares after broker Berenberg pushed back on the narrative that the shares were overpriced, and reiterated its buy recommendation on the stock with a 1,000p price target.
Abrdn shares are higher after the company confirmed it is in discussions to acquire fund supermarket Interactive Investor, which has more than 400k customers and is responsible for around £55bn.
Airlines have been in focus today, with somewhat mixed results, despite the restart of transatlantic travel, a business that is extremely lucrative for the likes of IAG, Lufthansa and Air France-KLM. We did see the likes of IAG and Lufthansa experience an initial lift higher, with IAG shares initially hitting a three-week high, however the gains proved to be somewhat short-lived, getting rebuffed at the 200-day MA, and have since slipped lower on the day.
Rolls-Royce shares have barely moved after management announced the sale of its civil nuclear instrumentation and control business to Framatome, and relates to its activities overseas, and not its UK civil nuclear business, which remains under its control, as it works with the government to provide provision for small modular reactors.
Defence contractor BAE Systems latest trading update showed that the company remains on course to deliver sales growth of 3% to 5%, above 2020's £20.86bn, while underlying EBIT is expected to rise between 6-8%.
US markets have started the week on a fairly modest note, as the spillover effect of Friday's positive payrolls report continues to ripple out into the new trading week.
Tesla shares opened over 6% lower after CEO Elon Musk said he would abide by a Twitter poll that said he should sell 10% of his stake in the business and pay the tax on the sale. In the wider scheme of things this shouldn't make much difference, and has little to no effect on the wider business model. It's also unlikely that Musk will merely dump the shares on the open market all at once. It's more likely he'll drip feed them out over time and it's not as if there aren't people queuing up to buy them. This also helps explain why the shares are currently trading well off the lows of the day.
Regeneron shares have edged higher after the company said a single dose of its antibody cocktail can prevent covid-19 infections for up to 8 months.
Moderna shares have regained some ground in the wake of last week's earnings disappointment, as they look to recover back above the 200-day MA, after closing below it on Friday for the first time since January 2020.
Peloton shares have continued to fall, down another 10% after a broker downgrade sent the shares to their lowest levels since June 2020.
The pound has had a slightly better day today as it claws back some of last week's losses, as the US dollar gives up some of its gains from last week.
Bond yields which slipped back at the end of last week, are seeing a little bit of a rebound as well, as investors mull the timing of when to expect the first rate rises from various central banks after last week's unexpectedly dovish tilt.
This next couple of weeks is likely to be a key test for both the Federal Reserve and the Bank of England, with the latest US PPI and CPI numbers for October expected to show further upward pressure on prices later this week, with the UK numbers due for release next week.
Having seen two successive weeks of declines, crude oil prices have rebounded modestly, after Saudi Aramco raised its crude selling price to Asia, suggesting that they have confidence in the demand outlook despite a slump in China's oil imports in October. US rig counts rose by another 6 last week to 550 from 544, with Saudi Arabia ignoring calls from the US to raise production further, as the Biden administration mulled the possibility of doing an SPR release.
Ethereum prices have hit new record highs today, with bitcoin lagging somewhat behind and only modestly below its own record highs from last month. The increasing popularity of non-fungible tokens or NFT's appears to be driving the move higher in Ethereum, given that it is the backbone on which most of them are run.
Gold prices have hit a two-month high today, as the aftershocks of last week's unexpectedly dovish tilt from central banks has continued to push prices higher. The next key resistance is the mid-summer highs of $1,835 which has been a solid barrier since mid-July. It would probably take a further sharp fall in bond yields, and significant further US dollar weakness for a move higher to play out, neither of which looks very likely at this moment in time. It would need a sustained move through $1,840 to potentially retest the highs this year, above $1,900.
Cryptocurrencies outlook for 2022
Cryptocurrencies emerged as a legitimate asset class in 2021, gaining acceptance among traditional investors and financial institutions globally.


This women's dotted dress is appropriate for so many occasions. The fabric feels soft and silky to the touch and is a pleasure to wear. Wear it to the office and to the theater afterward. No matter where you wear this cute dress, you will look great! It is a figure-flattering midi length and comes in four color choices. Select your favorite between dark green, deep red, white, navy or black dotted fabric. Each color has a coordinating colored dots printed throughout. The fabric content is a high quality cotton blend that is machine washable. We recommend tumbling dry on a low heat setting. The bodice is snugly fitted and has a vee neckline. The waist is a flattering empire style with a moderately full skirt attached. This dress closes with a long, concealed zipper in back. The length hits right around the middle of the knee. This dress has closely fitted, three quarter length sleeves. We are offering it available for purchase in sizes Small, Medium, Large, Extra Large and Extra-Extra Large.


Experience the Power of Atellica!
How can I transform my lab to deliver peak performance?
ADVIA® Automation Solutions offer performance-driven analytical power in a reduced footprint, minimizing lab renovation, and accelerating improvement.
We have the experience to deliver a total solution.
†Under FDA review. Not available for sale in the U.S. Due to local regulations, not all products are available in all countries.
*Not available for sale in the U.S.
Note: Sysmex is a registered trademark of the Sysmex Corporation.


text:
Regional themes > HIV/AIDS Last update: 2020-11-27
The HIV/AIDS Epidemic in Sub-Saharan Africa, Jun 2007
Regional economic outlook: Sub-Saharan Africa, Sep 2006
Development planning and HIV/AIDS in sub-Saharan Africa
UNDP Regional Project on HIV & Development
Mirjam van Donk
Posted with permission of Mirjam van Donk.
Foreword - 10Kb < 1min (1 pages)
Acknowledgements - 42Kb < 1min (1 pages)
Acronyms - 12Kb < 1min (2 pages)
Introduction - 79Kb < 1min (4 pages)
Development planning in sub-Saharan Africa: A brief overview - 127Kb ~ 1 min (12 pages)
A typology of development planning in sub-Saharan Africa - 48Kb < 1min (10 pages)
Development planning and HIV/AIDS: An assessment of principal development planning frameworks - 211Kb ~ 1 min (16 pages)
Introduction to the country assessments - 58Kb < 1min (10 pages)
Cameroon - 298Kb ~ 2 min (26 pages)
Senegal - 142Kb ~ 1 min (22 pages)
Uganda - 153Kb ~ 1 min (26 pages)
Zimbabwe - 104Kb ~ 1 min (20 pages)
Synthesis of country assessments - 171Kb ~ 1 min (12 pages)
Conclusion and recommendations - 97Kb ~ 1 min (10 pages)
Bibliography - 36Kb < 1min (8 pages)
Appendices - 147Kb ~ 1 min (20 pages)


text:
List of Summer Internships in Germany 2022 | Fully Funded
January 4, 2022 - by admin
Spend the summer of the next year in Germany. Numerous Student Opportunities. A Comprehensive List of Summer Internship Opportunities in Germany for Bachelor's, Master's, and Postgraduate Students in 2022. They welcome applications from people of all nationalities. This internship will cover all costs. These are some of the most well-known internships in Germany, although there are many more Fully Funded Internships in Germany for International Students. We will notify you of everything.
German proficiency is not essential. If you're interested in having a fascinating cross-cultural encounter, these are Excellent Opportunities. Additionally, the training involves site visits. Male and female participants are welcome to apply. There is no requirement for IELTS/TOEFL. This may be your chance.
You are not required to have a CGPA. You are not required to have any previous work experience. Students from any and all academic backgrounds are welcome to apply. Despite the name, this is not a university course. All undergraduate and graduate students in all fields are eligible to apply. If so, are you looking forward to it? In 2022, the following is a list of German Summer Internships.
List of Summer Internships in Germany 2022
Country: Berlin, Germany
Financial Coverage: Fully Funded
1# Berlin Summer Student Program in Germany
Another German Summer is upon us! The Berlin Summer Student Program 2022 is now accepting applications. Invites international students from all around the globe for an eight-week summer study program at Helmholtz-Zentrum Berlin University in Berlin.
Deadline: 07th February 2022
2# Max Planck Summer Internship in Germany
The Max Planck Summer Internship in Germany 2022 is currently accepting applications. For students pursuing undergraduate, master's, or doctoral degrees,
3# CrossCulture Exchange Program 2022
Ifa's Cross-Cultural Program has now opened its doors to participants. If you're an international student who wants to spend three months in Germany, this is the program for you! The exchange program for cross-cultural students will cover all expenses.
Deadline: 31st February 2022
4# RISE Germany Internship Program 2022
The Summer Program 2022 is now accepting applications. First and foremost, this is a fully-funded German summer internship. Second, each year, approximately 300 internships are offered.
Please also do follow our Facebook Page ,WHATSAPP GROUP, Telegram Group for the latest Scholarship Opportunities update.
European Union Blue Book Traineeship 2023 | Submit (Applications)
Blue Book European Union Traineeship 2023 (Fully Funded)
Fully Funded Internships in 2023 for Fresh Graduates
Previous Article List of January Scholarships, Exchange Program Deadline 2022 | Fully Funded
Next Article Scholarships in Switzerland For 2022 Without IELTS | Fully Funded


With its clock tower and striking Victorian architecture, Principal Manchester is an unmistakable landmark in the city's skyline. A magnificent, terracotta Grade II listed building, the hotel has a history dating back to 1890, when it first opened as The Refuge Assurance Company headquarters.
Opposite Oxford Road Station and just a 10-minute walk from Manchester Piccadilly, Principal Manchester is perfectly placed for business travel and weekend getaways, and is close to many of the city's attractions.
Discover the best things to do in Manchester with our Principal insider's guide here.
Join us in The Refuge Dining Room & Public Bar for globally inspired small plates, craft beers and cocktails curated by the award-winning team from Volta.
From the largest hotel ballroom in the northwest of England to the oak-panelled Directors' boardroom, every one of our meeting rooms has a story to tell.
If you're looking for somewhere a little out of the ordinary, Principal Manchester combines Victorian grandeur with quirky detail and modern swagger.


In the sentence "She's no longer suffering," to what, to whom does "she" refer? What does that present tense mean?
The artist is the one who liberates a life, a powerful life, a life that's more than personal, it's more than his/her life.
Tell me, why are you filming me like that?
Because I want to show that there is no distance in the world.
It never occurred to us that when we watched it [No Home Movie, 2015] for the first time, not only would we be mourning the death of Akerman's mother, but mourning the death of the filmmaker herself – which feels almost like the death of cinema. You can read into this film whatever you like. An image of a tree moving violently in the desert wind, its branches always springing back, is an image of survival, yet there are no survivors here.
During the opening shot of Chantal Akerman's No Home Movie, a handheld camera lingers on a desert for approximately four minutes, the camera's near stillness at odds with the force of the wind against the branches in the immediate foreground, screen left. Evidence of human life exists in the passage of three vehicles nearly indiscernible in extreme long shot through the windblown dusty frame. Cut to Michael Haneke's Amour (2012): a fire brigade storms a bolted door. "Is anyone home?", demands one of the men. Cut finally to Philip Hoffman's What These Ashes Wanted (2001): "What these ashes wanted, I felt sure, was not containment but participation. Not an enclosure of memory, but the world – Mark Doty", reads the opening shot, white text on black.
At six minutes and five seconds into No Home Movie, the film cuts from a handheld high angle shot of a backyard to a close-up shot from behind Natalia Akerman, the filmmaker's mother. Natalia pushes a door screen left and enters the living space. A camera/Chantal follows Natalia before stopping at the doorway. While the camera records this modest entry into an apartment's open space, the relation between subject/mother and camera/daughter reveals both the comfort of a family home and a hesitant urgency to fully witness, capture and hold dear. The camera's sway in Akerman's hands suggests at once a materiality of experience (as in the home movie footage of What These Ashes Wanted) and the delicate ephemerality of an always already lost present. Such felt proximity to transient subject, space and time in these early moments of Akerman's final film, with its Akerman-esque rhythm of extended long take and sudden break, enacts a flow between intimate 'real life' duration and the insistent minimalism of an artist devoted throughout her career to an ethics of a "very frontal gaze", as Adrian Martin and Cristina Álvarez López suggest.  The seeming formalist/realist juxtaposition of No Home Movie intensifies through an alternation between fluid movement, as with the searching camera of Amour's first suspenseful moments and the opening frolicking-in-the-snow movements of What These Ashes Wanted, and painful stasis, as in the minimalist tableaux and stills of domesticity and illness that feature in Akerman's, Haneke's and Hoffman's films, respectively.
Amour's first jolting audiovisual moment, the dismantling of the bolted entrance to Anne (Emmanuelle Riva) and Georges' (Jean-Louis Trintignant) Parisian apartment, foregrounds the film's liminal confrontations at thresholds between breath and suffocation, liberty and immobility, life and death. Within a space of seemingly stopped time, Amour accentuates acts of perception and self-perception through multiple boundaries and limits, frames and windows, stutterings and stammerings, gazes and glimpses of paintings, mirrors and a pervasiveness of water. "The door is open". On these words, a detective hastens through the apartment. The camera follows to the opening and then interior of Anne and Georges' bedroom where Anne's corpse lies peacefully as the camera rests in medium-long view of the body. Yellow, white and purple petals about her head adorn her pillow and face; her hands clasp a small bouquet.
Cut to white text on black: "AMOUR".
[P]ain comes unsharably into our midst as at once that which cannot be denied and that which cannot be confirmed.
[T]his tidal swell of everything and anything, in bits, in fragments, this method that each seeks to invent and employ to contain their memories and fantasies, this dialectic of memory and imagination, is not arbitrary.
"Whichever way we turn, it seems hard to capture the features of a subject that is searching for itself" writes Raymond Bellour with regard to cinematic self-portraits and ongoing "talk of subjective cinema and of autobiography".  As Bellour observes, autobiography in fact disappears by way of alternative words, "self-portraits, portraits of friends and family; letters, travel diaries, private news; diaries; confessions; childhood memories; filmmakers' journals".  What are left are instances of filmic (self-)portraiture that pierce and affront; they are flashes of a lifetime linked through the "precariousness of a subject", to borrow a phrase of Bellour's  . Through a subject's shadows and the frailty of its imaging, frail inasmuch as these images resist implications of a self's constitution to be fully seen and known just as one's all-too-human pain eclipses straightforward and literal representation, we glimpse not fixed truths but ceaseless questionings, waves, foldings and layerings of time, memory and affective absences that forever linger.
Unflinching gazes at pain and loss in No Home Movie, Amour and What These Ashes Wanted materialise through landscapes, paintings, photographs, doorways, silences and stillnesses in homes once active and now desolate. While these gazes may seem cold or distant, these images endlessly transition between the embodiment of a most personal, human gaze subjected to pain and an impersonal overarching perception that exceeds the confines of the deserted homes. Here, truths pertain not to authenticity or lifelong complete personal narratives but self-realisations in moments no more profound than one's encounter with death. Insofar as the films' evocations of pain, memory and quests for self and truth speak to circuits between personal-impersonal, intimate-universal, present and past-future as well as to viewer-character-film, they reveal the cinematic potential to directly present time's perpetual duration.  By so doing, their self-portraits expose ourselves to ourselves.
Following the opening shot of Doty's white text on black, the first moving images of What These Ashes Wanted recall the first moments of Alan Schneider and Samuel Beckett's Film (1965), the latter film given firstly to the problem of being perceived by human or nonhuman alike. "The character can limit the danger", as writes Deleuze on Film, "by walking along a wall; in this way, he leaves only one side unprotected. To make a character walk along a wall is the first cinematographic act (all the great filmmakers have attempted it)".  Indeed, so too has Hoffman.
Both Film and What These Ashes Wanted commence with canted framings and seconds of dizzying speed that seek the subjects of the camera's perception against brick walls, their tactile textures made more haptic by the swift movements and nearness of pursuing camera and pursued subject – veiled or hooded, Buster Keaton or Marian McMahon respectively – alongside the hard surfaces.
With "all perception as such being the perception of perception", as Deleuze reminds, insofar as we do not perceive without being perceived, from its outset What These Ashes Wanted makes clear its own act of seeing and, moreover, its perception of itself.  While Hoffman's persistent, handheld camera incessantly interrogates Marian in sequences throughout the film, increasingly the camera's gaze opens outwards towards filmmaker (himself), camera and viewer. A doubling process or folding occurs that comprises both the externalisation of a self's becoming-other beyond itself – through its intensifying perception of a greater immeasurability or immensity of time and life as voiced by Marian and also observed by Hoffman – and an internalisation that enfolds such perception into a larger collective universal memory and possible future.  "This, then, is what was so terrifying: that perception was the perception of the self by itself", continues Deleuze.  "If you could have a ritual for death what would it be, and would it be private or shared?" Marian asks Philip. "I think it would be shared", he replies.
Through the act of living with and sharing Marian's death, Hoffman seems to engage in a simultaneous act of self-reconstruction and dissolution. After Marian's death he is urged to heal swiftly, as suggested by rapidly cut images following the title screen of Hoffman's hands as he sorts through pieces of broken pottery.
Marian: It's really hard for me to do this. I feel like I have to entertain you. That's not what I really mean to say. […] I feel like I'm not really talking about things that I'd want to talk about, things that I'd want to talk about with you.
Philip: Yeah, because you are talking to the camera.
Marian: Yeah. […] Maybe, we should have somebody filming us. Someone filming you filming me.
In speeds therefore of conjoined mobility and immobility that link every future breath with every former sigh, What These Ashes Wanted achieves an undoing of assured subjectivity, of both Marian's and the filmmaker's own.
In close and extreme close-ups, Hoffman's hands tend the broken pieces while the film cuts, on the sound of an answering machine's tone, to slowed 'home movie' footage of Marian walking past columns in front of an Egyptian monument. These are the first moments of audio, heard against Marian's seemingly majestic stride by its slowness and the image's studium, its grandeur in sepia tones. The audio, a man's voice heard quoting from a book, describes an ancient broken cup too precious to discard so "it was repaired not with glue but with a seam of gold solder. And I think our poems are often like that gold solder, repairing the break in what can never be restored perfectly. The gold repair adds a kind of beauty to the cup, making visible part of its history". Inasmuch as What These Ashes Wanted documents Hoffman's reclamation of self and memory fragments through the making of the film, the temporal past-future divide persists.
At last, at approximately 54 minutes into the film, the first frontal clear shot of Hoffman, a self-portrait, surfaces while several frontal shots of Marian repeat throughout.
Of this sense of a self's endless becoming in time, between moments and ever in flux, and this self-portrait, Bellour's remarks, with regard to Philippe Lejeune's thoughts on Raymond Depardon's Les Années déclic (1983), are apropos: "it is more direct and more 'real' than a written narrative could ever be, with that face staring at you and saying, 'I am me, and that used to be me'; on the other hand, this former self never seems to really join the self who is speaking to us".  If the journey of What These Ashes Wanted is to grant form to chaos, presence to absence, the task remains an impossibility. But by this final confrontation of the film's, as expressed via a self-portrait seen against the sound of a film projector, we are reminded that this self and his image exist in time. In pursuit perhaps of a beloved other's truth, he creates his own and releases hers to chance. "17's the number … 1 + 7 is 8 … 7 is doing, 8 is infinity … 17's the number. She was born on May 17 and died on November 17".
Not to suppress mourning (suffering) (the stupid notion that time will do away with such a thing) but to change it, transform it, to shift it from a static stage (stasis, obstruction, recurrences of the same thing) to a fluid state.
Life … So long. What a long life.
Imagining is, in effect, the ground of last resort. That is, should it happen that the world fails to provide an object, the imagination is there, almost on an emergency stand-by basis, as a last resource for the generation of objects.
Following the 'Opheliac' discovery of the prologue and silent black of its title screens, Amour confronts its filmic audience with another audience. The film cuts to an interior shot within the main auditorium of the Théâtre des Champs-Élysées as audience members find their seats to directly face the fixed camera – and viewer's gaze – situated 'onstage', as befits those with active roles to play. Anne and Georges are discernible in the audience. The auditorium's lights dim as the stage lights begin to reflect from these gazes that face our own. Coughs of various audience members subside. Applause. Pause. The pianist hidden from the viewer's gaze begins to play. An anticipatory hush remains as the music proceeds past what musician and music critic Frances Wilson describes as the opening "bare, arresting G octave" of Schubert's Impromptu in C minor, Op. 90, D.899 No. 1.  With the audience in the auditorium, we wait, listen, watch, unknowingly prefiguring means of response for the extended portraits of pain to follow.
With increasing volume, the ominous progressions of the Impromptu's theme bridge across a rapid montage of early moments, from the 'facedown' of filmic and profilmic audiences and the rapt attention the pianist claims, over a brief backstage post-performance congratulatory hello between the pianist, Anne and Georges, and, at last, to Anne and Georges' bus ride home to their apartment. The music suspends ambiguously as the film cuts to the couple entering their home. As opposed to the film's first shot of a fire brigade storming the bolted front door, Georges calmly opens this door and observes a "not very professional" burglary attempt. Anne relates a tale in which another apartment was burgled; the most valuable paintings were cut from their frames while the intruders disappeared without a trace. The couple nevertheless remain contented in their delight over the performance that Anne's student offered that evening.
When a film at once expresses experiences that are at once so vulnerable and frail as reassured and shockingly audacious, perhaps its name might only be 'love'.
I wish I could convey to you the simplicity – the lack of affectation – of this couple who had come to place an inscribed wooden slat in the cat cemetery so their cat Tora would be protected. No she wasn't dead, only run away. But on the day of her death no one would know how to pray for her, how to intercede with death so that he would call her by her right name. So they had to come there, both of them, under the rain, to perform the rite that would repair the web of time where it had been broken.
As in Akerman's No Home Movie, Amour's aesthetic of simplicity in composition and performance – the extended duration of takes, sparsity of close shots, framing of all shots, limited movements and cuts, vivid alternations between silence and repeated diegetic refrains – starkly exposes its characters and viewers to limits of existence rarely exposed in (narrative) film. Unlike the domestic spaces of No Home Movie and What These Ashes Wanted that recall, as do 'autobiographical documentaries', authentic, 'real and true' sources and stories, the theatricality of Amour assumes a steady modulating pace, as do narratives of suspense and violence of any kind. But the nakedness and simplicity revealed by all three films – that extend beyond conventional autobiographical documentary or domestic drama generic definition – allows quotidian life in its horrific and beautiful intensity to emerge.
Amour need not, again, present the entirety or any of Anne and Georges' prior existence. Inasmuch as Marguerite Duras writes in Hiroshima mon amour of "the stare of the cat-Riva" (so-named for Riva as 'She') and of how "[m]emory [lives] in these walls, one with the stone, the air, the earth", memory lives also within these Parisian walls.  The first time the hallway appears from a view nearest Anne and Georges' bedroom occurs after the prologue and brief concert montage when the couple enters their apartment in a medium long/plan américain static shot. The camera remains fixed each time the hallway is seen from this view, as when other spaces of the apartment are seen. Shot scales alternate between long distances from the characters (as when Anne returns in her wheelchair) and point-of-view framings from medium and close range. In key montage moments, the apartment is vacant. The stasis of several apartment shots counters the prologue's following shot as well as other exceptional moments of camera movement in the film, such as during Georges' nightmare through a flooded hallway. The former instance, that trails the detective from the entrance directly to the sealed bedroom door, exists beyond the time of the couple. In all cases, as a character unto itself, the apartment sees.
The "landscape sees", Deleuze and Guattari insist with regard to the concept of a percept or a pre-individual seeing detached from any fixed subject, an anonymous nonhuman film-eye.  "The percept is the landscape before man, in the absence of man".  As if in response to Anne and Georges' experiences, immediately following the sequence of Anne's stroke and prior to her return home from hospital, half-paralysed, the film inserts another brief montage of five night and deeply shadowed, medium long shots: 1) hallway view from kitchen towards bedroom; 2) bedroom view towards the windows of the hallway; 3) living room shot with the chair and its pair where Georges often sits bottom screen right; 4) never used dining room seen only when Anne and Georges are absent; and 5) the kitchen, left assumedly 'as is' as Georges hastened to the hospital with Anne. Taken as if from the perspective of an intruder, or moreover the apartment itself, these views are seen against background street noise. In each of the five shots, frames appear within the camera's own frame despite the low light; countless framed artworks are visible as are window, doorway and rectangular 'frames' within furniture frames. The notion of a frame, which again repeats the camera's delimiting perception and the viewer's own, underscores the eyes and landscapes of a world that perceive and are perceived.
I don't remember the film either. But I remember the emotions.
As Anne grows weaker and frames of the home seemingly close-in on Anne and Georges – her wheelchair but fits through the passage from hallway to living room and spaces appear ever tighter as the couple adapt to Anne's abilities and to the limits of the world between the two – the sense of an unseen but felt presence mounts.
Intruding senses of judgement, well meaning, self-absorption and, at worst, cruelty and inhumanity find their ways into Anne and Georges' home as the couple work to find each other and at last free themselves from the terror and pain that have nearly consumed their lives. With surmounting indignities, Anne's disempowerment develops. A nurse bathes Anne and changes her diaper; in another moment, another nurse roughly brushes Anne's hair and foists a mirror in her face.
As the landscape painting above the couple's bed also bears witness to this nurse's ignorance, "Well?… What do we say to that? Aren't we a pretty sight?", the film recalls Riva's forthright self-confrontation in Hiroshima mon amour that realised the younger woman's break from oppressive distinctions that facilitated her public humiliation, and countless other public humiliations of women in wartime and post-war Europe.  In the earlier film, the process of the woman's self-dissolution pushes the woman to and beyond the limits of her identity as woman.
In Amour, as Anne and Georges come to perceive both dangers and potentials of self-fracturing while their senses of pain mirror one another, there seems no means of escape except through complete self-abandonment. Driven by his love for Anne that is itself inseparable from a sense of a life and a peace that Anne deserves to claim, Georges exceeds himself … and releases Anne. Throughout, the landscape paintings have waited, listened and watched.
We go out with Akerman into the world only to look inward.
We are beholding a world which has gone beneath the waves.
You can again, as Hogg and Roberts state, read whatever you like into No Home Movie. But the film is not, as its title reiterates, a home movie. Temptation might be to also label the film autobiographical although it is much more than that, despite its materials of domestic borders and subjects filmed with Akerman-esque distant proximity and stasis, and interspersed with long takes of landscapes.
What Akerman's final film materialises is not only a portrait of the filmic medium and perception itself but also a portrayal of Akerman's self in time, as in the spirit of Beckett's Film. As also evidenced by Hoffman in What These Ashes Wanted and Riva in Amour, No Home Movie persists as a moving, ceaselessly questioning self-portrait of both medium and artist that captures fractions of the soundscapes and landscapes that comprise Akerman's world. This is not (or no longer?) home but this is Akerman, the film, as conceived by Akerman.
The publicity materials for Akerman's installation claim that "Maniac Shadows brings a new complexity to Akerman's forte, the portrayal of the disjunction between subjective voice and objective vision".  However, such tension was always already there in Akerman's works that emanate from the deeply personal outwards, to worlds and its injustices Akerman captures, and back, to a world with its own pains and sufferings writ as large. The internalisation/externalisation process is there, forever entwined. From this perceptive doubling of artist and medium, we see ourselves seeing, other subjects and Akerman herself across several of her films, notably and lastly No Home Movie. Instead of 'reading into' the film, might we instead experience the encounter with such a portrait not as an enticement to know and claim but rather observe and listen with as much humility?
 See Nadine Boljkovac, Untimely Affects: Gilles Deleuze and an Ethics of Cinema (Edinburgh: Edinburgh University Press, 2015), pp. 146-151.
 See Jacques Derrida (trans. Pascale-Anne Brault and Michael Naas), Memoirs of the Blind: The Self-Portrait and Other Ruins (Chicago: The University of Chicago Press, 1993), pp. 44; 55.
 Philip Hoffman, What These Ashes Wanted script, 6 October 2001, http://philiphoffman.ca/what-these-ashes-wanted-script/ (last accessed: 17 May 2017).
 Cristina Álvarez López and Adrian Martin, "Chantal Akerman: A Primer", Sight and Sound, Vol. 25 No. 2 (February 2015), http://www.bfi.org.uk/news-opinion/sight-sound-magazine/features/chantal-akerman-primer (last accessed: 19 February 2015).
 Ernest Legouvé (music Hector Berlioz), "La mort d'Ophélie" ("Ophelia's Death"), Tristia, Op. 18, Movement 2. See also Graham Johnson and Richard Stokes, A French Song Companion (Oxford: Oxford University Press, 2000), p. 19.
 Raymond Bellour (trans. Allyn Hardyck), Between-the-Images (Zurich: JRP/Ringier, 2012), pp. 327, 334.
 Ibid., p. 335. See also Gilles Deleuze (trans. Paul Patton), Difference and Repetition (New York: Columbia University Press, 1994), p. 107 and Deleuze (trans. Hugh Tomlinson and Robert Galeta), Cinema 2: The Time-Image (Minneapolis: The University of Minnesota Press, 1989), Chapter 6.
 See Boljkovac, "Introduction" in Untimely Affects.
 Gilles Deleuze (trans. Daniel W. Smith and Michael A. Greco), Essays Critical and Clinical (Minneapolis: University of Minnesota Press, 1997), p. 24.
 See Boljkovac, Untimely Affects, p. 101.
 Deleuze, Essays Critical and Clinical, p. 25.
 Brenda Longfellow, "Philip Hoffman's Camera Lucida" in Mike Hoolboom and Karyn Sandlos (eds), Landscape with Shipwreck: First Person Cinema and the Films of Philip Hoffman (Toronto: Images Festival of Independent Film and Video and Insomniac Press, 2001), p. 207.
 See Gilles Deleuze (trans. Mark Lester with Charles Stivale), The Logic of Sense (New York: Columbia University Press, 1990), p. 152. See also Maurice Blanchot (trans. Ann Smock), The Space of Literature (Lincoln: University of Nebraska Press, 1982), p. 155.
 Frances Wilson, "Traversing Schubert's Opus 90 Impromptus", The Cross-Eyed Pianist, 8 October 2011, https://crosseyedpianist.com/2011/10/08/traversing-schubert-opus-90-impromptus/ (last accessed: 17 November 2017).
 See Deleuze, The Logic of Sense.
 See Wilson, "Traversing Schubert's Opus 90 Impromptus".
 Elaine Scarry, The Body in Pain: The Making and Unmaking of the World (New York: Oxford University Press, 1985), p. 10.
 See Gilles Deleuze and Claire Parnet (trans. Hugh Tomlinson and Barbara Habberjam), Dialogues II (New York: Columbia University Press, 2002), p. 29. See also Deleuze (trans. Anne Boyman), Pure Immanence: Essays on a Life (New York: Zone Books, 2001), p. 29 and Boljkovac, "Signs Without Name" in Untimely Affects.
 Deleuze, Pure Immanence, p. 29.
 Marguerite Duras (trans. Richard Seaver), Hiroshima mon amour (New York: Grove Press, Inc., 1961) pp. 98; 96.
 Gilles Deleuze and Félix Guattari (trans. Hugh Tomlinson and Graham Burchell), What is Philosophy? (New York: Columbia University Press, 1994), p. 169.
 Michael Haneke, Amour (2012) screenplay https://www.sonyclassics.com/awards-information/amour_screenplay.pdf (accessed 1 May 2013).
 Deleuze and Guattari, What is Philosophy? p. 169.
 See Centre d'art contemporain de la Ferme du Buisson, "Chantal Akerman: Maniac Shadows Exhibition: Press Kit", 19 November 2016 and Sunday 19 Feb 2017, http://lafermedubuisson.com/media/fdb/173818-press-kit_chantal-akerman_maniac-shadows.pdf (last accessed: 17 November 2016).
 See Boljkovac, Untimely Affects, p. 157. See also Deleuze, Difference and Repetition, pp. 89-90; 94.
 Many thanks to Saige Walton and Adrian Martin, who inspired some of my thinking on Amour and Hiroshima mon amour in 2013. Thanks also to Philip Hoffman for the exchanges we shared following a screening of What These Ashes Wanted in Brenda Longfellow's seminar a few months after my Dad died (17 May 1945-30 April 2002). With love always to my Mom and Hanjo Berressem.


You have wanted to try your hand at eco-gardening for awhile but were stuck on how to go about it Gardening is your passion and you just can't wait to start. You tried to buy a shed but there is none that seems to match the ideas you have in your head. After searching far and wide, you have decided that you will bring your ideas to life by building your own.
Now that you are ready to get your hands dirty, save the environment with your eco garden, let us recommend some tools to help you along.
A wood lathe. The wood comes in all shapes and sizes. Use the wood lathe to form it in your desired shape and make sure to adjust the tension in the belt. A set of nails to hold everything together. A claw hammer to drive the nails in It is important to have a right-sized, properly balanced hammer so that you do not strain much and this makes the work easier.
A welding helmet and other welding tools. Pieces will need to be put together and you need to protect yourself from the bright light from the welding machine and also the flying pieces and that is why a good welding helmet is really a necessity in this case. Read http://www.bestcabinettablesaw.com/welding-helmet-reviews/ to help you choose the best. A tape measure to help you measure the dimensions you will need for your garden. A retractable one is the best option. When working on your materials, you need to get the measurements right otherwise you might end up with some pieces longer than the other and an all-around shoddy job.
What's left now is the roofing. Living roofs are all the rage these days. The most common ones are made of sedum and they can house a wide range of living organisms. Make sure that the canopy you made is strong because this option can be quite heavy. It will need to be waterproofed too in order to keep the wood from retaining water and rotting away. Another roofing option can be solar panels and these will help power the shed. Talk about shooting two birds with one stone.
We hope with these few recommendations, you are now able to build an eco-garden of your dreams with a lot of ease and that you will perfect some skills along the way. You might adjust a few things to what suits you but these are generally the basics needed for you to start.