text:
gevent / changelog.rst
Release 1.0b3
- New gevent.subprocess module
- New gevent.fileobject module
- Fixed ThreadPool to discard references of the objects passed to it (function, arguments) asap. Previously they could be stored for unlimited time until the thread gets a new job.
- Fixed #138: gevent.pool.Pool().imap_unordered hangs with an empty iterator. Thanks to exproxus.
- Fixed #127: ssl.py could raise TypeError in certain cases. Thanks to Johan Mjones.
- Fixed socket.makefile() to keep the timeout setting of the socket instance. Thanks to Colin Marc.
- Added 'copy()' method to queues.
- The 'nochild' event loop config option is removed. The install_sigchld offer more flexible way of enabling child watchers.
- core: all watchers except for 'child' now accept new 'priority' keyword argument
- gevent.Timeout accepts new arguments: 'ref' and 'priority'. The default priority for Timeout is -1.
- Hub.wait() uses Waiter now instead of raw switching
- Updated libev to the latest CVS version
- Made pywsgi to raise an AssertionError if non-zero content-length is passed to start_response(204/304) or if non-empty body is attempted to be written for 304/204 response
- Removed pywsgi feature to capitalize the passed headers.
- Fixed util/cythonpp.py to work on python3.2 (#123). Patch by Alexandre Kandalintsev.
- Added 'closed' readonly property to socket.
- Added 'ref' read/write property to socket.
- setup.py now parses CARES_EMBED and LIBEV_EMBED parameters, in addition to EMBED.
- gevent.reinit() and gevent.fork() only reinit hub if it was created and do not create it themselves
- Fixed setup.py not to add libev and c-ares to include dirs in non-embed mode. Patch by Ralf Schmitt.
- Renamed util/make_dist.py to util/makedist.py
- testrunner.py now saves more information about the system; the stat printing functionality is moved to a separate util/stat.py script.
Release 1.0b2
Major and backward-incompatible changes:
- Made the threadpool-based resolver the default. To enable the ares-based resolver, set GEVENT_RESOLVER=ares env var.
- Added support for child watchers (not available on Windows). - Libev loop now reaps all children by default. - If NOCHILD flag is passed to the loop, child watchers and child reaping are disabled.
- Renamed gevent.coros to gevent.lock. The gevent.coros is still available but deprecated.
- Added 'stat' watchers to loop.
- The setup.py now recognizes gevent_embed env var. When set to "no", bundled c-ares and libev are ignored.
- Added optional 'ref' argument to sleep(). When ref=false, the watchers created by sleep() do not hold gevent.run() from exiting.
- ThreadPool now calls Hub.handle_error for exceptions in worker threads.
- ThreadPool got new method: apply_e.
- Added new extension module gevent._util and moved gevent.core.set_exc_info function there.
- Added new extension module gevent._semaphore. It contains Semaphore class which is imported by gevent.lock as gevent.lock.Semaphore. Providing Semaphore in extension module ensures that trace function set with settrace will not be called during __exit__. Thanks to Ralf Schmitt.
- It is now possible to kill or pre-spawn threads in ThreadPool by setting its 'size' property.
- Make sure the default loop cannot be destroyed more than once, thus crashing the process.
- Make Hub.destroy() method not to destroy the default loop, unless destroy_loop is True. Non-default loops are still destroyed by default.
- loop: Removed properties from loop: fdchangecnt, timercnt, asynccnt.
- loop: Added properties: sigfd, origflags, origflags_int
- loop: The EVFLAG_NOENV is now always passed to libev. Thus LIBEV_FLAGS env variable is no longer checked. Use GEVENT_BACKEND.
- Check that the argument of link() is callable. Raise TypeError when it's not.
- Fixed TypeError in baseserver when parsing an address.
- Pool: made add() and discard() usable by external users. Thanks to Danil Eremeev.
- When specifying a class to import, it is not possible to use format path/package.module.name
- pywsgi: Made sure format_request() does not fail if 'status' attribute is not set yet
- pywsgi: Added REMOTE_PORT variable to the environment.
- portforwarder.py now shows how to use gevent.run() to implement graceful shutdown of a server.
- psycopg2_pool.py: Changed execute() to return rowcount.
- psycopg2_pool.py: Added fetchall() and fetchiter() methods.
Developer utilities:
- When building, CYTHON env variable can be used to specify Cython executable to use.
- util/make_dist.py now recongizes --fast and --revert options. Previous --rsync option is removed.
- Added util/winvbox.py which automates building/testing/making binaries on Windows VM.
- Fixed typos in exception handling code in testrunner.py
- Fixed patching unittest.runner on Python2.7. This caused the details of test cases run lost.
- Made testrunner.py kill the whole process group after test is done.
Release 1.0b1
Backward-incompatible changes:
- Removed "link to greenlet" feature of Greenlet.
- If greenlet module older than 0.3.2 is used, then greenlet.GreenletExit.__bases__ is monkey patched to derive from BaseException and not Exception. That way gevent.GreenletExit is always derived from BaseException, regardless of installed greenlet version.
- Some code supporting Python 2.4 has been removed.
Release highlights:
- Added thread pool: gevent.threadpool.ThreadPool.
- Added thread pool-based resolver. Enable with GEVENT_RESOLVER=thread.
- Added UDP server: gevent.server.DatagramServer
- A "configure" is now run on libev. This fixes a problem of 'kqueue' not being available on Mac OS X.
- Gevent recognizes some environment variables now: - GEVENT_BACKEND allows passing argument to loop, e.g. "GEVENT_BACKEND=select" for force select backend - GEVENT_RESOLVER allows choosing resolver class. - GEVENT_THREADPOOL allows choosing thread pool class.
- Added new examples: portforwarder, psycopg2_pool.py, threadpool.py, udp_server.py
- Fixed non-embedding build. To build against system libev, remove or rename 'libev' directory. To build against system c-ares, remove or rename 'c-ares'. Thanks to Örjan Persson.
misc: - gevent.joinall() method now accepts optional 'count' keyword. - gevent.fork() only calls reinit() in the child process now. - gevent.run() now returns False when exiting because of timeout or event (previous None). - Hub got a new method: destroy(). - Hub got a new property: threadpool.
ares.pyx: - Fixed issue #104: made ares_host_result pickable. Thanks to Shaun Cutts.
pywsgi: - Removed unused deprecated 'wfile' property from WSGIHandler - Fixed issue #92: raise IOError on truncated POST requests. - Fixed issue #93: do not sent multiple "100 continue" responses
core: - Fixed issue #97: the timer watcher now calls ev_now_update() in start() and again() unless 'update' keyword is passed and set to False. - add set_syserr_cb() function; it's used by gevent internally. - gevent now installs syserr callback using libev's set_syserr_cb. This callback is called when libev encounters an error it cannot recover from. The default action is to print a message and abort. With the callback installed, a SystemError() is now raised in the main greenlet. - renamed 'backend_fd' property to 'fileno()' method. (not available if you build gevent against system libev) - added 'asynccnt' property (not available if you build gevent against system libev) - made loop.__repr__ output a bit more compact - the watchers check the arguments for validness now (previously invalid argument would crash libev). - The 'async' watcher now has send() method; - fixed time() function - libev has been upgraded to latest CVS version. - libev has been patched to use send()/recv() for evpipe on windows when libev_vfd.h is in effect
resolver_ares: - Slightly improved compatibility with stdlib's socket in some error cases.
socket: - Fixed close() method not to reference any globals - Fixed issue #115: _dummy gets unexpected Timeout arg - Removed _fileobject used for python 2.4 compatibility in socket.py - Fixed issue #94: fallback to buffer if memoryview fails in _get_memory on python 2.7
monkey: - Removed patch_httplib() - Fixed issue #112: threading._sleep is not patched. Thanks to David LaBissoniere. - Added get_unpatched() function. However, it is slightly broken at the moment.
backdoor: - make 'locals()' not spew out __builtin__.__dict__ in backdoor - add optional banner argument to BackdoorServer
servers: - add server.DatagramServer; - StreamServer: 'ssl_enabled' is now a read-only property - servers no longer have 'kill' method; it has been renamed to 'close'. - listeners can now be configured as strings, e.g. ':80' or 80 - modify baseserver.BaseServer in such a way that makes it a good base class for both StreamServer and DatagramServer - BaseServer no longer accepts 'backlog' parameter. It is now done by StreamServer. - BaseServer implements start_accepting() and stop_accepting() methods - BaseServer now implements "temporarily stop accepting" strategy - BaseServer now has _do_read method which does everything except for actually calling accept()/recvfrom() - pre_start() method is renamed to init_socket() - renamed _stopped_event to _stop_event - 'started' is now a read-only property (which actually reports state of _stop_event) - post_stop() method is removed - close() now sets _stop_event(), thus setting 'started' to False, thus causing serve_forever() to exit - _tcp_listener() function is moved from baseserver.py to server.py - added 'fatal_errors' class attribute which is a tuple of all errnos that should kill the server
coros: - Semaphore: add _start_notify() method - Semaphore: avoid copying list of links; rawlink() no longer schedules notification
Release 1.0a3
Added 'ref' property to all watchers. Settings it to False make watcher call ev_unref/ev_ref appropriately so that this watcher does not prevent loop.run()/hub.join()/run() from exiting. Made resolver_ares.Resolver use 'ref' property for internal watcher.
In all servers, method "kill" was renamed to "close". The old name is available as deprecated alias.
Added a few properties to the loop: backend_fd, fdchangecnt, timercnt.
Upgraded c-ares to 1.7.5+patch.
Fixed getaddrinfo to return results in the order (::1, IPv4, IPv6).
Fixed getaddrinfo() to handle integer of string type. Thanks to kconor.
Fixed gethostbyname() to handle '' (empty string).
Fixed getaddrinfo() to convert UnicodeEncodeError into error('Int or String expected').
Fixed getaddrinfo() to uses the lowest 16 bits of passed port integer similar to built-in _socket.
Fixed getnameinfo() to call getaddrinfo() to process arguments similar to built-in _socket.
Fixed gethostbyaddr() to use getaddrinfo() to process arguments.
version_info is now a 5-tuple.
Added handle_system_error() method to Hub (used internally).
Fixed Hub's run() method to never exit. This prevent inappropriate switches into parent greenlet.
Fixed Hub.join() to return True if Hub was already dead.
Added 'event' argument to Hub.join().
Added run() function to gevent top level package.
Fixed Greenlet.start() to exit silently if greenlet was already started rather than raising :exc:`AssertionError`.
Fixed Greenlet.start() not to schedule another switch if greenlet is already dead.
Fixed gevent.signal() to spawn Greenlet instead of raw greenlet. Also it'll switch into the new greenlet immediately instead of scheduling additional callback.
Do monkey patch create_connection() as gevent's version works better with gevent.socket.socket than the standard create_connection.
pywsgi: make sure we don't try to read more requests if socket operation failed with EPIPE
pywsgi: if we failed to send the reply, change 'status' to socket error so that the logs mention the error.
Release 1.0a2
Fixed a bug in gevent.queue.Channel class. (Thanks to Alexey Borzenkov)
Release 1.0a1
TODO: - gevent.http? - gevent.httplib? - gevent.wsgi? (Currently gevent/wsgi.py imports classes from gevent/pywsgi.py)
Backward-incompatible changes:
- Dropped support for Python 2.4.
- Queue(0) is now equivalent to an unbound queue and raises :exc:`DeprecationError`. Use :class:`gevent.queue.Channel` if you need a channel.
- Deprecated ability to pass a greenlet instance to :meth:`Greenlet.link`, :meth:`Greenlet.link_value` and :meth:`Greenlet.link_exception`.
- All of :mod:`gevent.core` has been rewritten and the interface is not compatible.
- :exc:`SystemExit` and :exc:`SystemError` now kill the whole process instead of printing a traceback.
- Removed deprecated :class:`util.lazy_property` property.
- Removed :mod:`gevent.dns` module.
- Removed deprecated gevent.sslold module
- Removed deprecated gevent.rawgreenlet module
- Removed deprecated name GreenletSet which used to be alias for :class:`Group`.
Release highlights:
- The :mod:`gevent.core` module now wraps libev's API and is not compatible with gevent 0.x.
- Added a concept of pluggable event loops. By default gevent.core.loop is used, which is a wrapper around libev.
- Added a concept of pluggable name resolvers. By default a resolver based on c-ares library is used.
- Added support for multiple OS threads, each new thread will get its own Hub instance with its own event loop.
- The release now includes and embeds the dependencies: libev and c-ares.
- The standard :mod:`signal` works now as expected.
- The unhandled errors are now handled uniformely by Hub.handle_error function.
- Added :class:`Channel` class to :mod:`gevent.queue` module. It is equivalent to Queue(0) in gevent 0.x, which is deprecated now.
- Added method :meth:`peek` to :class:`Queue` class.
- Added :func:`idle` function which blocks until the event loop is idle.
- Added a way to gracefully shutdown the application by waiting for all outstanding greenlets/servers/watchers: :meth:`Hub.join`.
- Added new :mod:`gevent.ares` C extension which wraps c-ares and provides asynchronous DNS resolver.
- Added new :mod:`gevent.resolver_ares` module provides synchronous API on top of :mod:`gevent.ares`.
The :mod:`gevent.socket` module:
DNS functions now use c-ares library rather than libevent-dns. This fixes a number of problems with name resolving: - Issue #2: DNS resolver no longer breaks after fork(). You still need to call :func:`gevent.fork` (os.fork is monkey
patched with it if monkey.patch_all() was called).
- DNS resolver no longer ignores /etc/resolv.conf and /etc/hosts.
The following functions were added to socket module - gethostbyname_ex - getnameinfo - gethostbyaddr - getfqdn
Removed undocumented bind_and_listen and tcp_listener
The :class:`Hub` object:
- Added :meth:`join` method which waits until the event loop exits or optional timeout expires.
- Added :meth:`wait` method which waits until a watcher has got an event.
- Added :meth:`handle_error` method which is called by all of gevent in case of unhandled exception.
- Added :meth:`print_exception` method which is called by handle_error to print the exception traceback.
The :class:`Greenlet` objects:
- Added __nonzero__ implementation that returns True after greenlet was started until it's dead. Previously greenlet was False after start() until it was first switched to.
The mod:gevent.pool module:
- It is now possible to add raw greenlets to the pool.
- The :meth:`map` and :meth:`imap` methods now start yielding the results as soon as possible.
- The :meth:`imap_unordered` no longer swallows an exception raised while iterating its argument.
- gevent.sleep(<negative value>) no longer raises an exception, instead it does sleep(0).
- Added method clear to internal Waiter class.
- Removed wait method from internal Waiter class.
- The :class:`WSGIServer` now sets max_accept to 1 if wsgi.multiprocessing is set to True.
- Added :func:`monkey.patch_module` function that monkey patches module using __implements__ list provided by gevent module. All of gevent modules that replace stdlib module now have __implements__ attribute.
Release 0.13.6 (May 2, 2011)
- Added __copy__ method to :class:`gevent.local.local` class that implements copy semantics compatible with built-in threading.local. Patch by Galfy Pundee.
- Fixed :class:`StreamServer` class to catch EWOULDBLOCK rather than EAGAIN. This fixes lots of spurious tracebacks on Windows where these two constants are not the same. Patch by Alexey Borzenkov.
- Fixed issue #65: :func:`fork` now calls event_reinit only in the child process; otherwise the process could hang when using libevent2. Patch by Alexander Boudkar.
Release 0.13.5 (Apr 21, 2011)
- Fixed build problem on Python 2.5
Release 0.13.4 (Apr 11, 2011)
- Fixed :exc:`TypeError` that occurred when environ["wsgi.input"].read function was called with an integer argument.
- Fixed issue #63: :func:`monkey.patch_thread` now patches :mod:`threading` too, even if it's already imported. Patch by Shaun Lindsay.
- Fixed issue #64: :func:`joinall` and :func:`killall` functions used to hang if their argument contained duplicate greenlets.
- Fixed issue #69: :class:`pywsgi.WSGIServer` reported "Connection reset by peer" if the client did not close the connection gracefully after the last request. Such errors are now ignored.
- Fixed issue #67: Made :class:`wsgi.WSGIServer` add REQUEST_URI to environ. Patch by Andreas Blixt.
- Fixed issue #71: monkey patching httplib with :mod:`gevent.httplib` used to break HTTPSConnection. Patch by Nick Barkas.
- Fixed issue #74: :func:`create_connection <gevent.socket.create_connection>` now raises proper exception when getaddrinfo fails.
- Fixed :meth:`BaseServer.__repr__` method, :attr:`BaseServer.server_host` and :attr:`BaseServer.server_port` attributes to handle the case of AF_UNIX addresses properly. Previously they assumed address is always a tuple.
- Fixed :class:`pywsgi.WSGIServer` to handle AF_UNIX listeners. The server now sets environ["SERVER_NAME"] and environ["SERVER_PORT"] to empty string in such case.
- Make :class:`StreamServer` (and thus :class:`pywsgi.WSGIServer`) accept up to 100 connections per one readiness notification. This behaviour is controlled by :attr:`StreamServer.max_accept` class attribute.
- If bind fails, the servers now include the address that caused bind to fail in the error message.
Release 0.13.3 (Feb 7, 2011)
- Fixed typo in :mod:`gevent.httplib` that rendered it unusable.
- Removed unnecessary delay in :func:`getaddrinfo <gevent.socket.getaddrinfo>` by calling resolve_ipv4 and resolve_ipv6 concurrently rather than sequentially in AF_UNSPEC case.
Release 0.13.2 (Jan 28, 2011)
- Added :mod:`gevent.httplib` -- experimental support for libevent-http client (issue #9). Thanks to Tommie Gannert, Örjan Persson.
- Fixed crash on Mac OS X (issue #31). Patch by Alexey Borzenkov.
- Fixed compatiblity of :mod:`gevent.wsgi` with libevent2 (issue #62).
- Fixed compilation issues with libevent2. Patch by Ralf Schmitt.
- Fixed :mod:`pywsgi` not to use chunked transfer encoding in case of 304 and 204 responses as it creates a non-empty message body which is against RFC and causes some browsers to fail. Patch by Nicholas Piël.
- Fixed :func:`socket.getaddrinfo` to handle AF_UNSPEC properly and resolve service names (issue #56). Thanks to Elizabeth Jennifer Myers.
- Fixed :func:`socket.getaddrinfo` to handle international domain names.
- Fixed leaking of traceback object when switching out of greenlet with sys.exc_info set. Leaking is prevented by not preserving traceback at all and only keeping the value of the exception. Thanks to Ned Rockson.
- Fixed :meth:`ssl.SSLSocket.unwrap` to shutdown :class:`SSLSocket` properly, without raising SSLError(read operation timeout).
- Fixed :exc:`TypeError` inside :class:`Hub` on Python 2.4.
- Made a number of internal improvements to :mod:`gevent.pywsgi` to make subclassing easier (driven by the needs of websocket package).
- Changed :class:`WSGIServer <pywsgi.WSGIServer>` to explicitly close the socket after the last request. Patch by Ralf Schmitt.
- Fixed :class:`pywsgi.WSGIHandler` not to add CONTENT_TYPE to the environ dict when there's no Content-Type header in the request. Previously a default text/plain was added in such case.
- Added proper implementation of :meth:`imap_unordered <gevent.pool.Group.imap_unordered>` to :class:`Pool` class. Unlike previous "dummy" implementation this one starts yielding the results as soon as they are ready.
- Implemented iterator protocol in :class:`Queue <gevent.queue.Queue>`. The main use case is the implementation of :meth:`Pool.imap_unordered`.
- Fixed :attr:`BaseServer.started` property: it is now set to True after :meth:`start <StreamServer.start>` until :meth:`stop <StreamServer.stop>` or :meth:`kill <StreamServer.kill>`. Previously it could become False for short period of times, because :class:`StreamServer` could stop accepting for a while in presence of errors and :attr:`StreamServer.started` was defined as "whether the server is currently accepting".
- Fixed :class:`wsgi.WSGIServer` to reply with 500 error immediatelly if the application raises an error (issue #58). Thanks to Jon Aslund.
- Added :func:`monkey.patch_httplib` function which is disabled by default.
- Added httplib parameter to :func:`monkey.patch_all` (defaults to False).
- Added :func:`write <core.buffer.write>` method to :class:`core.buffer`.
- Fixed :exc:`OverflowError` that could happen in :meth:`core.event.__str__`.
- Made :meth:`http_request.get_input_headers` return header names in lower case.
- Fixed :class:`StreamServer` to accept ciphers as an SSL argument.
- Added build_exc --cython= option to setup.py. Patch by Ralf Schmitt.
- Updated :class:`local <gevent.local.local>` to raise :exc:`AttributeError` if __dict__ attribute is set or deleted.
Release 0.13.1 (Sep 23, 2010)
Release highlights:
- Fixed :mod:`monkey` to patch :func:`socket.create_connection <gevent.socket.create_connection>`.
- Updated :mod:`gevent.ssl` module to fully match the functionality of :mod:`ssl` on Python 2.7.
- Fixed :meth:`Group.join` to handle raise_error=True properly, it used to raise :exc:`TypeError` (issue #36). Thanks to by David Hain.
- Fixed :mod:`gevent.wsgi` and :mod:`gevent.pywsgi` to join multiple Cookie headers (issue #40).
- Fixed :func:`select <gevent.select.select>` to recognize long arguments in addition to int.
- Fixed :meth:`Semaphore.acquire` to return False when timeout expires instead of raising :exc:`AssertionError` (issue #39). Patch by Erik Näslund.
- Fixed :meth:`JoinableQueue.join` to return immediatelly if queue is already empty (issue #45). Patch by Dmitry Chechik.
- Deprecated :mod:`gevent.sslold` module.
:mod:`gevent.socket` module:
- Overrode :meth:`socket.shutdown` method to interrupt read/write operations on socket.
- Fixed possible :exc:`NameError` in :meth:`socket.connect_ex` method. Patch by Alexey Borzenkov.
- Fixed socket leak in :func:`create_connection` function.
- Made :mod:`gevent.socket` import all public items from stdlib :mod:`socket` that do not do I/O.
:mod:`gevent.ssl` module:
- Imported a number of patches from stdlib by Antoine Pitrou:
- Calling :meth:`makefile` method on an SSL object would prevent the underlying socket from being closed until all objects get truely destroyed (Python issue #5238).
- SSL handshake would ignore the socket timeout and block indefinitely if the other end didn't respond (Python issue #5103).
- When calling :meth:`getpeername` in SSLSocket.__init__, only silence exceptions caused by the "socket not connected" condition.
- Added support for ciphers argument.
- Updated SSLSocket.send and SSLSocket.recv methods to match the behavior of stdlib :mod:`ssl` better.
- Fixed :class:`ssl.SSLObject` to delete events used by other greenlets when closing the instance (issue #34).
- Made :class:`BaseServer` accept long values as pool argument in addition to int.
- Made :attr:`http._requests` attribute public.
- Updated webchat example to use file on disk rather than in-memory sqlite database to avoid :exc:`OperationalError`.
- Fixed webproxy.py example to be runnable under external WSGI server.
- Fixed bogus failure in test__exc_info.py.
- Added new test to check PEP8 conformance: xtest_pep8.py.
- Fixed :class:`BackdoorServer` close the connection on :exc:`SystemExit` and simplified the code.
- Made :class:`Pool` raise :exc:`ValueError` when initialized with size=0.
- Updated setup.py --libevent to configure and make libevent if it's not built already.
- Updated setup.py to use setuptools if present and add dependency on greenlet.
- Fixed doc/mysphinxext.py to work with Sphinx 1. Thanks by Örjan Persson.
Release 0.13.0 (Jul 14, 2010)
Release highlights:
- Added :mod:`gevent.server` module with :class:`StreamServer` class for easy implementing of TCP and SSL servers.
- Added :mod:`gevent.baseserver` module with :class:`BaseServer` class.
- Added new implementation of :mod:`gevent.pywsgi` based on :mod:`gevent.server`. Contributed by Ralf Schmitt.
- Added :mod:`gevent.local` module. Fixed issue #24. Thanks to Ted Suzman.
- Fixed a number of bugs in :mod:`gevent.wsgi` module.
- Fixed issue #26: closing a socket now interrupts all pending read/write operations on it.
- Implemented workaround that prevents greenlets from leaking exc_info.
- Fixed :meth:`socket.sendall` to use buffer object to prevent string copies.
- Made the interfaces of :mod:`gevent.wsgi` and :mod:`gevent.pywsgi` much more similar to each other.
- Fixed compilation on Windows with libevent-2.
- Improved Windows compatibility. Fixed issue #30. Thanks to Luigi Pugnetti.
- Fixed compatibility with Python 2.7.
Backward-incompatible changes:
- Blocking is now the default behaviour for the :meth:`Greenlet.kill` method and other kill* methods.
- Changed the inteface of :class:`http.HTTPServer` to match the interface of other servers.
- Changed :class:`Pool`'s :meth:`spawn` method to block until there's a free slot.
- Removed deprecated :func:`backdoor.backdoor_server` function.
- Removed deprecated functions in :mod:`socket` module:
- Removed deprecated :attr:`socket.fd` property.
- Deprecated use of negative numbers to indicate infinite timeout in :func:`core.event.add` and :func:`socket.wait_read` and similar. Use None from now on, which is compatible with the previous versions.
- Derived :class:`backdoor.BackdoorServer` from :class:`StreamServer` rather than from :class:`Greenlet`. This adds lots of new features and removes a few old ones.
- Removed non-standard :attr:`balance` property from :class:`Semaphore`.
- Removed :func:`start`, :func:`set_cb` and :func:`set_gencb` from :class:`core.http`.
- Removed :func:`set_closecb` from :class:`core.http_connection`. It is now used internally to detach the requests of the closed connections.
- Deprecated :mod:`rawgreenlet` module.
- Deprecated :func:`util.lazy_property`.
- Renamed :class:`GreenletSet` to :class:`Group`. The old name is currently available as an alias.
:mod:`gevent.socket` module:
- Fixed issues #26 and #34: closing the socket while reading/writing/connecting is now safe. Thanks to Cyril Bay.
- Imported :func:`getfqdn` from :mod:`socket` module.
- The module now uses sys.platform to detect Windows rather than :mod:`platform` module.
- Fixed issue #27: :func:`getaddrinfo` used to handle the case when socktype or proto were equal to 0. Thanks to Randall Leeds.
:mod:`gevent.coros` module:
- Added :class:`RLock` class.
- Added :class:`DummySemaphore` class.
- Fixed :class:`BoundedSemaphore` class to behave like :class:`threading.BoundedSemaphore` behaves.
:mod:`gevent.event` module:
- Made :meth:`Event.wait` return internal flag instead of None.
- Made :meth:`AsyncResult.wait` return its value instead of None.
- Added :meth:`ready` method as an alias for :meth:`is_set`.
:mod:`gevent.wsgi` module:
- Removed :class:`wsgi.buffer_proxy`.
:mod:`gevent.pywsgi` module:
- Rewritten to use :mod:`server` and not to depend on :mod:`BaseHTTPServer`.
- Changed the interface to match :mod:`wsgi` module. Removed :func:`server` function, add :class:`Server` class, added :class:`WSGIServer` class.
- Renamed :class:`HttpProtocol` to :class:`WSGIHandler`.
- Fixed compatibility with webob by allowing an optional argument to :meth:`readline`.
:mod:`gevent.core` module:
- Fixed reference leaks in :class:`event` class.
- Avoid Python name lookups when accessing EV_* constants from Cython code. Patch by Daniele Varrazzo.
- Added persist argument to :class:`read_event`, :class:`write_event` and :class:`readwrite_event`.
- Made all of the event loop callbacks clear the exception info before exiting.
- Added :attr:`flags_str` property to :class:`event`. It is used by __str__ and __repr__.
- :class:`buffer <core.buffer>`:
- Added :meth:`detach` method.
- Implemented iterator protocol.
- Fixed :meth:`readline` and :meth:`readlines` methods.
- :class:`http_request`:
- Fixed :meth:`detach` to detach input and output buffers too.
- Changed the response to send 500 error upon deallocation, if no response was sent by the user.
- Made :attr:`input_buffer` and :attr:`output_buffer` store and reuse the :class:`buffer` object they create.
- Fixed :meth:`__str__` and meth:__repr__ to include spaces where needed.
- :class:`http` class no longer has :meth:`set_cb` and :meth:`set_gencb`. Instead its contructor accepts handle which will be called on each request.
:mod:`gevent.http` and :mod:`gevent.wsgi` modules:
- Made :class:`HTTPServer` use "Connection: close" header by default.
- Class :class:`HTTPServer` now derives from :class:`baseserver.BaseServer`. Thus its :meth:`start` method no longer accepts socket to listen on, it must be passed to the contructor.
- The spawn argument now accepts a :class:`Pool` instance. While the pool is full, the server replies with 503 error.
- The server no longer links to the greenlets it spawns to detect errors. Instead, it relies on :class:`http_request` which will send 500 reply when deallocated if the user hasn't send any.
- Changed :mod:`gevent.thread` to use :class:`Greenlet` instead of raw greenlets. This means monkey patched thread will become :class:`Greenlet` too.
- Added :attr:`started` property to :class:`Greenlet`.
- Put common server code in :mod:`gevent.baseserver` module. All servers in gevent package are now derived from :class:`BaseServer`.
- Fixed issue #20: :func:`sleep` now raises :exc:`IOError` if passed a negative argument.
- Remove the code related to finding out libevent version from setup.py as macro USE_LIBEVENT_? is no longer needed to build gevent.core.
- Increased default backlog in all servers (from 5 to 256). Thanks to Nicholas Piël.
- Fixed doc/conf.py to work in Python older than 2.6. Thanks to Örjan Persson.
- Silented SystemError raised in :mod:`backdoor` when a client typed quit().
- If importing :mod:`greenlet` failed with ImportError, keep the original error message, because sometimes the error originates in setuptools.
- Changed :func:`select.select` to return all the file descriptors signalled, not just the first one.
- Made :mod:`thread` (and thus monkey patched threads) to spawn :class:`Greenlet` instances, rather than raw greenlets.
- Updated echoserver.py to use :class:`StreamServer`.
- Added geventsendfile.py.
- Added wsgiserver_ssl.py.
Thanks to Ralf Schmitt for :mod:`pywsgi`, a number of fixes for :mod:`wsgi`, help with :mod:`baseserver` and :mod:`server` modules, improving setup.py and various other patches and suggestions.
Thanks to Uriel Katz for :mod:`pywsgi` patches.
Release 0.12.2 (Mar 2, 2010)
- Fixed http server to put the listening socket into a non-blocking mode. Contributed by Ralf Schmitt.
Release 0.12.1 (Feb 26, 2010)
- Removed a symlink from the distribution (that causes pip to fail). Thanks to Brad Clements for reporting it.
- setup.py: automatically create symlink from build/lib.../gevent/core.so to gevent/core.so.
- :mod:`gevent.socket`: Improved compatibility with stdlib's socket:
- Fixed :class:`socket <gevent.socket.socket>` to raise timeout("timed out") rather than simply timeout.
- Imported _GLOBAL_DEFAULT_TIMEOUT from standard :mod:`socket` module instead of creating a new object.
Release 0.12.0 (Feb 5, 2010)
Release highlights:
- Added :mod:`gevent.ssl` module.
- Fixed Windows compatibility (experimental).
- Improved performance of :meth:`socket.recv`, :meth:`socket.send` and similar methods.
- Added a new module - :mod:`dns` - with synchronous wrappers around libevent's DNS API.
- Added :class:`core.readwrite_event` and :func:`socket.wait_readwrite` functions.
- Fixed several incompatibilities of :mod:`wsgi` module with the WSGI spec.
- Deprecated :mod:`pywsgi` module.
:mod:`gevent.wsgi` module:
- Made env["REMOTE_PORT"] into a string.
- Fixed the server to close the iterator returned by the application.
- Made wsgi.input object iterable.
:mod:`gevent.core` module:
- Made DNS functions no longer accept/return IP addresses in dots-and-numbers format. They work with packed IPs now.
- Made DNS functions no longer accept additional arguments to pass to the callback.
- Fixed DNS functions to check the return value of the libevent functions and raise :exc:`IOError` if they failed.
- Added :func:`core.dns_err_to_string`.
- Made core.event.cancel not to raise if event_del reports an error. instead, the return code is passed to the caller.
- Fixed minor issue in string representation of the events.
:mod:`gevent.socket` module:
- Fixed bug in socket.accept. It could return unwrapped socket instance if socket's timeout is 0.
- Fixed socket.sendall implementation never to call underlying socket's sendall.
- Fixed :func:`gethostbyname` and :func:`getaddrinfo` to call the stdlib if the passed hostname has no dots.
- Fixed :func:`getaddrinfo` to filter the results using socktype and proto arguments.
- Removed :func:`getnameinfo` as it didn't quite match the stdlib interface. Use :func:`dns.resolve_reverse` for reverse resolutions.
- Fixed :meth:`socket.connect_ex` to use cooperative :func:`gethostbyname`.
- Fixed :meth:`socket.dup` not to call underlying socket's :meth:`dup` (which is not available on Windows) but to use Python's reference counting similar to how the stdlib's socket implements :meth:`dup`
- Added _sock argument to :class:`socket`'s constructor. Passing the socket instance as first argument is no longer supported.
- Fixed :func:`socket.connect` to ignore WSAEINVAL on Windows.
- Fixed :func:`socket.connect` to use :func:`wait_readwrite` instead of :func:`wait_write`.
- Fixed :func:`socket.connect` to consult SO_ERROR.
- Fixed :func:`socket.send` and :func:`socket.sendall` to support flags argument.
- Renamed :func:`socket_bind_and_listen` to :func:`socket.bind_and_listen`. The old name is still available as a deprecated alias.
- The underlying socket object is now stored as _sock property.
- Imported the constants and some utility functions from stdlib's :mod:`socket` into :mod:`gevent.socket`. (Thanks to Matt Goodall for the original patch).
- Renamed :meth:`wrap_ssl` to :meth:`ssl`. (the old name is still available but deprecated)
- Deprecated :func:`connect_tcp` and :func:`tcp_server`.
- Added :exc:`sslerror` to socket.__all__.
- Removed :class:`GreenSocket` alias for socket class.
- Moved PyOpenSSL-based implementation of :func:`socket.ssl` into :mod:`gevent.oldssl` module. It's imported into :mod:`gevent.socket` if importing :mod:`gevent.ssl` fails.
- Fixed Greenlet.spawn_link* and GreenletSet.spawn_link* classmethods not to assume anything about their arguments. (Thanks to Marcus Cavanaugh for pointing that out).
- Fixed :func:`select <gevent.select.select>` to clean up properly if event creation fails.
- Fixed :func:`select <gevent.select.select>` to raise :exc:`select.error` instead of :exc:`IOError`.
- Fixed setup.py to proceed with compilation even if libevent version cannot be determined. 1.x.x is assumed in this case.
- Fixed compatibility of .pyx files with Cython 0.12.0.
- Renamed arguments for :func:`select.select` to what they are called in the stdlib.
- Removed internal function :func:`getLinkedCompleted` from :mod:`gevent.greenlet`.
- Remove #warning directives from libevent.h. They are not supported by vc90.
- Removed some deprecated stuff from :mod:`coros`.
- Internal class :class:`Waiter <gevent.hub.Waiter>` now stores the value if no one's waiting for it.
- Added testrunner.py script that replaces a bunch of small scripts that were used before.
- Removed is_secure attribute from sockets and ssl objects.
- Made :class:`Greenlet` not to print a traceback when a not-yet-started greenlet is killed.
- Added :class:`BackdoorServer` class to :mod:`backdoor`. Removed :func:`backdoor` function and deprecated :func:`backdoor_server` function.
- Removed __getattr__ from socket class.
- Fixed :func:`monkey.patch_socket` not to fail if :func:`socket.ssl` is not present in :mod:`gevent.socket`.
- Added :func:`monkey.patch_ssl`.
- Added aggressive argument to :func:`monkey.patch_all`.
- Tests from stdlib no longer included in greentest package. Instead, there are number of stubs that import those tests from test package directly and run them in monkey patched environment.
- Added examples/process.py by Marcus Cavanaugh.
Release 0.11.2 (Dec 10, 2009)
- Fixed :mod:`wsgi` to unquote environ['PATH_INFO'] before passing to application.
- Added SERVER_SOFTWARE variable to :mod:`wsgi` environ.
- Fixed bug in :meth:`JoinableQueue.task_done` that caused :class:`ValueError` to be raised incorrectly here.
- Fixed :mod:`gevent.socket` not to fail with :class:`ImportError` if Python was not built with ssl support.
Release 0.11.1 (Nov 15, 2009)
- Fixed bug in :func:`select.select` function. Passing non-empty list of write descriptors used to cause this function to fail.
- Changed setup.py to go ahead with the compilation even if the actual version of libevent cannot be determined (version 1.x.x is assumed in that case).
Contributed by Ludvig Ericson:
- Fixed :mod:`wsgi`'s start_response to recognize exc_info argument.
- Fixed setup.py to look for libevent.dylib rather than .so on Darwin platforms.
Release 0.11.0 (Oct 9, 2009)
- Fixed timeout bug in :func:`joinall`, :meth:`Greenlet.join`, :meth:`pool.Pool.join`: if timeout has expired it used to raise :class:`Timeout`; now it returns silently.
- Fixed :func:`signal` to run the signal handler in a new greenlet; it was run in the :class:`Hub` greenlet before.
- Fixed :meth:`Timeout.start_new`: if passed a :class:`Timeout` instance, it now calls its :meth:`start <Timeout.start>` method before returning it.
- Fixed :mod:`gevent.monkey` to patch :class:`threading.local` properly.
- Fixed :meth:`Queue.empty` and :meth:`Queue.full` to be compatible with the standard :mod:`Queue`. It tried to take into account the greenlets currently blocking on :meth:`get <Queue.get>`/:meth:`put <Queue.put>` which was not useful and hard to reason about. Now it simply compares :meth:`qsize <Queue.qsize>` to maxsize, which what the standard :mod:`Queue` does too.
- Fixed :class:`Event` to behave exactly like the standard :class:`threading.Event`:
- :meth:`Event.set` does not accept a parameter anymore; it's now either set or not.
- Event.get method is gone.
- Event.set(); Event.clear() used to be a no-op; now it properly wakes up all the waiters.
- :class:`AsyncResult` behaves exactly like before, but it does not inherit from :class:`Event` anymore and does miss clear() method.
- Renamed internal helpers :meth:`socket.wait_reader`/:meth:`socket.wait_writer` to :meth:`socket.wait_read`/:meth:`socket.wait_write`.
- Renamed :class:`gevent.socket.GreenSocket` to :class:`gevent.socket.socket`. GreenSocket is still available as an alias but will be removed in the future.
- :mod:`gevent.core` now includes wrappers for evbuffer, evdns, evhttp.
- Renamed the old gevent.wsgi to :mod:`gevent.pywsgi`.
- Added a new HTTP server :mod:`gevent.http` module based on libevent-http wrappers.
- Added a new WSGI server :mod:`gevent.wsgi` module based on :mod:`gevent.http`.
- Added evdns wrappers to :mod:`gevent.core` and DNS functions to :mod:`gevent.socket` module. Contributed by Jason Toffaletti..
- Added a few a few options to setup.py to select a libevent library to compile against. Check them out with setup.py -h.
- Added __all__ to many modules that missed it.
- Converted the docstrings and the changelog to sphinx/rst markup.
- Added sphinx/rst documentation. It is available online at http://www.gevent.org.
Release 0.10.0 (Aug 26, 2009)
Changed :class:`Timeout` API in a backward-incompatible way: :meth:`Timeout.__init__` does not start the timer immediately anymore; :meth:`Timeout.start` must be called explicitly. A shortcut - :meth:`Timeout.start_new` - is provided that creates and starts a :class:`Timeout`.
Added :class:`gevent.Greenlet` class which is a subclass of greenlet that adds a few useful methods :meth:`join <Greenlet.join>`/:meth:`get <Greenlet.get>`/:meth:`kill <Greenlet.kill>`/:meth:`link <Greenlet.link>`.
:func:`spawn` now returns :class:`Greenlet` instance. The old spawn, which returns py.magic.greenlet instance, can be still accessed as :meth:`spawn_raw`.
The implementation of :class:`Greenlet` is an improvement on proc module, with these bugs fixed:
- Proc was not a subclass of greenlet which makes :func:`getcurrent` useless and using Procs as keys in dict impossible.
- Proc executes links sequentially, so one could block the rest from being executed. :class:`Greenlet` executes each link in a new greenlet by default, unless it is set up with :class:`Greenlet.rawlink` method.
- Proc cannot be easily subclassed. To subclass :class:`Greenlet`, override its _run and __init__ methods.
Added :class:`pool.Pool` class with the methods compatible to the standard :mod:`multiprocessing.pool`: :meth:`apply <Pool.apply>`, :meth:`map <Pool.map>` and others. It also has :meth:`spawn <Pool.spawn>` method which is always async and returns a :class:`Greenlet` instance.
Added :mod:`gevent.event` module with 2 classes: :class:`Event` and :class:`AsyncResult`. :class:`Event` is a drop-in replacement for :class:`threading.Event`, supporting :meth:`set <Event.set>`/:meth:`wait <Event.wait>`/get methods. :class:`AsyncResult` is an extension of :class:`Event` that supports exception passing via :meth:`set_exception <AsyncResult.set_exception>` method.
Added :class:`queue.JoinableQueue` class with :meth:`task_done <queue.JoinableQueue.task_done>` and :meth:`join <queue.JoinableQueue.join>` methods.
Renamed core.read and core.write classes to :class:`core.read_event` and :class:`core.write_event`.
:mod:`gevent.pywsgi`: pulled Mike Barton's eventlet patches that fix double content-length issue.
Fixed setup.py to search more places for system libevent installation. This fixes 64bit CentOS 5.3 installation issues, hopefully covers other platforms as well.
The following items were added to the gevent top level package:
- :func:`spawn_link`
- :func:`spawn_link_value`
- :func:`spawn_link_exception`
- :func:`spawn_raw`
- :func:`joinall`
- :func:`killall`
- :class:`Greenlet`
- :exc:`GreenletExit`
- :mod:`core`
The following items were marked as deprecated:
- gevent.proc module (:class:`wrap_errors` helper was moved to :mod:`util` module)
- gevent.coros.event
- gevent.coros.Queue and gevent.coros.Channel
Internally, gevent.greenlet was split into a number of modules:
- :mod:`gevent.hub` provides :class:`Hub` class and basic utilities, like :func:`sleep`; :class:`Hub` is now a subclass of greenlet.
- :mod:`gevent.timeout` provides :class:`Timeout` and :func:`with_timeout`;
- :mod:`gevent.greenlet` provides :class:`Greenlet` class and helpers like :func:`joinall` and :func:`killall`.
- :mod:`gevent.rawgreenlet` contains the old "polling" versions of :func:`joinall <rawgreenlet.joinall>` and :func:`killall <rawgreenlet.killall>` (they do not need :meth:`link <Greenlet.link>` functionality and work with any greenlet by polling their status and sleeping in a loop)
Thanks to Jason Toffaletti for reporting the installation issue and providing a test case for WSGI double content-length header bug.
Release 0.9.3 (Aug 3, 2009)
- Fixed all known bugs in the :mod:`gevent.queue` module and made it 2.4-compatible. :class:`LifoQueue` and :class:`PriorityQueue` are implemented as well. :mod:`gevent.queue` will deprecate both coros.Queue and coros.Channel.
- Fixed :class:`Timeout` to raise itself by default. TimeoutError is gone. Silent timeout is now created by passing False instead of None.
- Fixed bug in :func:`gevent.select.select` where it could silent the wrong timeout.
- :func:`spawn` and :func:`spawn_later` now avoid creating a closure and this decreases spawning time by 50%.
- kill's and killall's wait argument was renamed to block. The polling is now implemented by greenlet.join and greenlet.joinall functions and it become more responsive, with gradual increase of sleep time.
- Renamed proc.RunningProcSet to proc.ProcSet.
- Added :func:`shutdown` function, which blocks until libevent has finished dispatching the events.
- The return value of event_add and event_del in core.pyx are now checked properly and :exc:`IOError` is raised if they have failed.
- Fixed backdoor.py, accidentally broken in the previous release.
Release 0.9.2 (Jul 20, 2009)
- Simplified :mod:`gevent.socket`'s implementation and fixed SSL bug reported on eventletdev by Cesar Alaniz as well as failures in test_socket_ssl.py.
- Removed GreenSocket.makeGreenFile; Use :meth:`socket.socket.makefile` that returns :class:`_fileobject` and is available on both :class:`GreenSocket <gevent.socket.socket>` and :class:`GreenSSL <gevent.socket.GreenSSL>`. The :mod:`gevent.socket` is still a work in progress.
- Added new :class:`core.active_event` class that takes advantage of libevent's event_active function. core.active_event(func) schedules func to be run in this event loop iteration as opposed to core.timer(0, ...) which schedules an event to be run in the next iteration. :class:`active_event` is now used throughout the library wherever core.timer(0, ....) was previously used. This results in :func:`spawn` being at least 20% faster compared to release 0.9.1 and twice as fast compared to eventlet. (The results are obtained with bench_spawn.py script in greentest/ directory)
- Added boolean parameter wait to :func:`kill` and :func:`killall` functions. If set to True, it makes the function block until the greenlet(s) is actually dead. By default, :func:`kill` and :func:`killall` are asynchronous, i.e. they don't unschedule the current greenlet.
- Added a few new properties to :class:`gevent.core.event`: :attr:`fd <event.fd>`, :attr:`events <event.events>`, :attr:`events_str <event.events_str>` and :attr:`flags <event.flags>`. It also has :meth:`__enter__ <event.__enter__>` and :meth:`__exit__ <event.__exit__>` now, so it can be used as a context manager. :class:`event`'s :attr:`callback <event.callback>` signature has changed from (event, fd, evtype) to (event, evtype).
- Fixed :class:`Hub`'s mainloop to never return successfully as this will screw up main greenlet's switch() call. Instead of returning it raises :class:`DispatchExit`.
- Added :func:`reinit` function - wrapper for libevent's event_reinit. This function is a must have at least for daemons, as it fixes epoll and some others eventloops to work after fork.
- Trying to use gevent in another thread will now raise an exception immediately, since it's not implemented.
- Added a few more convenience methods spawn_link[exception/value] to proc.RunningProcSet.
- Fixed setup.py not to depend on setuptools.
- Removed gevent.timeout. Use :class:`gevent.Timeout`.
Release 0.9.1 (Jul 9, 2009)
- Fixed compilation with libevent-1.3. Thanks to Litao Wei for reporting the problem.
- Fixed :class:`Hub` to recover silently after event_dispatch() failures (I've seen this happen after fork even though event_reinit() is called as necessary). The end result is that :func:`fork` now works more reliably, as detected by test_socketserver.py - it used to fail occasionally, now it does not.
- Reorganized the package, most of the stuff from gevent/__init__.py was moved to gevent/greenlet.py. gevent/__init__.py imports some of it back but not everything.
- Renamed gevent.timeout to :class:`gevent.Timeout`. The old name is available as an alias.
- Fixed a few bugs in :class:`queue.Queue`. Added test_queue.py from standard tests to check how good is :class:`queue.Queue` a replacement for a standard :mod:`Queue` (not good at all, timeouts in :meth:`queue.Queue.put` don't work yet)
- :mod:`monkey` now patches ssl module when on 2.6 (very limited support).
- Improved compatibility with Python 2.6 and Python 2.4.
- Greenlet installed from PyPI (without py.magic prefix) is properly recognized now.
- core.pyx was accidentally left out of the source package, it's included now.
- :class:`GreenSocket <socket.socket>` now wraps a socket object from _socket module rather than from :mod:`socket`.
Release 0.9.0 (Jul 8, 2009)
Started as eventlet 0.8.11 fork, with the intention to support only libevent as a backend. Compared to eventlet, this version has a much simpler API and implementation and a few severe bugs fixed, namely
- Full duplex in sockets, i.e. read() and write() on the same fd do not cancel one another.
- The :meth:`GreenSocket.close <socket.socket.close>` method does not hang as it could with eventlet.
There's a test in my repo of eventlet that reproduces both of them: http://bitbucket.org/denis/eventlet/src/tip/greentest/test__socket.py
Besides having less bugs and less code to care about the goals of the fork are:
- Piggy-back on libevent as much as possible (use its http and dns code).
- Use the interfaces and conventions from the standard Python library where possible.


text:
Alan S. Rau
- Mark G. and Judy G. Yudof Chair in Law
- LLB Harvard
- BA Harvard
Areas of Specialty
Professor Rau holds the Mark G. and Judy G. Yudof Chair of Law at the University of Texas at Austin. He earned his B.A. and LL.B. from Harvard University, and before going into teaching, practiced law with Coudert Frères in Paris. Rau is the author of Processes of Dispute Resolution: The Role of Lawyers (4th ed. 2006), and of numerous law review articles dealing with arbitration, most recently "The Limits of Arbitral Power: Yet Another Trilogy" (American Review of Int'l Arbitration, 2012); "Arbitrating 'Arbitrability'" (World Arbitration and Mediation Review, 2013); "Arbitrators Without Powers? Disqualifying Counsel in Arbitral Proceedings" (Arbitration International, 2014), and ""Crossing the Threshold: Arbitral Jurisdiction after BG Group," Mélanges en l'honneur de Pierre Mayer (2014). Professor Rau is an Advisor to the American Law Institute Project on the Restatement of International Commercial Arbitration; he also frequently serves as an arbitrator and is a member of the panel of the AAA and the panel of mediators of the Court of Arbitration for Sport. He has taught as a Visiting Professor at the University of Toronto Faculty of Law; at the China University of Political Science and Law in Beijing; at the University of Geneva Faculty of Law; and at the University of Paris-I and the University of Paris-II. In the fall of 2014 he was a Distinguished Professor in Residence at Queen Mary University, London.
Recent Publications
- Arbitrators Without Powers? Disqualifying Counsel in Arbitral Proceedings, 30 Arbitration International 457 (2014).
- Arbitrating "Arbitrability," 7 World Arbitration & Mediation Report 487 (2013).
- The Errors of Comity: Forum Non Conveniens Returns to the Second Circuit, 23 The American Review of International Arbitration 1 (2012).
Recent Activities
Hague Academy of International Law
Professor Rau has been invited to give the extremely prestigious lectures at the Hague Academy of International Law in the summer of 2019.
Distinguished Visiting Fellow, Queen Mary University London
October 15, 2015 – November 15, 2015
Professor Rau served as a Distinguished Visiting Fellow at Queen Mary University, London, in October and November 2015, and gave a number of presentations to LLM and Ph.D. students at the school.
Arbitration Academy
July 20, 2014 – July 23, 2014
Paris, France
Special course, "The Jurisdiction of Arbitrators: The Respective Powers of Courts and Tribunals," in the Arbitration Academy, Paris, France.

subset: commoncrawl


text:
- ColombiaServicesFunding via Fundación Mario Santo Domingo (FMSD)
Deisy NathalyColombiaServicesFunding via Fundación Mario Santo Domingo (FMSD)
Doris TatianaColombiaServicesFunding via Fundación Mario Santo Domingo (FMSD)
Update on ZoraidaThank you for supporting Zoraida in her business of making women's clothing, because with her previous Kiva loan, she succeeded in buying an industrial sewing machine and raw material in bulk and in cash; and began improvements on her building and her working capital. Her productivity improved along with the quality of her products, and therefore so did her business's profits and her earnings.
She says to her financial backers: "Thank you very much for this support; my business has grown and so have my profits. I hope to continue receiving it."
Currently, she is again applying for a Kiva loan, with which she will purchase an industrial overlock sewing machine, an embroiderer, and raw material and supplies like fabric, thread and adornments. The success of this loan rests on the fact that with the overlock sewing machine and the embroiderer, the quality of her garments will increase, as they will be more finished. With the raw materials and supplies, her production will increase, and with this alone, she will sell much more.
Ella dice a sus finaciadores: "Muchas gracias, por ese apoyo , mi negocio ha crecido y las utilidades tambien, espero seguir recibiendolo. "
En la actualidad está aplicando a un credikiva nuevamente, mediante el cual comprará una fileteadora industrial, una bordadora y materias primas e inusmos como telas hilos adornos. El éxito de esta inversión cosnsiste en que con la fileteadora y la bordadora, aumentará la calidad de las prendas, pues tendran un mejor terminado y con las materias primas e insumos aumentará su producción y esto por si solo vende mucho mas.
Previous Loan DetailsZoraida is 60 years old, and has made a living sewing women's clothing since 1990. She spent time studying dressmaking, and eventually started up her own business, which has grown little by little over the years as she has expanded her customer base. In her business, Zoraida sews all kinds of gar... More from Zoraida's previous loan »
Additional Information
About Fundación Mario Santo DomingoFundación Mario Santo Domingo (FMSD) is a non-profit organization in northern Colombia dedicated to developing programs for the country's poorest communities. In addition to numerous social services, FMSD runs a microfinance program to strengthen micro-businesses in the areas where it works. The organization also offers several non-financial components as part of this program, including training to help entrepreneurs start their own businesses.
Concurrent and Successive Loans
Our Field Partners often work with borrowers over a series of loans as the borrowers build credit, take out bigger loans, and expand their businesses. In order to make it easier for our Field Partners to post loans for borrowers who have been listed on Kiva before, we allow them to post successive and concurrent loans for their Kiva borrowers. This means that our Field Partners are able to post a borrower's second, third, etc., loan on Kiva without having to re-enter all of the borrower's information.
This borrower has been listed on Kiva before, so you'll see an updated loan description, as well as excerpts of the original descriptions from earlier loans. Most borrowers take out loans consecutively, meaning that they receive a second loan after having repaid the first. However, sometimes our Field Partners give out concurrent loans, allowing borrowers to take out one primary loan and a secondary "add-on" loan along with it. These "add-on" loans are typically smaller than the borrower's primary loan and serve a different purpose. Because Field Partners can now post loans as successive and concurrent loans, you will be able to track borrower progress over time and see the various ways a borrower is working with our Field Partners through funds from Kiva's lenders.
About Colombia
273View loans »
Success!! The loan was 100% repaid
- Repayment Term
- 15 months (Additional Information)
- Repayment Schedule
- Monthly
- Pre-Disbursed:
- Oct 30, 2013
- Listed
- Nov 19, 2013
- Currency Exchange Loss:
- Possible
- Ended:
- Dec 17, 2014


text:
SAN FRANCISCO, March 26, 2013 (GLOBE NEWSWIRE) -- CollabRx, Inc. (Nasdaq:CLRX), a data analytics company focused on informing clinical decision making in molecular medicine, today announced the formation of a Pan Cancer (biomarker-focused) molecular oncology editorial board to be led by Razelle Kurzrock, M.D., who will serve as Chief Editor.
CollabRx Forms Pan Cancer Molecular Oncology Editorial Board
Check Out Our Best Services for Investors
Action Alerts PLUS
Portfolio Manager Jim Cramer and Director of Research Jack Mohr reveal their investment tactics while giving advanced notice before every trade.
Product Features:
- $2.5+ million portfolio
- Large-cap and dividend focus
- Intraday trade alerts from Cramer
Quant Ratings
Access the tool that DOMINATES the Russell 2000 and the S&P 500.
Product Features:
- Buy, hold, or sell recommendations for over 4,300 stocks
- Unlimited research reports on your favorite stocks
- A custom stock screener
Stocks Under $10
David Peltier uncovers low dollar stocks with serious upside potential that are flying under Wall Street's radar.
Product Features:
- Model portfolio
- Stocks trading below $10
- Intraday trade alerts
Dividend Stock Advisor
David Peltier identifies the best of breed dividend stocks that will pay a reliable AND significant income stream.
Product Features:
- Diversified model portfolio of dividend stocks
- Updates with exact steps to take - BUY, HOLD, SELL
Trifecta Stocks
Every recommendation goes through 3 layers of intense scrutinyquantitative, fundamental and technical analysisto maximize profit potential and minimize risk.
Product Features:
- Model Portfolio
- Intra Day Trade alerts
- Access to Quant Ratings
Real Money
More than 30 investing pros with skin in the game give you actionable insight and investment ideas.
Product Features:
- Access to Jim Cramer's daily blog
- Intraday commentary and news
- Real-time trading forums


text:
The altar, 'tis of death! for there are laid
The sacrifice of all youth's sweetest hopes.
It is a dreadful thing for woman's lip
To swear the heart away; yet know that heart
Annuls the vow while speaking, and shrinks back
From the dark future which it dares not face.
The service read above the open grave
Is far less terrible than that which seals
The vow that binds the victim, not the will:
For in the grave is rest.
(Letitia Landon [L.E.L.]) 1
Swept into limbo is the host
Of heavenly angels, row on row;
The Father, Son, and Holy Ghost,
Pale and defeated, rise and go.
The great Jehovah is laid low,
Vanished his burning bush and rod -
Say, are we doomed to deeper woe?
Shall marriage go the way of God?
Monogamous, still at our post,
Reluctantly we undergo
Domestic round of boiled and roast,
Yet deem the whole proceeding slow.
Daily the secret murmurs grow;
We are no more content to plod
Along the beaten paths - and so
Marriage must go the way of God.
Soon, before all men, each shall toast
The seven strings unto his bow,


text:
Monday's Headlines recap: RFK Jr. reportedly kept list of mistresses; Bowe Berghdal set to return to active duty; Anthony Cumia defends racist Twitter rant
|07.14.14 at 9:47 am ET
Here are the highlights from Monday's Headlines segment on Dennis & Callahan with Kirk Minihane, Gerry Callahan and John Dennis. To listen to the segment, go to the Dennis & Callahan audio on demand page.
RKF Jr. reportedly kept list of dozens of mistresses in his cell phone
Environmental lawyer and activist Robert F. Kennedy Jr., son of the late U.S. Senator, kept a list of 43 suspected mistresses under the letter 'G' in his cellphone, a move that Kennedy's last wife Mary Richardson believed stood for "goomah," the Italian slang for mistress, the New York Post reported.
Richardson, who committed suicide in May 2012 in the midst of a rough divorce with Kennedy, shared the information with a friend two months before she hanged herself.
The revelation of Kennedy's shady list could spell trouble for his upcoming marriage to actress Cheryl Hines. Kennedy and Hines are scheduled to wed in the near future.
"Boy if I was her, I think I'd read this Post story first," Minihane said.
"Doesn't any woman who marries a Kennedy get what they deserve? You know going in," Callahan added.
Sgt. Bowe Berghdal expected to return to active-duty service
Bowe Berghdal, the U.S. Army solider who was returned to the United States after being held by the Taliban for five years, is ready to return to active duty.
Six weeks after being returned in a controversial prisoner swap, Berghdahl completed his therapy and counseling appointments at a San Antonio hospital and will begin a new job at Fort Sam Houston, officials said.
"So when he wanders off of this base, where will he be headed?" Dennis asked.
"After all the work that the therapist did, he's going to meet with his father, he's going to freak out and stab him with his bayonet," Callahan added.
Fired radio host Anthony Cumia defends himself on 'Red Eye'
Newly unemployed shock jock Anthony Cumia, formally of the "Opie and Anthony" show on SiriusXM, appear on Fox News' "Red Eye" to defend himself in wake of a racist Twitter rant that led to his firing almost two weeks ago.
"It was such a knee-jerk reaction in this day and age," Cumia said in the interview, adding, "I will never apologize for this. … I didn't do anything wrong."
"He should've known in this day and age that you can't do that, but if you're saying it all day on the air — all day, every day — and you're thinking the people following you are your fans who are listening, what's the difference?," Callahan said.
- Aaron Eriskin on Sizing up the competition
- Tim on Mrs. Football vs. Miss Alabama
- gibby on Mrs. Football vs. Miss Alabama
- Kevin Miller on Mrs. Football vs. Miss Alabama
- Captain on Mrs. Football vs. Miss Alabama
- Har in Vancouver on DJ Steve Porter 'Can't Wait'
- SeamusNH on Happy couple caught in the act
- Lollipop on The Lovely Donna Simpson…Smokin!
- RICK ALLEN on The Red Sox new theme song!
- MARJE on Susanne Eman — Wants to be worlds fattest woman


text:
- 70Promote
Art Print
The Skull Factory Perspectiveby Texnotropio
Collect your choice of gallery quality Giclée, or fine art prints custom trimmed by hand in a variety of sizes with a white border for framing.
Please zoom in to see the detailed artwork.
Very cool!!
wow awesome work tex
TY very much Donuts & Maggs!
Fantastic work!
much appreciated Veronica!
Very cool, Tex!
very nice!
cheers Klara & Adam!
stunning !
much appreciated Cat!
Very cool design!
cheers Phil!
moody, wonderful!
TY Bianca!
See More Comments


text:
- Sign Up. The first 1,000 hosts who register will receive the exclusive cookie-making kit from Betty Crocker.
- Invite Your Guests. After you sign up, hosts will have access to free custom Evite invitations that they can personalize and send to their guests.
- Make a Merry Difference. Each friend and family member are encouraged to bring cookies to share as well as a toy or cash donation to Toys for Tots. Choose to donate online or collect cash and checks at the party. Find a Toys for Tots drop-off location here for the toys you collect.
- Be Creative. Get cookie recipe ideas from Betty Crocker, as well as cute ways to easily decorate your party!
- Share your holiday cookie creations and donation success on social media using #MakeMerry and #TFT CookieExchange hashtags.
Toys For Tots Teams Up With Betty CrockerA® To Encourage Americans To Host Parties To Make A Merry Difference
TRIANGLE, Va., Nov. 25, 2013 /PRNewswire/ -- This year, the Marine Toys for Tots Foundation has partnered with Betty Crocker® to encourage holiday party hosts and goers to give back, bake and make a merry difference. To kick off the celebration, Betty Crocker has donated $50,000 to Toys for Tots to help deliver more than 3,500 toys to families in need. Now through December 27, individuals can register to host their Toys for Tots Cookie Exchange at www.toysfortots.org/cookie. In return, the first 1,000 hosts who sign up will receive a special cookie-making kit from Betty Crocker, including a copy of Betty Crocker The Big Book of Cookies with over 180 easy-to-make recipes and a Toys for Tots train-shaped cookie cutter. Evite® partnered with Toys for Tots and Betty Crocker to create a custom invitation for cookie exchange hosts to easily spread the word to their guests.The not-so-jolly reality is that more than 16 million American children currently live in poverty and may not receive toys this holiday season. With a goal of 1,000 or more cookie exchange parties hosted, Toys for Tots, Betty Crocker and Evite are encouraging Americans to help other families make merry memories this holiday season. "Betty Crocker and Toys for Tots are synonymous with the Christmas holidays," Lt. Gen. Pete Osman, USMC (Ret), President and CEO of the Marine Toys for Tots Foundation. "We are excited to host the first annual Toys for Tots Cookie Exchange to help turn holiday parties – something in which we all partake – into an opportunity to share the magic of Christmas with deserving children. Thanks to our new friends at Betty Crocker, everyone can help deliver memories of hope and happiness to children who need it most by collecting toys and donations at their cookie exchanges." "We're honored to partner with Toys for Tots this holiday season to help fulfill their important mission," said Laura Forero, marketing manager with Betty Crocker. "It's our hope that by hosting cookie exchanges to gather donations some added cheer will be brought to thousands of deserving children this holiday season." It's easy to host a Toys for Tots Cookie Exchange:
Check Out Our Best Services for Investors
Action Alerts PLUS
Portfolio Manager Jim Cramer and Director of Research Jack Mohr reveal their investment tactics while giving advanced notice before every trade.
Product Features:
- $2.5+ million portfolio
- Large-cap and dividend focus
- Intraday trade alerts from Cramer
Quant Ratings
Access the tool that DOMINATES the Russell 2000 and the S&P 500.
Product Features:
- Buy, hold, or sell recommendations for over 4,300 stocks
- Unlimited research reports on your favorite stocks
- A custom stock screener
Stocks Under $10
David Peltier uncovers low dollar stocks with serious upside potential that are flying under Wall Street's radar.
Product Features:
- Model portfolio
- Stocks trading below $10
- Intraday trade alerts
Dividend Stock Advisor
David Peltier identifies the best of breed dividend stocks that will pay a reliable AND significant income stream.
Product Features:
- Diversified model portfolio of dividend stocks
- Updates with exact steps to take - BUY, HOLD, SELL
Trifecta Stocks
Every recommendation goes through 3 layers of intense scrutinyquantitative, fundamental and technical analysisto maximize profit potential and minimize risk.
Product Features:
- Model Portfolio
- Intra Day Trade alerts
- Access to Quant Ratings
Real Money
More than 30 investing pros with skin in the game give you actionable insight and investment ideas.
Product Features:
- Access to Jim Cramer's daily blog
- Intraday commentary and news
- Real-time trading forums


text:
Have a happy birthday.
Here is a small cake for you.
BF Cake.jpg
Have a happy birthday.
Here is a small cake for you.
BF Cake.jpg
Get a bicycle. You will not regret it if you live. ~Mark Twain, "Taming the Bicycle"vBulletin: snafu
Yay! Happy birthday to one of bikeforums finest southern gentlemen.
Woot! Its your birthday, its your birthday.
I caught you a delicious bass
Are you a registered member? Why not? Click here to register. It's free and only takes 27 seconds! Help out the forums, abide by our community guidelines.
Do NOT touch Z bass!
Mutant perhaps?
Change the course of the Epidemic | The Merlin | Merlin XLM | Bianchi Ti | CyclePeople
Don't take it off until there's a cure LIVESTRONG | pay it forward | Cats | NEW Gallery9
Smoke em' if ya get 'em.
"Smoked bass"
How old is the clone? Same age or an earlier/later copy?
無上甚深微妙法 .... 百千萬劫難遭遇..... 我今見聞得受持
Go Allen! Woo woo woo!
Happy Birthday AllenG!
Happy Birthday!!
happy b-day Allen.
Ravenmore's Pictures
Ravenmore's Photo Blog
Mean people are like slinkys. They're really not worth much but still are rather entertaining to watch tumble down the stairs.
Happy Bday, Allen.
happy b-day!
Food for thought: if you aren't dead by 2050, you and your entire family will be within a few years from starvation. Now that is a cruel gift to leave for your offspring. ;)
happy b'day mr. G!
Have a great one and don't do anything I wouldn't do...which, well, is pretty wide open. Have fun.
1 bronze, 0 silver, 1 gold


text:
"Seamandrew's Steyr Page" Top 5 Page for this destination Steyr by seamandrew
Steyr Travel Guide: 167 reviews and 397 photos
The old picturesque city of Steyr is situated at the confluence of the Steyr River and the Enns River. Here, the medieval Old Town offers an impressively harmonious appearance. Steyr's history is deeply rooted in it's iron work, but the city has also played host to famous composers like Anton Bruckner and Franz Schubert both of whom came to the wealthy industrial city of Steyr and wrote some of their most famous compositions. These illustrate just a small sample of the rich history of the city.
The iron industry has been the backbone of Steyr's prosperity since the Middle Ages. Steyr even made armaments in WWI and WWII and as a result was bombed for its trouble in 1944. After the war, during the Allied occupation, it was a frontier town between the US and Soviet Zones. Despite the heavy industry, and the wars, Steyr still maintains an attractive town center.
A third, but much smaller river, the Ramingbach also joins the Enns a bit further up from Steyr which makes for a lot of water flowing in the direction of Steyr and the surrounding area. The result is sometimes catastrophic floods which engulf the city bringing it and areas around it to a standstill. Fortunately, the city has dealt with floods for so long that they seem quite adept at preparing for and handling them, as evidenced in the most recent floods of 2002.
Steyr is a lovely town that is worth a visit for anyone visiting the Traunviertel part of Upper Austria. It's Old Town charm, coupled with it's scenic location make it a highlight on anyone's itinerary. I for one will remember Steyr not only for all the city itself has to offer, but also as the place of my first VT meeting with Globetrott (Michael).
- Pros:Beautiful architecture, picturesque setting, rich history.
- Cons:Parking can be a pain.
- In a nutshell:A lovely Austrian city with lots of history.
Reviews (22)
I was not a guest of this hotel, but thanks to Michael, our very own VT'er, 'globetrott', Elisabeth and I got an... more travel advice
Elisabeth and I had the pleasure of dining with Michael (globetrott) in Steyr. We went to a restaurant right on the... more travel advice
The Bummerlhaus a symbol of the town with its gothic appearance and steep gable. In its present form, it dates back to... more travel advice
On my picture you can see what could have been the Schuberthaus. It is the house in the middle with the yellow color.... more travel advice
Travelogues (1)
- 1
Comments (5)
Fabolous page, Drew! Wintertime in Steyr has its own charm!
ahh, great updates again, Drew !! .....these old clocks are at least 2000 Euro, UNrepaired and maybe double, when repaired
a lot of things I did not know myself, although I grew up here. Happy birthday, Andrew !
Fabulous start with brilliant photos of this Austrian gem. Keep up the good work ... :o)
great start; I'll be back and look forward to see your finished Steyr-page; this is doubtless one of the most beautiful towns in Austria ....
seamandrew's Related Pages
Steyr Travel Guide
Member Travel Pages
- "my hometown for 20 years"
- "Seamandrew's Steyr Page"
- "Steyr"
- "a planned detour I would have never missed..."
- "VT meet in Steyr"
- "Over 1000 years of history."
- See All...
- Things to Do in Steyr
- Hotels in Steyr
- Transportation in Steyr
- Restaurants in Steyr
- Shopping in Steyr
- Warnings and Dangers in Steyr
- See All...
"The world is a book, those who do not travel read only a page."
- Member Rank:
- 0 0 2 6 5
- Forum Rank:
- 0 4 4 0 8
- 739 Reviews
- 1,070 Photos
- Add Friend
- Follow
- Send Message
Badges & Stats in Steyr
- 22 Reviews
- 25 Photos
- 0 Forum posts
- 5 Comments
- 4,097PageViews
- See All Stats
- See All Badges (38)
Have you been to Steyr?Share Your Travels
Latest Activity in Steyr
- Posted in Travel Forum "Re: Your travel plans for 2003"
- Uploaded a Photo to "Just two more pictures I wanted to share."
- updated a Steyr Travelogue "Just two more pictures I wanted to share."
- Wrote a Review Fine accomodations in Steyr in Steyr Hotels
- Commented on one of Martin_S.'s Steyr travel pages
Photos in SteyrSee All Photos (25)
Top 10 Pages
- Top 5 Page for this destination Barcelona Intro, 93 reviews, 127 photos, 4 travelogues
- Top 5 Page for this destination Maui Intro, 78 reviews, 119 photos, 5 travelogues
- New York City Intro, 66 reviews, 87 photos, 3 travelogues
- London Intro, 34 reviews, 57 photos, 5 travelogues
- Top 5 Page for this destination Reykjavík Region Intro, 30 reviews, 54 photos, 4 travelogues
- Top 5 Page for this destination Hobart Intro, 26 reviews, 31 photos, 1 travelogue
- Top 5 Page for this destination Sankt Wolfgang im Salzkammergut Intro, 27 reviews, 28 photos
- Top 5 Page for this destination Gmunden Intro, 23 reviews, 32 photos, 1 travelogue
- Salzburg Intro, 20 reviews, 34 photos, 1 travelogue
- Amsterdam Intro, 25 reviews, 26 photos


text:
Newegg.com - A great place to buy computers, computer parts, electronics, software, accessories, and DVDs online. With great prices, fast shipping, and top-rated customer service - once you know, you Newegg.
If you are reading this message, Please click this link to reload this page.(Do not use your browser's "Refresh" button). Please email us if you're running the latest version of your browser and you still see this message.
Newegg.com - Computer Parts, Laptops, Electronics, HDTVs, Digital Cameras and More!
Sold and Shipped by Newegg
The Top Dawg Recordable Noise Canceling over the Head Bluetooth® headset combines 4X anti-noise cancelation technology and digital signal processor (DSP) with the unique ability to record important conversations and information. The Recordable Bluetooth® Headset is very comfortable for extended use, and an ideal product for industrial, windy, and hard-to-hear environments. This unique recordable Bluetooth® headset can be connected to two Bluetooth® devices at the same time. By use of 4X anti-noise technology, the multifunctional Bluetooth® headset makes your conversation clear and smooth. Coupled with Bluetooth® dongle in offices, the Bluetooth® headset offers clear, hands-free chatting on SKYPE, MSN or web phones when you are on the go.
This item is eligible for Newegg Premier benefits. Are you a Newegg Premier Member? If not, sign up today and get:
Your request will be processed within the next 24 hours.
Please add "firstname.lastname@example.com" to your address book to ensure delivery.See Today's E-Blast Promo


text:
Tank mates for Columbian Tetras?
Hi everyone I just got five Columbian Tetras today not fully understanding the facts about. The LFS said it was a great fish calm and makes for a good tank mate. Well this was after I told him I was planning on getting some Angelfish in the future for my tank. So I got these finish to help cycle my tank (which is a 55gal). Well after reading some about them I don't think the Angelfish is such a good I deal with the columbian tetra. So my question is what would make good tank mates for these fish?
Also got aquadine for food is there something else I need to feed the tetras?
as always variety is the spice of life so i would get another food or two..frozen or a high quality pelllet.live is always good..i have never known the columbians to be picky eaters but if you want the nice red finnage you will want a good diet.
you were detered from angels?? varius larger tetras will work out fine..i like the diamond tetra or the congo tetra..lotsa rainbows will work too bosmani,precox,various gouramis..loaches and catfishes..you have a lot of options in a 55 gallon.
IME they are fairly nippy, and that was in the 90 gallon. I now have them with tiger, rosy and gold barbs in a 55 with a female convict and they're doing very well. I think they can handle a slightly more aggressive tank than some other tetras.
i forgot to mention apistogramma cocatoides strains will work ou another dwarf cichlid thats nice is the honduran redpoint.rope fish are sweet..most of your catfishes that dont achieve a large size.there is an albino form of the columbian tetra as well..pretty cool..as you can see i like columbian tetras...there blue and red against a green planted background is awesome..there activity that you may find distresing is a desirable trait to me always first on the scene always on display.i breed them so if you got other questions holar.
You will also find some other suggestions for suitable tankmates in the profile, Colombian Tetra.
If you decide to keep the Colombians [some stores will take them back in exchange] and work around that, I would suggest getting 3 more. A group of 6-8 tends to keep their nippiness more subdued, the more the merrier.
|All times are GMT -5. The time now is 06:15 PM.
Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.6.0 PL2


text:
Now more than ever, ELL education is of paramount importance in the US and around the world. That is why Rosetta Stone Education is proud to help the TESOL International…Read More
Tag Archives: ELLs
The Challenge of Multi-level Learners in the Language Classroom
I attended ACTFL this year with a mission: to hear from K12 teachers from across the country about the challenges they face in their teaching endeavors, the successes they have…Read More
Helping ELL Students Stay On Track
A recent study from the Regional Education Laboratory Northwest confirmed that English Language Learning students in six Oregon school districts were more likely to be suspended and expelled than their…Read More
In Oregon, ELLs are Disciplined Disproportionately to English Speakers
In a new study from the Regional Education Laboratory Northwest , English Language Learning students in six districts in Oregon were suspended and expelled at higher rates than their native…Read More
The Growth of Immersion Education and Its Shortage of Teachers
Dual language education programs are seen as a key strategy in both closing the achievement gap for the nation's ever-growing ELL population as well as making English-speaking students more competitive…Read More
New White House Budget Includes Funds for ELL Education and Community Outreach
In the FY 2016 budget the White House just submitted to Congress, funding for ELL education and outreach was increased $36 million to $773 million overall. With that increase in…Read More
Upcoming Webinar—Accelerate English Language Learner Success: Using Blended Learning To Complement Classroom Instruction
Blended learning offers the opportunity to transform classroom instruction for all students, but particularly those who have been classified as English Language Learners (ELLs). Online systems offer anytime/anywhere access that…Read More
New Report Seeks to Dispel Misconceptions in Latino Education
The public perception of Latino education in the United States is one of failure and daunting tasks. A new report seeks to dispel that perception. Washington, DC-based think tank Excelencia…Read More
Pathways to English Language Learner Success Webinar
For the optimists, the growth of the nation's English language learner (ELL) population is an opportunity to integrate millions of bilingual, culturally skilled students into the US economy. Currently, ELLs…Read More
Top 10 Ways Rosetta Stone Solutions Support ELL Classroom Success
Sometimes when it comes to English Language Learner education, we talk broadly about population shifts and graduation statistics. Instead, let's go ground level. Here are the top 10 ways Rosetta…Read More


text:
Pfizer, Merck: Tomorrow's Headliners
TheStreet) -- Merck (MRK - Get Report) and Pfizer (PFE - Get Report) will be in focus Tuesday as both components of the Dow Jones Industrial Average will post earnings results. Merck should report a first-quarter profit of 75 cents a share on revenue of $11.17 billion, according to a Thomson Reuters poll of estimates. That would be a penny higher than its profit in the first quarter of 2009.Meanwhile, fellow drugmaker Pfizer should see first-quarter earnings of 53 cents a share on revenue of $16.57 billion. Unlike Merck, that would be a penny below its year-ago profit. Investors should watch for the contributions from the Schering-Plough acquisition, which has boosted revenue but done little to affect bottom-line growth. Several other companies will report quarterly results before the start of trading Tuesday, including Archer-Daniels Midland (ADM - Get Report), CVS Caremark (CVS - Get Report), Mastercard (MA - Get Report), Marathon Oil (MRO - Get Report), and Sirius XM (SIRI - Get Report). On the economic front, separate reports on factory orders and pending home sales will be released at 10 a.m. ET. Economists expect the latest factory orders report to show a 0.2% decline in March after a 0.6% rise in February. Meanwhile, the National Association of Realtors will likely say that pending home sales rose 5% in March, according to a Briefing.com survey of analysts, which follows an 8.2% increase in February. -- Written by Robert Holmes in Boston. Follow Robert Holmes on Twitter and become a fan of TheStreet.com on Facebook.NEW YORK (
Check Out Our Best Services for Investors
Action Alerts PLUS
Portfolio Manager Jim Cramer and Director of Research Jack Mohr reveal their investment tactics while giving advanced notice before every trade.
Product Features:
- $2.5+ million portfolio
- Large-cap and dividend focus
- Intraday trade alerts from Cramer
Quant Ratings
Access the tool that DOMINATES the Russell 2000 and the S&P 500.
Product Features:
- Buy, hold, or sell recommendations for over 4,300 stocks
- Unlimited research reports on your favorite stocks
- A custom stock screener
Stocks Under $10
David Peltier uncovers low dollar stocks with serious upside potential that are flying under Wall Street's radar.
Product Features:
- Model portfolio
- Stocks trading below $10
- Intraday trade alerts
Dividend Stock Advisor
David Peltier identifies the best of breed dividend stocks that will pay a reliable AND significant income stream.
Product Features:
- Diversified model portfolio of dividend stocks
- Updates with exact steps to take - BUY, HOLD, SELL
Trifecta Stocks
Every recommendation goes through 3 layers of intense scrutinyquantitative, fundamental and technical analysisto maximize profit potential and minimize risk.
Product Features:
- Model Portfolio
- Intra Day Trade alerts
- Access to Quant Ratings
Real Money
More than 30 investing pros with skin in the game give you actionable insight and investment ideas.
Product Features:
- Access to Jim Cramer's daily blog
- Intraday commentary and news
- Real-time trading forums


text:
Hourly Job
Seeking resource with experience in Coffescript to write a small application today.
Resource must be available today to complete a small project, should not take
longer than 2-3 hours.
About the Client
United States
Aventura 05:21 PM
Jobs Posted
34% Hire Rate, 1 Open Job
Total Spent
1 Hire, 0 Active
Avg Hourly Rate Paid
13 Hours


text:
"Dammit, not again. :/"
so epic!
Oh gosh, I'd love your work!
Wow. Extraordinary. The angled view, the horrible monster, the propulsion of things/people in the air, the sand and dust, the sun....
Great art, great composition. Bravo!!
I love the title to this. The peice is really great but the title is by far the best part
I just wanna chuck various objects into its mouth TERRIFYING
Great job. Love the worm.
lol nice title made me laugh!!
nice love colors and scene
WOW! a mongolian death worm!
Epic! Excellent work here!
you are so creative! i super love this!
Oh my! your artwork is very entertaining to look at!
Whoa! I don't now why, but I really like this! The colors, it's almost like a scene from a movie, or a game. I mean, a lot more real than that! Haha
fantastic creature, even if you know what a boneless creature of that size can never exist in this planet vou make look very amenazing and credible.
That always happens to me. I'm writing a story when all of a sudden a giant worm attacks the main protagonists.
HAH, nice title. Man this kind of scared the crap out of me, even on my tiny laptop screen. Love what you did with the hazy sort of backlighting. Poor bastards.
hooray for worms
ooh that sucks to be them good picture
This is an amazing picture but 'bummer' is a slang term for a homosexual!
So what? I am sure he meant "1. A word describing the misfortune of something or someone.
2. A situation in which no desireable result can occur
3. A negative form of agreement.
4. A response used when the respondee couldn't care less about the topic at hand." (from Urban Dictionary, the queen of all slanG!)
2. A situation in which no desireable result can occur
3. A negative form of agreement.
4. A response used when the respondee couldn't care less about the topic at hand." (from Urban Dictionary, the queen of all slanG!)
epic! )
Love the lighting! Looks like it could be a zerg from Starcraft.
reminds me of Tremors 4, or whichever sequel is the one in the old west.
Seems, just now someone is playing "Death Worm" on his iPad an testing the brand-new level "Wild West"
the piece is amazing, the title is hillarious
I've had day's like this..... not fun......
Wish I could draw as good as you. LOVE
It's a disaster that's for sure.
major bummer
Eh. It happens.
Great atmosphere.
Great atmosphere.
That's totaly awesome man!
great toning
Really liking the composition and colours. Very nice dynamic and action, and the painting style looks nice, clear and realistic but not too refined.
Awesome. The first thing I thought of was some extreme badass version of Oregon Trail. Maybe an unlockable "insane" mode?
That looks awesome man
AAAAAH this looks great, Andrew!!
Gorgeus fogg!
Good shit!
Nice! Brings back memories of watching Tremors as a kid


text:
Indoor Air Quality
1 Result Found that Includes 1 Product
How can we improve the Search Experience?
Product availability based on selecting either shipping or pick up and a location. Dismiss
Ship or Pickup Enter Location
- Sampler Cassette Match Weight, 37mm, PK50 Sampler Cassette Match Weight,37mm,PK50
- Item # 3UCE6
- Mfr. Model # 8153-4
Sampler Cassette Match Weight, 37mm, Package Quantity 50
Price $541.50 / pkg. of 50
Catalog Page # NA
How can we improve the Search Experience?
Note: Product availability is real-time basis and adjusted continuously. The product will be reserved for you when you complete your order. More


text:
Water Mirror by Qsan90Watch
©2013-2016 Qsan90
Daily DeviationGiven 2013-11-28
Water Mirror is a stunning, deceiving art collaboration between *Qsan90 and *Mega-Ne. ( Suggested by Minato-Kushina and Featured by Gwendolyn12 )
Stupendo *-*... I tuoi lavori sono vere opere d'arte (^_^)
i love this.
Love this
i love the color's and the shade's ,Fantastic! <3
i luv manga gurls
'Tis a reflection of your self.
Thank you very much*//*.
Yes it's exactly what we wanted to comunicate.
Yes it's exactly what we wanted to comunicate.
This is one of the most beautiful things I have ever seen. <
very cool!
Amazing *.*
Love the idea of the reflection which is not a reflection. Lovely piece and beautifully done.
Congrats on the DD. <3
Congrats on the DD. <3
this is beautyful
The differences in the actual versus the reflected character are perfect for the mood.
This looks amazing! Very nice.
Congrats on the DD!
woah, it's soo pretty! i love the background!
Thank you very very very much *//* I'm very happy you like our work *//*.
really pretty.


text:
Party, Craft & School Supplies
Brainy Toys for Kids of All Ages
Get Free Shipping + $10 Off Orders $49 or more Refer Now
Your cart is currently empty.
Items remain in your shopping cart for 30 days.
Save up to 65% off Shop
Up to 60% Off Wedding Supplies Shop
Save Up to 50% Off! Ends April 6 Shop
Hersheys as low as 9¢ per piece! Shop
Elf Hats. These tissue hats are perfect for Christmas parties or holiday school plays! Accented with silly elf ears, these red and green hats go great with any yuletide outfit or costume. Kids love pretending to be Santa's helpers! 12 1/2" diam. © OTC
Per Dozen


text: Hey everyone, I spent the weekend up in St. Louis test riding scooters and trying to decide on which one I really wanted. When we headed home I had decided that I was going to purchase a new '09 TMax from a local dealer. After we got home last night I did some craigslist searching and I found a Big Ruckus within a couple hours drive. I rode out there this afternoon and brought it home. I've been listing WTB Big Ruckus ads on craigslist for probably close to a year and this one just kinda fell in my lap so I jumped on it. It has 5900 miles and came with two windshields. I've been riding my wifes scooter some and she told me it was time to find one for my own. Here's a few pics: Tonight is the local scooter club's meeting. I'm gonna scoot on down and see what they have going on. :)


text:
Blogs Home
with Tags: cmad X
- Sort by:
- Date ▼
- Title
- Likes/Votes
- Comments
- Visits
#CMAD Luncheon and Social Buzz Chat
Rachel Happe firstname.lastname@example.com Tags: ibmconnect #cmad cmad community_manager_appreci... 4,833 Visits
Five years ago, when Jeremiah Owyang first proposed Community Manager Appreciation Day (#CMAD) , community managers often worked in near obscurity. In fact, so much so that our logo is a playful nod toward Sir Robin in Monty Python and the Holy Grail -...
from Blog: Social Business Insights BlogModified by Samantha Klein firstname.lastname@example.com
Celebrating Community Manager Appreciation Day (#CMAD) at #IBMConnect
Colleen Burns firstname.lastname@example.com Tags: cmad community_managers ibmconnect community 5,136 Visits
Celebrating Community Manager Appreciation Day (#CMAD) at #IBMConnect By Jim Storer, Community Roundtable @JimStorer Becoming a social business is all the rage. Executives are drinking the Kool-Aid, organizing teams to explore the use...
from Blog: Social Business Insights Blog


text:
Thanks for helping us sort this video!
Thanks for helping us associate the correct Pornstars to this video!
Help Us: Do these Pornstars appear in this video?
Pornstar Name:
All Comments (4)
my wife flash all the time when we go out
great tune and nice exspo@@@@@@@
pump it what tune


text:
iHollywood Forum Inc. announced its lineup of entertainment industry luminaries at "The Digital Studio," a summit and showcase focusing on digital technology and how it is transforming the film and TV industry. The third annual summit takes place as part of the American Film Market, (AFM) on Nov. 2, from 9:00 am to 6:00 pm at the Monica Laemmle Theatre, 1332 2nd Street, Santa Monica, CA.
Industry headliners include:
* Tim Sarnoff, president, Sony Pictures Imageworks. Imageworks is in production on THE POLAR EXPRESS, BEWITCHED, THE CHRONICLES OF NARNIA: THE LION, THE WITCH AND THE WARDROBE, CURSED, THE FORGOTTEN and THE AVIATOR.* Stan Winston, Stan Winston Prods. The multiple Oscar winner for character design, make up and vfx, saw his new SW Digital company contribute to SKY CAPTAIN AND THE WORLD OF TOMORROW.* Karen Goulekas, visual effects supervisor on THE DAY AFTER TOMORROW, also worked on SPIDER-MAN, GODZILLA, TITANIC, among others.
The Digital Studio brings together digital trailblazers with many industry constituents, including: studios, producers, production and post production, animators, analysts, visual effects specialists, DP's, cinematographers, software and technology manufacturers, developers, advertising and marketing professionals, etc. Topics include: visual effects, animation, high-definition filmmaking and television, acquisition, digital intermediates and mastering, audio, digital cinema, production and post-production, DVD home video, HDTV, marketing and distribution.
"We welcome the addition of the Digital Studio Summit to the AFM. The Summit will provide our attendees with a unique opportunity to explore digital technologies and how they are redefining the acquisition, development, production, delivery and distribution of motion pictures and television," said Jonathan Wolf, evp of the Independent Film & Television Alliance (formerly AFMA) and managing director of the American Film Market.
"Digital production has always been hailed as the entertainment technology of the future," said Michael Stroud, Founder of iHollywood Forum. "Now it's here, utilized in the production of films like SKY CAPTAIN AND THE WORLD OF TOMORROW and POLAR EXPRESS. The Digital Studio Summit presents a Hollywood insider's view of the making of these and other digital films, and provides attendees with the knowledge and networking to join the digital revolution."
Sponsors include: IBM and Fotokem, and promotional partners include Animation World Network (www.awn.com), VFXWORLD (www.vfxworld.com), THE HOLLYWOOD REPORTER, Rogers & Cowan, ANIMATION MAGAZINE, Final Cut Pro Users Group, Hollywood Post Alliance, Producer's Guild of America, HOLLYWOOD CREATIVE DIRECTORY and BUSINESS WIRE.
Other speakers include: * Tom Tolls, ceo, House of Moves* Greg Foster, president Filmed Ent., IMAX Corp.* Mitch Singer, evp, Digital Policy Group, Sony Pictures Ent.* Chris De Feria, producer, Warner Bros. (CATS & DOGS)* Rob Legato, visual effects supervisor (THE AVIATOR, TITANIC)
iHollywood Forum Inc. (www.ihollywoodforum.com), based in Los Angeles, produces roundtables and conferences for Hollywood, entrepreneurs and mobile technology professionals. Founded five years ago by business journalist Michael Stroud, the company produces the popular monthly iHollywood Forum seminars on digital entertainment; MobileTech Forum for mobile professionals in San Diego, Los Angeles and Palo Alto; and Mobile Media World (Formerly iWireless World) on wireless content and applications; and Digital Media Summit, a conference about digital media delivery and commerce.
The American Film Market (AFM) (www.americanfilmmarket.com) is a global marketplace where more than 7,000 industry professionals converge in Santa Monica for eight days of deal making, screenings, seminars, networking and hospitality. Participants come from more than 70 countries, and include leaders in motion picture and television production and distribution, directors, agents, writers, lawyers, bankers, festival directors, film commissioners and trade groups.