Changelog
All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference Keep A Changelog.
Unreleased
SPEC Changes
rack.input
is now optional. (#1997, @ioquatix)Rack::Utils.escape_html
is now delegated toCGI.escapeHTML
.'
is escaped to#39;
instead of#x27;
. (decimal vs hexadecimal) (#2099, @JunichiIto)
Changed
rack.input
is now optional, and if missing, will raise an error. Use this to fail on multipart parsing a request without an input body. (#2018, @ioquatix)- Introduce
module Rack::BadRequest
which is included in multipart and query parser errors. (#2019, @ioquatix) - MIME type for JavaScript files (
.js
) changed fromapplication/javascript
totext/javascript
(1bd0f15
) - Add
.mjs
MIME type (#2057, [@axilleas]) - Update MIME types associated to
.ttf
,.woff
,.woff2
and.otf
extensions to use mondernfont/*
types. (#2065, @davidstosik)
[3.0.8] - 2023-06-14
- Fix some unused variable verbose warnings. (#2084, @jeremyevans, @skipkayhil)
[3.0.7] - 2023-03-16
- Make query parameters without
=
havenil
values. (#2059, @jeremyevans)
[<IP_ADDRESS>] - 2023-03-13
- [CVE-2023-27539] Avoid ReDoS in header parsing
[3.0.6] - 2023-03-13
[3.0.5] - 2023-03-13
[<IP_ADDRESS>] - 2023-03-02
- [CVE-2023-27530] Introduce multipart_total_part_limit to limit total parts
[<IP_ADDRESS>] - 2023-01-17
- [CVE-2022-44571] Fix ReDoS vulnerability in multipart parser
- [CVE-2022-44570] Fix ReDoS in
Utils
.get_byte_ranges - [CVE-2022-44572] Forbid control characters in attributes (also ReDoS)
[3.0.4] - 2023-01-17
Rack::Request#POST
should consistently raise errors. Cache errors that occur when invokingRack::Request#POST
so they can be raised again later. (#2010, @ioquatix)- Fix
Lint
error message forHTTP_CONTENT_TYPE
andHTTP_CONTENT_LENGTH
. (#2007, @byroot) - Extend
MethodOverride
to handleQueryParser::ParamsTooDeepError
error. (#2006, @byroot)
[3.0.3] - 2022-12-27
Fixed
URLMap
uses non-deprecated form ofRegexp.new
. (#1998, @weizheheng)
[3.0.2] -2022-12-05
Fixed
- Rack::Utils.build_nested_query URL-encodes nested field names including the square brackets.
- Allow
Response
to pass through streaming bodies. (#1993, @ioquatix)
[3.0.1] - 2022-11-18
Fixed
MethodOverride
does not look for an override if a request does not include form/parseable data.Lint::Wrapper
correctly handlesrespond_to?
withto_ary
,each
,call
andto_path
, forwarding to the body. (#1981, @ioquatix)
[3.0.0] - 2022-09-06
- No changes
[3.0.0.rc1] - 2022-09-04
SPEC Changes
- Stream argument must implement
<<
https://github.com/rack/rack/pull/1959 close
may be called onrack.input
https://github.com/rack/rack/pull/1956rack.response_finished
may be used for executing code after the response has been finished https://github.com/rack/rack/pull/1952
[3.0.0.beta1] - 2022-08-08
Security
- Do not use semicolon as GET parameter separator. (#1733, @jeremyevans)
SPEC Changes
- Response array must now be non-frozen.
- Response
status
must now be an integer greater than or equal to 100. - Response
headers
must now be an unfrozen hash. - Response header keys can no longer include uppercase characters.
- Response header values can be an
Array
to handle multiple values (and no longer supports\n
encoded headers). - Response body can now respond to
#call
(streaming body) instead of#each
(enumerable body), for the equivalent of response hijacking in previous versions. - Middleware must no longer call
#each
on the body, but they can call#to_ary
on the body if it responds to#to_ary
. rack.input
is no longer required to be rewindable.rack.multithread
/rack.multiprocess
/rack.run_once
/rack.version
are no longer required environment keys.- Rack::SERVER_PROTOCOL is now a required environment key, matching the HTTP protocol used in the request.
rack.hijack?
(partial hijack) andrack.hijack
(full hijack) are now independently optional.rack.hijack_io
has been removed completely.rack.response_finished
is an optional environment key which contains an array of callable objects that must accept#call(env, status, headers, error)
and are invoked after the response is finished (either successfully or unsuccessfully).- It is okay to call
#close
onrack.input
to indicate that you no longer need or care about the input. - The stream argument supplied to the streaming body and hijack must support
#<<
for writing output.
Removed
- Remove
rack.multithread
/rack.multiprocess
/rack.run_once
. These variables generally come too late to be useful. (#1720, @ioquatix, @jeremyevans)) - Remove deprecated Rack::Request::SCHEME_WHITELIST. (@jeremyevans)
- Remove internal cookie deletion using pattern matching, there are very few practical cases where it would be useful and browsers handle it correctly without us doing anything special. (#1844, @ioquatix)
- Remove
rack.version
as it comes too late to be useful. (#1938, @ioquatix) - Extract
rackup
command,Rack::Server
,Rack::Handler
,Rack::Lobster
and related code into a separate gem. (#1937, @ioquatix)
Added
Headers
added to support lower-case header keys. (@jeremyevans)- Rack::Utils#set_cookie_header now supports
escape_key: false
to avoid key escaping. (@jeremyevans) RewindableInput
supports size. (@ahorek)RewindableInput::Middleware
added for makingrack.input
rewindable. (@jeremyevans)- The RFC 7239 Forwarded header is now supported and considered by default when looking for information on forwarding, falling back to the X-Forwarded-* headers. Rack::Request.forwarded_priority accessor has been added for configuring the priority of which header to check. (#1423, @jeremyevans)
- Allow response headers to contain array of values. (#1598, @ioquatix)
- Support callable body for explicit streaming support and clarify streaming response body behaviour. (#1745, @ioquatix, #1748, @wjordan)
- Allow Rack::Builder#run to take a block instead of an argument. (#1942, @ioquatix)
- Add
rack.response_finished
toLint
. (#1802, @BlakeWilliams, #1952, @ioquatix) - The stream argument must implement
#<<
. (#1959, @ioquatix)
Changed
- BREAKING CHANGE: Require
status
to be an Integer. (#1662, @olleolleolle) - BREAKING CHANGE: Query parsing now treats parameters without
=
as having the empty string value instead of nil value, to conform to the URL spec. (#1696, @jeremyevans) - Relax validations around
Rack::Request#host
andRack::Request#hostname
. (#1606, @pvande) - Removed antiquated handlers: FCGI, LSWS, SCGI, Thin. (#1658, @ioquatix)
- Removed options from Rack::Builder.parse_file and Rack::Builder.load_file. (#1663, @ioquatix)
Rack::HTTP_VERSION
has been removed and theHTTP_VERSION
env setting is no longer set in the CGI and Webrick handlers. (#970, @jeremyevans)Rack::Request#[]
and#[]=
now warn even in non-verbose mode. (#1277, @jeremyevans)- Decrease default allowed parameter recursion level from 100 to 32. (#1640, @jeremyevans)
- Attempting to parse a multipart response with an empty body now raises Rack::Multipart::EmptyContentError. (#1603, @jeremyevans)
- Rack::Utils.secure_compare uses OpenSSL's faster implementation if available. (#1711, @bdewater)
Rack::Request#POST
now caches an empty hash if input content type is not parseable. (#749, @jeremyevans)- BREAKING CHANGE: Updated
trusted_proxy?
to match full <IP_ADDRESS>/8 network. (#1781, @snbloch) - Explicitly deprecate
Rack::File
which was an alias forFiles
. (#1811, @ioquatix). - Moved
Rack::Session
into separate gem. (#1805, @ioquatix) rackup -D
option to daemonizes no longer changes the working directory to the root. (#1813, @jeremyevans)- The
x-forwarded-proto
header is now considered before thex-forwarded-scheme
header for determining the forwarded protocol. Rack::Request.x_forwarded_proto_priority accessor has been added for configuring the priority of which header to check. (#1809, @jeremyevans) Rack::Request.forwarded_authority
(and methods that call it, such ashost
) now returns the last authority in the forwarded header, instead of the first, as earlier forwarded authorities can be forged by clients. This restores theRack
2.1 behavior. (#1829, @jeremyevans)- Use lower case cookie attributes when creating cookies, and fold cookie attributes to lower case when reading cookies (specifically impacting
secure
andhttponly
attributes). (#1849, @ioquatix) - The response array must now be mutable (non-frozen) so middleware can modify it without allocating a new Array,therefore reducing object allocations. (#1887, #1927, @amatsuda, @ioquatix)
rack.hijack?
(partial hijack) andrack.hijack
(full hijack) are now independently optional.rack.hijack_io
is no longer required/specified. (#1939, @ioquatix)- Allow calling close on
rack.input
. (#1956, @ioquatix)
Fixed
- Make Rack::MockResponse handle non-hash headers. (#1629, @jeremyevans)
- TempfileReaper now deletes temp files if application raises an exception. (#1679, @jeremyevans)
- Handle cookies with values that end in '=' (#1645, @lukaso)
- Make
NullLogger
respond to#fatal!
@jeremyevans) - Fix multipart filename generation for filenames that contain spaces. Encode spaces as "%20" instead of "+" which will be decoded properly by the multipart parser. (#1736, @muirdm)
Rack::Request#scheme
returnsws
orwss
when one of theX-Forwarded-Scheme
/X-Forwarded-Proto
headers is set tows
orwss
, respectively. (#1730, @erwanst)
[2.2.4] - 2022-06-30
- Better support for lower case headers in
ETag
middleware. (#1919, @ioquatix) - Use custom exception on params too deep error. (#1838, @simi)
[<IP_ADDRESS>] - 2022-05-27
- [CVE-2022-30123] Fix shell escaping issue in Common Logger
- [CVE-2022-30122] Restrict parsing of broken MIME attachments
[2.2.3] - 2020-06-15
Security
- [CVE-2020-8184] Do not allow percent-encoded cookie name to override existing cookie names. BREAKING CHANGE: Accessing cookie names that require URL encoding with decoded name no longer works. (@fletchto99)
[2.2.2] - 2020-02-11
Fixed
- Fix incorrect
Rack::Request#host
value. (#1591, @ioquatix) - Revert
Rack::Handler::Thin
implementation. (#1583, @jeremyevans) - Double assignment is still needed to prevent an "unused variable" warning. (#1589, @kamipo)
- Fix to handle same_site option for session pool. (#1587, @kamipo)
[2.2.1] - 2020-02-09
Fixed
[2.2.0] - 2020-02-08
SPEC Changes
rack.session
request environment entry must respond toto_hash
and return unfrozen Hash. (@jeremyevans)- Request environment cannot be frozen. (@jeremyevans)
- CGI values in the request environment with non-ASCII characters must use ASCII-8BIT encoding. (@jeremyevans)
- Improve SPEC/lint relating to SERVER_NAME, SERVER_PORT and HTTP_HOST. (#1561, @ioquatix)
Added
rackup
supports multiple-r
options and will require all arguments. (@jeremyevans)Server
supports an array of paths to require for the:require
option. (@khotta)Files
supports multipart range requests. (@fatkodima)Multipart::UploadedFile
supports an IO-like object instead of using the filesystem, using:filename
and:io
options. (@jeremyevans)Multipart::UploadedFile
supports keyword arguments:path
,:content_type
, and:binary
in addition to positional arguments. (@jeremyevans)Static
supports a:cascade
option for calling the app if there is no matching file. (@jeremyevans)Session::Abstract::SessionHash#dig
. (@jeremyevans)- Rack::Response.[] and Rack::MockResponse.[] for creating instances using status, headers, and body. (@ioquatix)
- Convenient cache and content type methods for
Response
. (#1555, @ioquatix)
Changed
- Rack::Request#params no longer rescues EOFError. (@jeremyevans)
Directory
uses a streaming approach, significantly improving time to first byte for large directories. (@jeremyevans)Directory
no longer includes a Parent directory link in the root directory index. (@jeremyevans)- Rack::QueryParser#parse_nested_query uses original backtrace when reraising exception with new class. (@jeremyevans)
ConditionalGet
follows RFC 7232 precedence if both If-None-Match and If-Modified-Since headers are provided. (@jeremyevans).ru
files supports thefrozen-string-literal
magic comment. (@eregon)- Rely on autoload to load constants instead of requiring internal files, make sure to require 'rack' and not just 'rack/...'. (@jeremyevans)
- BREAKING CHANGE:
Etag
will continue sending ETag even if the response should not be cached. Streaming no longer works without a workaround, see #1619. (@henm) Request#host_with_port
no longer includes a colon for a missing or empty port. (@AlexWayfer)- All handlers uses keywords arguments instead of an options hash argument. (@ioquatix)
Files
handling of range requests no longer return a body that supportsto_path
, to ensure range requests are handled correctly. (@jeremyevans)Multipart::Generator
only includesContent-Length
for files with paths, andContent-Disposition
filename
if theUploadedFile
instance has one. (@jeremyevans)Request#ssl?
is true for thewss
scheme (secure websockets). (@jeremyevans)Rack::HeaderHash
is memoized by default. (#1549, @ioquatix)Directory
allow directory traversal inside root directory. (#1417, @ThomasSevestre)- Sort encodings by server preference. (#1184, @ioquatix, @wjordan)
- Rework host/hostname/authority implementation in
Request
.#host
and#host_with_port
have been changed to correctly return IPv6 addresses formatted with square brackets, as defined by RFC3986. (#1561, @ioquatix) Builder
parsing options on first#\
line is deprecated. (#1574, @ioquatix)
Removed
Directory#path
as it was not used and always returned nil. (@jeremyevans)BodyProxy#each
as it was only needed to work around a bug in Ruby <1.9.3. (@jeremyevans)URLMap::INFINITY
andURLMap::NEGATIVE_INFINITY
, in favor ofFloat::INFINITY
. (@ch1c0t)- Deprecation of
Rack::File
. It will be deprecated again in rack 2.2 or 3.0. (@rafaelfranca) - Support for Ruby 2.2 as it is well past EOL. (@ioquatix)
- Remove
Rack::Files#response_body
as the implementation was broken. (#1153, @ioquatix) - Remove
SERVER_ADDR
which was never part of the original SPEC. (#1573, @ioquatix)
Fixed
Directory
correctly handles root paths containing glob metacharacters. (@jeremyevans)Cascade
uses a new response object for each call if initialized with no apps. (@jeremyevans)BodyProxy
correctly delegates keyword arguments to the body object on Ruby 2.7+. (@jeremyevans)BodyProxy#method
correctly handles methods delegated to the body object. (@jeremyevans)Request#host
andRequest#host_with_port
handle IPv6 addresses correctly. (@AlexWayfer)Lint
checks when response hijacking thatrack.hijack
is called with a valid object. (@jeremyevans)- Rack::Response#write correctly updates
Content-Length
if initialized with a body. (@jeremyevans) CommonLogger
includes Rack::SCRIPT_NAME when logging. (@Erol)- Rack::Utils.parse_nested_query correctly handles empty queries, using an empty instance of the params class instead of a hash. (@jeremyevans)
Directory
correctly escapes paths in links. (@yous)Request#delete_cookie
and relatedUtils
methods handle:domain
and:path
options in same call. (@jeremyevans)Request#delete_cookie
and relatedUtils
methods do an exact match on:domain
and:path
options. (@jeremyevans)Static
no longer adds headers when a gzipped file request has a 304 response. (@chooh)ContentLength
setsContent-Length
response header even for bodies not responding toto_ary
. (@jeremyevans)- Thin handler supports options passed directly to
Thin::Controllers::Controller
. (@jeremyevans) - WEBrick handler no longer ignores
:BindAddress
option. (@jeremyevans) ShowExceptions
handles invalid POST data. (@jeremyevans)- Basic authentication requires a password, even if the password is empty. (@jeremyevans)
Lint
checks response is array with 3 elements, per SPEC. (@jeremyevans)- Support for using
:SSLEnable
option when using WEBrick handler. (Gregor Melhorn) - Close response body after buffering it when buffering. (@ioquatix)
- Only accept
;
as delimiter when parsing cookies. (@mrageh) Utils::HeaderHash#clear
clears the name mapping as well. (@raxoft)- Support for passing
nil
Rack::Files.new, which notably fixes Rails' currentActiveStorage::FileServer
implementation. (@ioquatix)
Documentation
- CHANGELOG updates. (@aupajo)
- Added CONTRIBUTING. (@dblock)
[2.0.9] - 2020-02-08
- Handle case where session id key is requested but missing (@jeremyevans)
- Restore support for code relying on
SessionId#to_s
. (@jeremyevans) - Add support for
SameSite=None
cookie value. (@hennikul)
[2.1.2] - 2020-01-27
- Fix multipart parser for some files to prevent denial of service (@aiomaster)
- Fix Rack::Builder#use with keyword arguments (@kamipo)
- Skip deflating in
Deflater
if Content-Length is 0 (@jeremyevans) - Remove
SessionHash#transform_keys
, no longer needed (@pavel) - Add to_hash to wrap Hash and Session classes (@oleh-demyanyuk)
- Handle case where session id key is requested but missing (@jeremyevans)
[2.1.1] - 2020-01-12
- Remove
Rack::Chunked
fromRack::Server
default middleware. (#1475, @ioquatix) - Restore support for code relying on
SessionId#to_s
. (@jeremyevans)
[2.1.0] - 2020-01-10
Added
- Add support for
SameSite=None
cookie value. (@hennikul) - Add trailer headers. (@eileencodes)
- Add MIME Types for video streaming. (@styd)
- Add MIME Type for WASM. (@buildrtech)
- Add
Early Hints(103)
to status codes. (@egtra) - Add
Too Early(425)
to status codes. (@y-yagi) - Add
Bandwidth Limit Exceeded(509)
to status codes. (@CJKinni) - Add method for custom
ip_filter
. (@svcastaneda) - Add boot-time profiling capabilities to
rackup
. (@tenderlove) - Add multi mapping support for
X-Accel-Mappings
header. (@yoshuki) - Add
sync: false
option toDeflater
. (Eric Wong) - Add Rack::Builder#freeze_app to freeze application and all middleware instances. (@jeremyevans)
- Add API to extract cookies from
MockResponse
. (@petercline)
Changed
- Don't propagate nil values from middleware. (@ioquatix)
- Lazily initialize the response body and only buffer it if required. (@ioquatix)
- Fix deflater zlib buffer errors on empty body part. (@felixbuenemann)
- Set
X-Accel-Redirect
to percent-encoded path. (@diskkid) - Remove unnecessary buffer growing when parsing multipart. (@tainoe)
- Expand the root path in
Static
upon initialization. (@rosenfeld) - Make
ShowExceptions
work with binary data. (@axyjo) - Use buffer string when parsing multipart requests. (@janko-m)
- Support optional UTF-8 Byte Order Mark (BOM) in config.ru. (@mikegee)
- Handle
X-Forwarded-For
with optional port. (@dpritchett) - Use
Time#httpdate
format for Expires, as proposed by RFC 7231. (@nanaya) - Make Rack::Utils.status_code raise an error when the status symbol is invalid instead of
500
. (@adambutler) - Rename
Request::SCHEME_WHITELIST
to Rack::Request::ALLOWED_SCHEMES. - Make
Multipart::Parser.get_filename
accept files with+
in their name. (@lucaskanashiro) - Add Falcon to the default handler fallbacks. (@ioquatix)
- Update codebase to avoid string mutations in preparation for
frozen_string_literals
. (@pat) - Change
MockRequest#env_for
to rely on the input optionally responding to#size
instead of#length
. (@janko) - Rename
Rack::File
->Files
and add deprecation notice. (@postmodern) - Prefer Base64 “strict encoding” for Base64 cookies. (@ioquatix)
Removed
- BREAKING CHANGE: Remove
to_ary
from Response (@tenderlove) - Deprecate
Rack::Session::Memcache
in favor ofRack::Session::Dalli
from dalli gem (@fatkodima)
Fixed
- Eliminate warnings for Ruby 2.7. (@osamtimizer)
Documentation
- Update broken example in
Session::Abstract::ID
documentation. (tonytonyjan) - Add Padrino to the list of frameworks implementing
Rack
. (@wikimatze) - Remove Mongrel from the suggested server options in the help output. (@tricknotes)
- Replace
HISTORY.md
andNEWS.md
withCHANGELOG.md
. (@twitnithegirl) - CHANGELOG updates. (@drenmi, @p8)
[2.0.8] - 2019-12-08
Security
- [CVE-2019-16782] Prevent timing attacks targeted at session ID lookup. BREAKING CHANGE: Session ID is now a SessionId instance instead of a String. (@tenderlove, @rafaelfranca)
[1.6.12] - 2019-12-08
Security
- [CVE-2019-16782] Prevent timing attacks targeted at session ID lookup. BREAKING CHANGE: Session ID is now a SessionId instance instead of a String. (@tenderlove, @rafaelfranca)
[2.0.7] - 2019-04-02
Fixed
- Remove calls to
#eof?
onRack
input inMultipart::Parser
, as this breaks the specification. (@matthewd) - Preserve forwarded IP addresses for trusted proxy chains. (@SamSaffron)
[2.0.6] - 2018-11-05
Fixed
- [CVE-2018-16470] Reduce buffer size of
Multipart::Parser
to avoid pathological parsing. (@tenderlove) - Fix a call to a non-existing method
#accepts_html
in theShowExceptions
middleware. (@tomelm) - [CVE-2018-16471] Whitelist HTTP and HTTPS schemes in
Request#scheme
to prevent a possible XSS attack. (@PatrickTulskie)
[2.0.5] - 2018-04-23
Fixed
- Record errors originating from invalid UTF8 in
MethodOverride
middleware instead of breaking. (@mclark)
[2.0.4] - 2018-01-31
Changed
- Ensure the
Lock
middleware passes the originalenv
object. (@lugray) - Improve performance of
Multipart::Parser
when uploading large files. (@tompng) - Increase buffer size in
Multipart::Parser
for better performance. (@jkowens) - Reduce memory usage of
Multipart::Parser
when uploading large files. (@tompng) - Replace ConcurrentRuby dependency with native
Queue
. (@devmchakan)
Fixed
Documentation
- Update homepage links to use SSL. (@hugoabonizio)
[2.0.3] - 2017-05-15
Changed
- Ensure
env
values are ASCII 8-bit encoded. (@eileencodes)
Fixed
- Prevent exceptions when a class with mixins inherits from
Session::Abstract::ID
. (@jnraine)
[2.0.2] - 2017-05-08
Added
- Allow
Session::Abstract::SessionHash#fetch
to accept a block with a default value. (@yannvanhalewyn) - Add Rack::Builder#freeze_app to freeze application and all middleware. (@jeremyevans)
Changed
- Freeze default session options to avoid accidental mutation. (@kirs)
- Detect partial hijack without hash headers. (@devmchakan)
- Update tests to use MiniTest 6 matchers. (@tonytonyjan)
- Allow 205 Reset Content responses to set a Content-Length, as RFC 7231 proposes setting this to 0. (@devmchakan)
Fixed
- Handle
NULL
bytes in multipart filenames. (@casperisfine) - Remove warnings due to miscapitalized global. (@ioquatix)
- Prevent exceptions caused by a race condition on multi-threaded servers. (@sophiedeziel)
- Add RDoc as an explicit dependency for
doc
group. (@tonytonyjan) - Record errors originating from
Multipart::Parser
in theMethodOverride
middleware instead of letting them bubble up. (@carlzulauf) - Remove remaining use of removed
Utils#bytesize
method from theFile
middleware. (@brauliomartinezlm)
Removed
- Remove
deflate
encoding support to reduce caching overhead. (@devmchakan)
Documentation
- Update broken example in
Deflater
documentation. (@mwpastore)
[2.0.1] - 2016-06-30
Changed
- Remove JSON as an explicit dependency. (@mperham)
History/News Archive
Items below this line are from the previously maintained HISTORY.md and NEWS.md files.
[2.0.0.rc1] 2016-05-06
- Rack::Session::Abstract::ID is deprecated. Please change to use Rack::Session::Abstract::Persisted
[2.0.0.alpha] 2015-12-04
- First-party "SameSite" cookies. Browsers omit SameSite cookies from third-party requests, closing the door on many CSRF attacks.
- Pass
same_site: true
(or:strict
) to enable: response.set_cookie 'foo', value: 'bar', same_site: true orsame_site: :lax
to use Lax enforcement: response.set_cookie 'foo', value: 'bar', same_site::lax
- Based on version 7 of the Same-site Cookies internet draft: https://tools.ietf.org/html/draft-west-first-party-cookies-07
- Thanks to Ben Toews (@mastahyeti) and Bob Long (@bobjflong) for updating to drafts 5 and 7.
- Add
Events
middleware for adding event based middleware: middleware that does not care about the response body, but only cares about doing work at particular points in the request / response lifecycle. - Add
Rack::Request#authority
to calculate the authority under which the response is being made (this will be handy for h2 pushes). - Add Rack::Response::Helpers#cache_control and
cache_control=
. Use this for setting cache control headers on your response objects. - Add Rack::Response::Helpers#etag and
etag=
. Use this for setting etag values on the response. - Introduce Rack::Response::Helpers#add_header to add a value to a multi-valued response header. Implemented in terms of other
Response#*_header
methods, so it's available to any response-like class that includes theHelpers
module. - Add
Rack::Request#add_header
to match. Rack::Session::Abstract::ID
IS DEPRECATED. Please switch toRack::Session::Abstract::Persisted
.Rack::Session::Abstract::Persisted
uses a request object rather than theenv
hash.- Pull
ENV
access inside the request object in to a module. This will help with legacy Request objects that are ENV based but don't want to inherit fromRequest
- Move most methods on the
Request
to a moduleRequest::Helpers
and use public API to get values from the request object. This enables users to mixRequest::Helpers
in to their own objects so they can implement(get|set|fetch|each)_header
as they see fit (for example a proxy object). - Files and directories with + in the name are served correctly. Rather than unescaping paths like a form, we unescape with a URI parser using Rack::Utils.unescape_path. Fixes #265
- Tempfiles are automatically closed in the case that there were too many posted.
- Added methods for manipulating response headers that don't assume
they're stored as a Hash. Response-like classes may include the
Rack::Response::Helpers module if they define these methods:
- Rack::Response#has_header?
- Rack::Response#get_header
- Rack::Response#set_header
- Rack::Response#delete_header
- Introduce Util.get_byte_ranges that will parse the value of the HTTP_RANGE string passed to it without depending on the
env
hash.byte_ranges
is deprecated in favor of this method. - Change Session internals to use Request objects for looking up session information. This allows us to only allocate one request object when dealing with session objects (rather than doing it every time we need to manipulate cookies, etc).
- Add
Rack::Request#initialize_copy
so that the env is duped when the request gets duped. - Added methods for manipulating request specific data. This includes
data set as CGI parameters, and just any arbitrary data the user wants
to associate with a particular request. New methods:
- Rack::Request#has_header?
- Rack::Request#get_header
- Rack::Request#fetch_header
- Rack::Request#each_header
- Rack::Request#set_header
- Rack::Request#delete_header
- lib/rack/utils.rb: add a method for constructing "delete" cookie headers. This allows us to construct cookie headers without depending on the side effects of mutating a hash.
- Prevent extremely deep parameters from being parsed. CVE-2015-3225
[1.6.1] 2015-05-06
- Fix CVE-2014-9490, denial of service attack in OkJson
- Use a monotonic time for Rack::Runtime, if available
- RACK_MULTIPART_LIMIT changed to RACK_MULTIPART_PART_LIMIT (RACK_MULTIPART_LIMIT is deprecated and will be removed in 1.7.0)
[1.5.3] 2015-05-06
- Fix CVE-2014-9490, denial of service attack in OkJson
- Backport bug fixes to 1.5 series
[1.6.0] 2014-01-18
- Response#unauthorized? helper
- Deflater now accepts an options hash to control compression on a per-request level
- Builder#warmup method for app preloading
- Request#accept_language method to extract HTTP_ACCEPT_LANGUAGE
- Add quiet mode of rack server, rackup --quiet
- Update HTTP Status Codes to RFC 7231
- Less strict header name validation according to RFC 2616
- SPEC updated to specify headers conform to RFC7230 specification
- Etag correctly marks etags as weak
- Request#port supports multiple x-http-forwarded-proto values
- Utils#multipart_part_limit configures the maximum number of parts a request can contain
- Default host to localhost when in development mode
- Various bugfixes and performance improvements
[1.5.2] 2013-02-07
- Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
- Fix CVE-2013-0262, symlink path traversal in Rack::File
- Add various methods to Session for enhanced Rails compatibility
- Request#trusted_proxy? now only matches whole strings
- Add JSON cookie coder, to be default in Rack 1.6+ due to security concerns
- URLMap host matching in environments that don't set the Host header fixed
- Fix a race condition that could result in overwritten pidfiles
- Various documentation additions
[1.4.5] 2013-02-07
- Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
- Fix CVE-2013-0262, symlink path traversal in Rack::File
[1.1.6, 1.2.8, 1.3.10] 2013-02-07
- Fix CVE-2013-0263, timing attack against Rack::Session::Cookie
[1.5.1] 2013-01-28
- Rack::Lint check_hijack now conforms to other parts of SPEC
- Added hash-like methods to Abstract::ID::SessionHash for compatibility
- Various documentation corrections
[1.5.0] 2013-01-21
- Introduced hijack SPEC, for before-response and after-response hijacking
- SessionHash is no longer a Hash subclass
- Rack::File cache_control parameter is removed, in place of headers options
- Rack::Auth::AbstractRequest#scheme now yields strings, not symbols
- Rack::Utils cookie functions now format expires in RFC 2822 format
- Rack::File now has a default mime type
- rackup -b 'run Rack::Files.new(".")', option provides command line configs
- Rack::Deflater will no longer double encode bodies
- Rack::Mime#match? provides convenience for Accept header matching
- Rack::Utils#q_values provides splitting for Accept headers
- Rack::Utils#best_q_match provides a helper for Accept headers
- Rack::Handler.pick provides convenience for finding available servers
- Puma added to the list of default servers (preferred over Webrick)
- Various middleware now correctly close body when replacing it
- Rack::Request#params is no longer persistent with only GET params
- Rack::Request#update_param and #delete_param provide persistent operations
- Rack::Request#trusted_proxy? now returns true for local unix sockets
- Rack::Response no longer forces Content-Types
- Rack::Sendfile provides local mapping configuration options
- Rack::Utils#rfc2109 provides old netscape style time output
- Updated HTTP status codes
- Ruby 1.8.6 likely no longer passes tests, and is no longer fully supported
[1.4.4, 1.3.9, 1.2.7, 1.1.5] 2013-01-13
- [SEC] Rack::Auth::AbstractRequest no longer symbolizes arbitrary strings
- Fixed erroneous test case in the 1.3.x series
[1.4.3] 2013-01-07
- Security: Prevent unbounded reads in large multipart boundaries
[1.3.8] 2013-01-07
- Security: Prevent unbounded reads in large multipart boundaries
[1.4.2] 2013-01-06
- Add warnings when users do not provide a session secret
- Fix parsing performance for unquoted filenames
- Updated URI backports
- Fix URI backport version matching, and silence constant warnings
- Correct parameter parsing with empty values
- Correct rackup '-I' flag, to allow multiple uses
- Correct rackup pidfile handling
- Report rackup line numbers correctly
- Fix request loops caused by non-stale nonces with time limits
- Fix reloader on Windows
- Prevent infinite recursions from Response#to_ary
- Various middleware better conforms to the body close specification
- Updated language for the body close specification
- Additional notes regarding ECMA escape compatibility issues
- Fix the parsing of multiple ranges in range headers
- Prevent errors from empty parameter keys
- Added PATCH verb to Rack::Request
- Various documentation updates
- Fix session merge semantics (fixes rack-test)
- Rack::Static :index can now handle multiple directories
- All tests now utilize Rack::Lint (special thanks to Lars Gierth)
- Rack::File cache_control parameter is now deprecated, and removed by 1.5
- Correct Rack::Directory script name escaping
- Rack::Static supports header rules for sophisticated configurations
- Multipart parsing now works without a Content-Length header
- New logos courtesy of Zachary Scott!
- Rack::BodyProxy now explicitly defines #each, useful for C extensions
- Cookies that are not URI escaped no longer cause exceptions
[1.3.7] 2013-01-06
- Add warnings when users do not provide a session secret
- Fix parsing performance for unquoted filenames
- Updated URI backports
- Fix URI backport version matching, and silence constant warnings
- Correct parameter parsing with empty values
- Correct rackup '-I' flag, to allow multiple uses
- Correct rackup pidfile handling
- Report rackup line numbers correctly
- Fix request loops caused by non-stale nonces with time limits
- Fix reloader on Windows
- Prevent infinite recursions from Response#to_ary
- Various middleware better conforms to the body close specification
- Updated language for the body close specification
- Additional notes regarding ECMA escape compatibility issues
- Fix the parsing of multiple ranges in range headers
[1.2.6] 2013-01-06
- Add warnings when users do not provide a session secret
- Fix parsing performance for unquoted filenames
[1.1.4] 2013-01-06
- Add warnings when users do not provide a session secret
[1.4.1] 2012-01-22
- Alter the keyspace limit calculations to reduce issues with nested params
- Add a workaround for multipart parsing where files contain unescaped "%"
- Added Rack::Response::Helpers#method_not_allowed? (code 405)
- Rack::File now returns 404 for illegal directory traversals
- Rack::File now returns 405 for illegal methods (non HEAD/GET)
- Rack::Cascade now catches 405 by default, as well as 404
- Cookies missing '--' no longer cause an exception to be raised
- Various style changes and documentation spelling errors
- Rack::BodyProxy always ensures to execute its block
- Additional test coverage around cookies and secrets
- Rack::Session::Cookie can now be supplied either secret or old_secret
- Tests are no longer dependent on set order
- Rack::Static no longer defaults to serving index files
- Rack.release was fixed
[1.4.0] 2011-12-28
- Ruby 1.8.6 support has officially been dropped. Not all tests pass.
- Raise sane error messages for broken config.ru
- Allow combining run and map in a config.ru
- Rack::ContentType will not set Content-Type for responses without a body
- Status code 205 does not send a response body
- Rack::Response::Helpers will not rely on instance variables
- Rack::Utils.build_query no longer outputs '=' for nil query values
- Various mime types added
- Rack::MockRequest now supports HEAD
- Rack::Directory now supports files that contain RFC3986 reserved chars
- Rack::File now only supports GET and HEAD requests
- Rack::Server#start now passes the block to Rack::Handler::
#run - Rack::Static now supports an index option
- Added the Teapot status code
- rackup now defaults to Thin instead of Mongrel (if installed)
- Support added for HTTP_X_FORWARDED_SCHEME
- Numerous bug fixes, including many fixes for new and alternate rubies
[1.1.3] 2011-12-28
- Security fix. http://www.ocert.org/advisories/ocert-2011-003.html Further information here: http://jruby.org/2011/12/27/jruby-1-6-5-1
[1.3.5] 2011-10-17
- Fix annoying warnings caused by the backport in 1.3.4
[1.3.4] 2011-10-01
- Backport security fix from 1.9.3, also fixes some roundtrip issues in URI
- Small documentation update
- Fix an issue where BodyProxy could cause an infinite recursion
- Add some supporting files for travis-ci
[1.2.4] 2011-09-16
- Fix a bug with MRI regex engine to prevent XSS by malformed unicode
[1.3.3] 2011-09-16
- Fix bug with broken query parameters in Rack::ShowExceptions
- Rack::Request#cookies no longer swallows exceptions on broken input
- Prevents XSS attacks enabled by bug in Ruby 1.8's regexp engine
- Rack::ConditionalGet handles broken If-Modified-Since helpers
[1.3.2] 2011-07-16
- Fix for Rails and rack-test, Rack::Utils#escape calls to_s
[1.3.1] 2011-07-13
- Fix 1.9.1 support
- Fix JRuby support
- Properly handle $KCODE in Rack::Utils.escape
- Make method_missing/respond_to behavior consistent for Rack::Lock, Rack::Auth::Digest::Request and Rack::Multipart::UploadedFile
- Reenable passing rack.session to session middleware
- Rack::CommonLogger handles streaming responses correctly
- Rack::MockResponse calls close on the body object
- Fix a DOS vector from MRI stdlib backport
[1.2.3] 2011-05-22
- Pulled in relevant bug fixes from 1.3
- Fixed 1.8.6 support
[1.3.0] 2011-05-22
- Various performance optimizations
- Various multipart fixes
- Various multipart refactors
- Infinite loop fix for multipart
- Test coverage for Rack::Server returns
- Allow files with '..', but not path components that are '..'
- rackup accepts handler-specific options on the command line
- Request#params no longer merges POST into GET (but returns the same)
- Use URI.encode_www_form_component instead. Use core methods for escaping.
- Allow multi-line comments in the config file
- Bug L#94 reported by Nikolai Lugovoi, query parameter unescaping.
- Rack::Response now deletes Content-Length when appropriate
- Rack::Deflater now supports streaming
- Improved Rack::Handler loading and searching
- Support for the PATCH verb
- env['rack.session.options'] now contains session options
- Cookies respect renew
- Session middleware uses SecureRandom.hex
[1.2.2, 1.1.2] 2011-03-13
- Security fix in Rack::Auth::Digest::MD5: when authenticator returned nil, permission was granted on empty password.
[1.2.1] 2010-06-15
- Make CGI handler rewindable
- Rename spec/ to test/ to not conflict with SPEC on lesser operating systems
[1.2.0] 2010-06-13
- Removed Camping adapter: Camping 2.0 supports Rack as-is
- Removed parsing of quoted values
- Add Request.trace? and Request.options?
- Add mime-type for .webm and .htc
- Fix HTTP_X_FORWARDED_FOR
- Various multipart fixes
- Switch test suite to bacon
[1.1.0] 2010-01-03
- Moved Auth::OpenID to rack-contrib.
- SPEC change that relaxes Lint slightly to allow subclasses of the required types
- SPEC change to document rack.input binary mode in greater detail
- SPEC define optional rack.logger specification
- File servers support X-Cascade header
- Imported Config middleware
- Imported ETag middleware
- Imported Runtime middleware
- Imported Sendfile middleware
- New Logger and NullLogger middlewares
- Added mime type for .ogv and .manifest.
- Don't squeeze PATH_INFO slashes
- Use Content-Type to determine POST params parsing
- Update Rack::Utils::HTTP_STATUS_CODES hash
- Add status code lookup utility
- Response should call #to_i on the status
- Add Request#user_agent
- Request#host knows about forwarded host
- Return an empty string for Request#host if HTTP_HOST and SERVER_NAME are both missing
- Allow MockRequest to accept hash params
- Optimizations to HeaderHash
- Refactored rackup into Rack::Server
- Added Utils.build_nested_query to complement Utils.parse_nested_query
- Added Utils::Multipart.build_multipart to complement Utils::Multipart.parse_multipart
- Extracted set and delete cookie helpers into Utils so they can be used outside Response
- Extract parse_query and parse_multipart in Request so subclasses can change their behavior
- Enforce binary encoding in RewindableInput
- Set correct external_encoding for handlers that don't use RewindableInput
[1.0.1] 2009-10-18
- Bump remainder of rack.versions.
- Support the pure Ruby FCGI implementation.
- Fix for form names containing "=": split first then unescape components
- Fixes the handling of the filename parameter with semicolons in names.
- Add anchor to nested params parsing regexp to prevent stack overflows
- Use more compatible gzip write api instead of "<<".
- Make sure that Reloader doesn't break when executed via ruby -e
- Make sure WEBrick respects the :Host option
- Many Ruby 1.9 fixes.
[1.0.0] 2009-04-25
- SPEC change: Rack::VERSION has been pushed to [1,0].
- SPEC change: header values must be Strings now, split on "\n".
- SPEC change: Content-Length can be missing, in this case chunked transfer encoding is used.
- SPEC change: rack.input must be rewindable and support reading into a buffer, wrap with Rack::RewindableInput if it isn't.
- SPEC change: rack.session is now specified.
- SPEC change: Bodies can now additionally respond to #to_path with a filename to be served.
- NOTE: String bodies break in 1.9, use an Array consisting of a single String instead.
- New middleware Rack::Lock.
- New middleware Rack::ContentType.
- Rack::Reloader has been rewritten.
- Major update to Rack::Auth::OpenID.
- Support for nested parameter parsing in Rack::Response.
- Support for redirects in Rack::Response.
- HttpOnly cookie support in Rack::Response.
- The Rakefile has been rewritten.
- Many bugfixes and small improvements.
[0.9.1] 2009-01-09
- Fix directory traversal exploits in Rack::File and Rack::Directory.
[0.9] 2009-01-06
- Rack is now managed by the Rack Core Team.
- Rack::Lint is stricter and follows the HTTP RFCs more closely.
- Added ConditionalGet middleware.
- Added ContentLength middleware.
- Added Deflater middleware.
- Added Head middleware.
- Added MethodOverride middleware.
- Rack::Mime now provides popular MIME-types and their extension.
- Mongrel Header now streams.
- Added Thin handler.
- Official support for swiftiplied Mongrel.
- Secure cookies.
- Made HeaderHash case-preserving.
- Many bugfixes and small improvements.
[0.4] 2008-08-21
- New middleware, Rack::Deflater, by Christoffer Sawicki.
- OpenID authentication now needs ruby-openid 2.
- New Memcache sessions, by blink.
- Explicit EventedMongrel handler, by Joshua Peek<EMAIL_ADDRESS>- Rack::Reloader is not loaded in rackup development mode.
- rackup can daemonize with -D.
- Many bugfixes, especially for pool sessions, URLMap, thread safety and tempfile handling.
- Improved tests.
- Rack moved to Git.
[0.3] 2008-02-26
- LiteSpeed handler, by Adrian Madrid.
- SCGI handler, by Jeremy Evans.
- Pool sessions, by blink.
- OpenID authentication, by blink.
- :Port and :File options for opening FastCGI sockets, by blink.
- Last-Modified HTTP header for Rack::File, by blink.
- Rack::Builder#use now accepts blocks, by Corey Jewett. (See example/protectedlobster.ru)
- HTTP status 201 can contain a Content-Type and a body now.
- Many bugfixes, especially related to Cookie handling.
[0.2] 2007-05-16
- HTTP Basic authentication.
- Cookie Sessions.
- Static file handler.
- Improved Rack::Request.
- Improved Rack::Response.
- Added Rack::ShowStatus, for better default error messages.
- Bug fixes in the Camping adapter.
- Removed Rails adapter, was too alpha.


{% include 'base.html' %} {% block container %}
Your email is not allowed to access this application. You can try logging in using another one.
Try again


{% extends 'base.html' %} {% load i18n widget_tweaks %} {% block main_content %}
You've added your first chore. To add more and manage your chores, just visit 'Chores' in the navigation menu.
Once you've added all your workers and chores, head over to 'Assignments' to see who does what when.


WITNESS LIST Finance Committee March 30, 2004 -10:30A Endowment Fund Review ON: Aldridge, Philip Interim Vice Chancellor (University of Texas System), Austin, TX Anderson, David Lawyer (Texas Education Agency), Austin, TX Ballard, Paul CEO (Texas Treasury Safekeeping Trust Company), Austin, TX Boldt, Bob L. President and CIO (The University of Texas Investment Company), Austin, TX Burbach, Edward Deputy Attorney General for Litigation (Office of the Attorney General), Austin, TX Cocanougher, Benton Interim Chancellor (Texas A&M University System), College Station, TX D'Souza, Anita General Counsel (Legislative Budget Board), Austin, TX Kale, Tom D. Vice Chancellor for Business Services (Texas A&M University System), College Station, TX Parker III, G.D. Associate Executive Vice President (Texas A&M University), College Station, TX Patterson, Jerry Land Commissioner (General Land Office), Austin, TX Prior, David Executive Vice President and Provost (Texas A&M University System), College Station, TX Shaunessy, Linda Assistant Attorney General (Office of the Attorney General), Austin, TX Timmins, Holland Chief Investment Officer (Texas Education Agency), Austin, TX Veintemillas, Carlos Portfolio Manager (Permanent School Fund), Austin, TX Williams, Dan Executive Vice President and CFO (Prairie View A&M University), Prairie View, TX Yudof, Mark Chancellor (University of Texas System), Austin, TX Rainy Day Fund ON: Le Bas, James Revenue Estimator (Comptroller's Office), Austin, TX Pulver, Wayne (Legislative Budget Board), Austin, TX


This page includes three examples of media elements with fallback content:
An HTML <audio> element, with fallback HTML content nested inside it.
An HTML <video> element, with fallback HTML content nested inside it.
Another HTML <video> element, with no fallback content. In this example, the fallback content is provided by Able Player.
If the media has a **poster** attribute, the image identified in the poster is displayed, but is slightly transparent in order
to communicate that something isn't quite right.
To test the fallback in a modern browser, add the data-test-fallback attribute to the <audio> or <video> element.


PANGO\-QUERYMODULES
Section: [FIXME: manual] (1)Updated: 12/14/2009
Index Return to Main Contents
NAME
pango-querymodules - Module registration utilitySYNOPSIS
- pango-querymodules [module...]
DESCRIPTION
pango-querymodules
If called without arguments, it looks for modules in the Pango module path.
If called with arguments, it looks for the specified modules. The arguments may be absolute or relative paths.
ENVIRONMENT
The Pango module path is specified by the key Pango/ModulesPath in the Pango config database, which is read from sysconfdir/pango/pangorc, ~/.pangorc and the file specified in the environment variable PANGO_RC_FILE.
BUGS
None known yet.
Index
This document was created by man2html, using the manual pages.
Time: 05:29:07 GMT, December 24, 2015


DRACULA 2000 A film review by James Brundage Copyright 2000 filmcritic.com filmcritic.com
Well, it's the holiday season and what better way to celebrate than by sucking everyone dry? No... it's not your neighborhood Christmas Key Party, it's Dracula 2000, a gift to all you horror fans for Christmas.
And it's got all of those earmarks of just about every Dracula, a director no one has heard of (Craven just bankrolled it), a series of barely recognizable actors, and a feeling of having been shelved for about four years… oh yeah, and a bunch of religious undertones so the crew can work through their theological schizophrenia a la Anne Rice.
The film opens in 1892, where we see a ship with all hands dead bound for London and with Aramaic written on the sails.  Even after seeing fanged skull upon fanged skull and losing two men to booby traps, they decide to take the silver coffin they find out with them and, after good old Vlad the Impaler (Gerard Butler) awakens and vampifies everyone, we wind up in New Orleans.
Of course it's Mardi Gras and ultra-Catholic Goth girl (Justine Waddell) who works at the Virgin Megastore (Can you say product placement?) finds herself the object of Drac's affection. The original vampire hunter (Christopher Plummer) and his assistant (Jonny Lee Miller) hunt Drac, and the assistant is falling for Drac's girl. Needless to say, Vlad ain't happy.
Unlike most horror flicks, which are content at being a splatterfest and accepting of their brainlessness, Dracula 2000 opts to be a Stigmata/lesbian-vampire-flick hybrid which raises more pitiful religious questions than it gives in entertainment value. Although it's set to a metal soundtrack so commercial salespeople hawk it at the door, even half of the horror fans in my audience went away pissed. I probably don't need to tell you at this point, the movie isn't even worth the time in line for popcorn, let alone in the theatre.
With Dracula calling a Goth music video absolutely brilliant and the fact that half of the film either features a Virgin Megastore logo or takes place in the Virgin Megastore, it's pretty clear that Dracula 2000 is a bit more advertisement than art.  The one thing Dracula 2000 does have is a monopoly on big-screen bloodsuckers for the time being…. But don't despair, horror fans: January is only a few days away, and soon you'll have all the recycled horror you can stomach.

The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This relentless disease has changed our way of life, coming with limitations and many confirmed cases. The purpose of this application is to provide you with real data about Covid-19 cases


Wampler goes huge on modulation effects with its new user-friendly Terraform pedal
by Rob LaingWampler goes huge on modulation effects with its new user-friendly Terraform pedal
Brian Wampler and his team don't do anything by halves when it comes to effects, and so it looks with the company's new Terraform stompbox – packed with every modulation you should need and five controls to shape them.
The full effect list is as follows:
Comprehensive indeed – as is Brian Wampler's demo video above. Each has been custom designed by the Wampler team with five parameters to dial in your settings and eight presets to store your favourites. There's tap tempo for keeping in sync with your songs too for effects like tremolo.
Multiple signal options also allow you to optimise your routing for each effect. These include true stereo, mono with intelligent touring allowing your chosen effect to be placed pre- or post-gain.
The Terraform retails for £299.99 / $299.99 and you can find out more from Wampler.


How you can help
There are a whole bundle of different tasks that people can help out on, from the very small (such as noticing and pointing out a problem with a transcription of a particular mission) up to the fairly large (transcribing an entire mission). Along the way there are jobs involving writing new material (biographies, descriptions of key moments and phases, and so on), selecting images for use in missions (and possibly cropping or preparing them in Photoshop), and if you're a programmer you can get hold of the source code behind the site, and help us out in developing it further.
In general, the first step in getting involved is simply to tell us you're around and interested. Drop an email to the<EMAIL_ADDRESS>mailing list, and ask any questions you need to get started. If you use IRC, we tend to hang out on #spacelog, which can be more useful if you need to ask a number of related questions. In the meantime, hopefully the information on this page will be a helpful starting point — but if not, please point out how we can make things clearer and easier to get involved.
Pointing out mistakes
For NASA missions, the transcripts we work from were prepared in the 60s and 70s; from there, they've been scanned, converted to text, and then cleaned up by Spacelog volunteers. At each step in the process, small errors may have crept in, so if you notice anything that's wrong, and particularly if you notice a difference between the Spacelog transcripts and the original transcripts (linked from each page of a mission), just drop us a line at the email address above and we'll look into it. It helps a lot if you can supply not only the line (either a link, or by the timestamp displayed at the start, the GET) but also what it should be.
Transcribing a mission
From the smallest task to one of the biggest, transcribing a mission from scratch is a much more intensive job than correcting errors in our existing missions. However it is still non-technical, although a reasonable grasp of English and some understanding of the kind of terminology of space flight can help a lot!
The first thing to do is to to pick a mission (see our mission roster for what's already been claimed, or talk to us if you have no preference), and download the "TEC" (air-to-ground) transcript for the relevant mission from NASA. Then you need to grab the text of that; either open up the PDF and select all and copy out into a text editor or Word or something, or if you have it use something like pdftotext (on Debian/Ubuntu it's part of the xpdf-utils package) to pull the text out. (pdftotext generally does a better job than copying out of a PDF viewer, so if you don't have access to it, let us know and we can run it for you.)
Then you have to "clean" it; the text version of the PDF was created automatically by a computer, so it has some errors, so you need to go through the text version looking for those errors, and checking against the PDF to fix problems. (You can skip the first few pages, which are boilerplate we'll convert into things like the glossary later.) Log lines (a timestamp, speaker and some text) should look like this:
00 00 09 32 LMP Charlie, lots of stuff out the window in staging. We're catching up and passing it now.
Time stamps are days hours minutes seconds, then speakers are all caps abbreviations like "LMP" for Lunar Module Pilot, "CC" for the Capsule Communicator on the ground, and so on. The text can be on more than one line, as demonstrated above.
Things other than log lines are important as well. There are a few of these, and they should all end up indented by (at least) one tab:
Tape 1/6 Page 6
these come at the top of every page. They're important because they help us link passages in the transcript back to the original PDF pages.
CYI (REV 1)
these indicate transitions between different monitoring stations on the ground. They aren't hugely important, but they make life a bit easier for us later when we're trying to identify the individual people on the ground who are speaking.
END OF TAPE
marks the end of a tape, and
APOLLO 10 AIR-TO-GROUND VOICE TRANSCRIPTION
(or similar) marks the beginning of a new tape.
For some missions you'll also see something like (GOSS NET 1) at the start of every page. It's fine to delete those lines (which usually get garbled anyway); they're an indication of the radio network used (which was the same throughout).
If possible, it's helpful to leave "- -" at the end of the line as is, rather than "correct" it to a single dash, or "--" or something. The website itself will display this nicely, and we prefer not to change the intent of the original transcripts where possible.
If you are a little bit techie, there are various tools in the checkout that can help identify problems (particularly helpful once you think you've caught most of them, to help narrow the search for remaining issues that prevent us from loading the mission into the site), but if you're not comfortable with that then we can run them for you easily enough. Then once the transcription has been cleaned up, there are a bunch of other things that need doing — selecting and/or creating images, writing little biographies of the people involved, that kind of thing. We can of course help with that as well.


Add List
Logout
{{username}}
Lists
{{list.title}}
{{list.description}}
EDIT
DELETE
×
Close
Update Auction
Title:
Description:
Are you sure you want to delete this list?


The WL800 uses a four-stage reverse osmosis process to produce the best quality drinking water. It includes a sediment filter, pre carbon filter, reverse osmosis membrane and a post carbon filter. These filters remove impurities and improve taste to give you the best water possible.
Re-circulating UV system sanitizes the water by reducing bacterial growth giving a reassurance of fresh clean drinking water.
Office H2O coolers have been shown to reduce carbon footprint by up to 55% compared to bottled water coolers. Bottleless water coolers reduce plastic bottle contribution to landfills.


WeasyPrint Performance Report
Odyssey
Time & Memory
Memory
Time
Size
HTML5
Time & Memory
Memory
Time
Size
Documentation
Time & Memory
Memory
Time
Size
Large
Time & Memory
Memory
Time
Size
JSON
Time & Memory
Memory
Time
Size
Raw JSON
Time & Memory
Memory
Time
Size
Columns
Time & Memory
Memory
Time
Size


SUMMARY
STAGE 0: concepts
WWW:
Invented in 1990s it conects about 30 billion people.
A web page is a text doc written in HTML language that a browser can read.
HTML:
HTML are made of:
* text content (what you see)
* markups (what it looks like)
* references to other docs (images, videos, etc)
* links to other pages: example
COMPUTERS ARE STUPID:
This means that precission is needed in the HTML text so it can be understood by the computer.
INLINE vs BLOCK ELEMENTS
Block elements go in a invisible box.


| |
s behaviour, in order to optimize either speed, memory, compression or quality, depending wholly on what the user desires.
| | ILvoid ilHint( ILenum Target, ILenum Mode );
|
Parameters| | - Target
- An enum indicating what behaviour of the library is to be controlled.
- Mode
- The desired behaviour.
|
Targets
Modes| | - IL_DONT_CARE
- The client does not have a preference.
- IL_FASTEST
- Makes the target use a faster but more memory-intensive algorithm.
- IL_LESS_MEM
- Makes the target use less memory but a potentially slower algorithm.
- IL_NO_COMPRESSION
- Specifies that OpenIL should never use compression when saving.
- IL_USE_COMPRESSION
- Specifies that OpenIL should use compression when saving, if possible.
|
Errors
See Also
|


Chief Investigator Johnny:
Hey hey, tough guy! You made it! Seems like you haven't met Tanta Seer Ugoros yet. Good luck when you do, haha!


EPIC - Encouraging Program Involvement around Campus
Search for events, or sign in to set your preferences!
Sign In
Submit
Sign Up
Create Account
Are you an event provider?
Cancel
Submit
Hello
!
Create Event
My Account
Sign Out
Create Event
Recurring?
On Campus?
Cancel
Submit
Event Filters


How do lockdowns around the world affect mobility?
Graph one will allow you to bring up any country with any form of transportation
Graph two will compare two or more countries against each other
Graph three will be a bar graph that will compare the percent change amongst countries at a given time


Campaign Data
Events
Injection Targets
Output File: {{ campaign.output_file }}
Log File: {{ log_file }}
DUT Output
{{ campaign.dut_output }}
AUX Output
{{ campaign.aux_output }}
Debugger Output
{{ campaign.debugger_output }}


Resource page
Over the last nine weeks, and on my own before I started this journey to DBC, I have come accross amazing resources on the web for learning, practicing and experimenting with programming and web development technologies. Here I've grouped some of my favorites into Learn, Look Up, and Play.
Learn
- Udacity is an amazing site with both free and paid classes. Their CS 101 course in Python is how I got started programming. Learn everything from Java Script to A.I. for robotics.
- Code Academy is great for introducing concepts and practicing syntax.
- CS 50 lectures from Harvard. A charismatic instructor who is good at explaining things covers a lot.
- Ruby Monk is my favorite way to practice Ruby. Beautiful web design, creative challenges, lighthearted tone.
- Rails Tutorial by Michael Hartl is the definitive tutorial for Ruby on Rails.
Look Up
- Here are 75 quick lookup cheatsheets. I could link to individual ones that I have used, but they already did a great job. HTML, CSS, JS, Ruby, SQLite, its all there and much more.
- While I'm at it resrc.io is an incredible crowd-sourced dynamic list of free programming resources with quality rankings by the community!
Play
- Code Avengers is a game where you direct your character using Java Script.
- Wavepot is an in-browser music generator in Java Script. It is the most fun I've had with JS yet!


| 759 | (A) | and more menske were it ȝitt mercy to craue |
| 761 | (C) | And ȝette more worshyppe hit were . mercy to be-seche |
| 753 | (D) | And more manship it is mercy to seche |
| 733 | (E) | ¶ More wysdom it were . mercy to crye |
| (Ex) | ---- no text ---- | |
| 777 | (L) | & more manschyp were hit ȝit mercy by seche |
| 712 | (P) | A more mensk wer it mercy to seche |
| 741 | (U) | ¶ And more wirschip it is / mercie to beseche |
| (V) | ---- no text ---- |


22 more installed as I Believe Initiative ambassadors
ANOTHER 22 outstanding Jamaicans have been installed as ambassadors for positive social change under the governor general's I Believe Initiative (IBI).
The IBI is a service-oriented programme that emphasises youth upliftment, positive family values and education.
The new ambassadors were installed during a luncheon and pinning ceremony, hosted by Governor General Sir Patrick Allen, at the Spanish Court Hotel in New Kingston on Thursday.
In his address, the governor general commended the new inductees and encouraged them to continue making a positive impact on Jamaica's development.
“I am very pleased to induct each one of you as an I Believe ambassador. You will now join the group of 250 people who have preceded you on the journey to give of themselves unselfishly and unsparingly to serve Jamaica,” he said.
Under the initiative, the ambassadors are expected to inspire and motivate young people to be the best version of themselves by developing their potential.
The governor general also lauded the new ambassadors for displaying selfless service and encouraged them to continue to contribute to social reform through their projects.
“I urge you to maintain the enthusiasm with which you are now entering the programme and continue your personal and professional growth and development throughout your tenure,” he said.
Sir Patrick also implored them not to be dissuaded from their oath of doing their best, “because, in the end, you will be complete, you will be satisfied and you will be contented that you finished the task that you have set out to do.
“I wish that you will run your race well and make Jamaica proud,” he added.
Responding on behalf of the new ambassadors, Dr Romario Simpson expressed gratitude for the appointment, noting that they intend to take the task and responsibility seriously.
The IBI is an arm of the Governor General's Programme for Excellence. The values-based programme, launched in 2011, serves to motivate and inspire youth to believe in themselves, achieve their God-given potential and give service to their country.


Event Location:
Puerto Rico Convention Center
100 Convention Boulevard
San Juan, , Puerto Rico
Abstract:
The Unified Dimensional Modeling (UDM) concept was introduced in Analysis Services 2005 as the semantic layer to enable the OLAP cube development from multiple sources using an abstract layer. Analysis Services 2012 introduces the Business Intelligence Semantic Model (BISM) concept as an evolution to UDM, offering two new 'flavors': the Multidimensional Mode and the Tabular Mode. The BISM represents the heart of Microsoft Business Intelligence strategy for now and the upcoming years. This session will explain and clarify the basic concepts of Analysis Services 2012 and PowerPivot. We will also discuss different scenarios that will allow BI architects / developers take better decisions when building up the foundation for their companies’ Enterprise Analytics strategy.
Speaker(s): Alan Koo,
Abstract:
Consulting is a great career choice, from the increased pay, (sometimes less), to the flexible hours, (working nights and weekends), you will work with a wide range of customers, (if you can find them), that will lead you to wonder why you didn't start earlier? (and walk away from a cushy job). I would not trade my consulting career for any other choice, I love the rewards and the freedom it provides me, but I've learned the hard way. In this session you will learn sales, marketing and management strategies to get your practice off the ground, sand traps to avoid along the way and a honest, down to earth assessment of the consulting life. An essential session for those thinking about this choice and/or those who are just starting out. Y
Speaker(s): Juan Soto,
Abstract:
In an era of "do more with less," IT staff are constantly being asked to manage environments without spending money. Worse yet, budgets are being cut for staff and tools. IT veteran Mike Hillwig will show you how some of the integrated tools within SQL Server can help you manage your environment without spending a ton of money. We'll look at the Central Management Server, Management Data Warehouse, Multi-Server Administration, and Policy Based Management. Mike will also show you his tips for building an Environment Inventory Database, a tool you can use to track your servers, instances, and login credentials. By leveraging what you already have in SQL Server, you'll certainly be able to do more with less.
Speaker(s): Mike Hillwig,
Abstract:
Almost every SQL Developer is familiar with Table Variables and Temporary Tables. While each of these objects represent temporary storage, there are also substantial differences between them. Understanding the differences between Table Variables and Temporary Tables, and the ramifications that those differences cause, is essential to being able to properly select the appropriate object for use in your development tasks. In this code filled session, we’ll discover the differences and similarities of Temporary Tables and Table Variables, dispel some widespread myths about each, and answer the most important questions of them all, "When do I use one or the other and what are the various impacts of doing so?"
Speaker(s): Wayne Sheffield,
Abstract:
In this session, we will review a list of costly mistakes we make when designing and building ETL and data integration processes, and provide with actionable recommendations to avoid them. You will get a check-list you can use in your projects to ensure the ETL processes include the capabilities a solid data integration sub-system should have and you will be better prepared to assess the robustness and reliability of ETL solutions.
Speaker(s): Rafael Salas,
Abstract:
Las características "In Memory" es la tendencia más de perspectiva en el área de alto rendimiento. Los Índices de ColumnStore es uno de las tales características, y aún con sus limitaciones, pueden aceleran a veces sus consultas! ¿Cómo obtener más de esta característica? ¿En qué situaciones debemos usarlos? ¿Qué mecanismos internos ayudan a lograr eso? Usted puede obtener respuestas a estas y otras preguntas que se haya generado en algún momento en esta sesión.
Speaker(s): Jose Gregorio Redondo Lopez,
Abstract:
When it comes to SQL Server one of the biggest request you hear is “How can I make my Query Run FASTER!?”. The answer understanding the first step in that process Is understanding the Query Optimizer. Understanding the Optimizer beings with knowing the Rules. The way our queries are written reflect directly on the output that we get. In this session we will look at the rules in SQL Server, write queries to show those rules in action, and walk out with a better understanding of how the Optimizer works.
Speaker(s): Bradley Ball,
Abstract:
Now that Windows Azure virtual machines are generally available to the public, how does this offering affect you? In this session we'll review this offering, walkthrough creating and deploying a virtual machine with SQL Server on it. We'll also discuss how you can leverage this offering to your existing infrastructure!
Speaker(s): Jorge Segarra,
Abstract:
Do you ever find yourself repeating the same steps over and over while developing ETL packages? BIML is an XML markup language that automates your BI patterns and reduces the manual repetition that consumes most of your development time. In this session we will learn the basics of BIMLScript and show you the benefits of creating and automating an SSIS framework.
Speaker(s): Guillermo Caicedo Santiago,
Abstract:
SQL Server 2012 brings with it nearly full ANSI compliance with the windowing functions. Come to this code filled session to learn about all of the windowing functions in SQL Server 2012: Ranking functions, changes for windowing in the Aggregate functions, and the new Analytic and Sequence functions. We’ll examine how this latest implementation of the windowing functions allows us to perform running and sliding aggregations; retrieve data from adjacent rows in the partition, and much more – all without self-joins back to the source table.
Speaker(s): Wayne Sheffield,
Abstract:
In this presentation I will be covering how to subscribe to Azure, setup PowerShell to connect your subscription, use scripting to create a SQL Database Server and then use SMO with PowerShell push data to your SQL Azure tables. All this using PowerShell scripting plus showing some editor, scripting techniques, and tips to avoid issues when working and setting Azure with PowerShell. (Live demo with Windows Azure)
Speaker(s): Maximo Trinidad,
Abstract:
En esta sesión discutiremos las estrategias de uso para las tablas particionadas, su impacto y cómo implementarlas, ventajas y desventajas, y como se trabaja con el mantenimiento de las ventanas corredizas. Además, compararemos las mejoras que ha tenido esta funcionalidad desde SQL Server 2008 hasta SQL Server 2014. Al final de esta sesión, tendrás toda la información necesaria para poder tomar ventaja de esta funcionalidad en tu ambiente de trabajo.
Speaker(s): Jose L. Rivera,
Abstract:
(Spanish). This session will explain and demonstrate how to create SQL Server Reporting Services to be run inside SQL Server Management Studio as custom reports. This will allow you to see SQL instance or database information that normally will require special T-SQL commands or purchasing third party products. Basic knowledge on Reporting Services and T-SQL are required.
Speaker(s): Jorge Sanchez,
Abstract:
Esta presentación se concentra en los pasos que se puede tomar para determinar el buen funcionamiento del SQL Server y donde debe enfocarse para optimizarlo. Revisamos las herramientas y scripts que están disponibles sin costo en la comunidad SQL para que no tenga la necesidad de comprarlas .
Speaker(s): Carlos L Chacon,
Abstract:
Most all databases have some kind of geographic data and geographic reporting requirements. This session focuses on how to prepare and validate your geographic data, provide latitude and longitude, implement the GEOGRAPHY SQL data type, and finally present your data using Power Map and SSRS. An overview of each step will be given as well as in depth real life examples.
Speaker(s): David Dye,
Abstract:
It is common for power users and data scientists to start mocking up their analysis in Excel. As their reporting grows in sophistication, however, it is important to understand the options available to enable increasingly robust analytical capabilities without incurring high infrastructure costs during experimentation phases. This session will explore promotion paths for PowerPivot models that mature to demand robust data transformations, as well as cleansing and master data procedures. You will learn the pros and cons of using cloud-based PowerPivot environments, as well as the recommended architectures for model growth.
Speaker(s): Javier Guillen,
Abstract:
Microsoft introduced several new features and tools that have sparked the self-service BI revolution. Learn how PowerPivot, PowerView and PowerMap are revolutionizing the way Business Intelligence is being delivered and consumed by the end users themselves right form Excel 2013. In this session you will also understand what is the role of IT in this new self-service paradox.
Speaker(s): Jose Chinchilla,
Abstract:
En esta sesión se ofrecerá un resumen del fenómeno de las certificaciones en la industria de las bases de datos SQL Server, los cursos de entrenamiento del fabricante, beneficios y ventajas de las certificaciones y el RoadMap de certificación para SQL Server 2012.
Speaker(s): Rogger Rodriguez,
Abstract:
In this session you will learn through a demonstration what is Power BI. We will show how all of the technologies included in this new offering can help customers quickly build end-to-end self-service analytic solutions leveraging the power of the cloud. The scenario we will be showcasing focuses on helping governments maximize their Open Data initiatives by providing government officials with the insight they need to make more informed decisions.
Speaker(s): Ramon Ponte,
Abstract:
Users will be able to create a small access database, connect to the cloud and see their access working in the cloud.
Speaker(s): Edwin Blancovitch,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
Contact: http://www.alankoo.com
Alan Koo is a former Microsoft MVP with over 11 years of technical experience architecting and developing solutions oriented to increase businesses performance in both public and private sectors. Alan joined Nagnoi, Inc. in 2005 as the lead technical architect for the Performance Management Business Intelligence Practice and in 2007 became Nagnoi’s first Senior Consultant. Alan is the co-founder and current President of PRPASS and maintains his "Microsoft Business Intelligence y mas..." blog.
David is a Sergeant with the Cape Coral Police Department and currently works as a database administrator and developer in the Administrative Services Division. He began his career with the police department in 1990 in the patrol division and worked various assignments until being promoted to Sergeant in 1998. Based on his education and experience David was assigned to his current position in 2002 and is responsible for database administration, software integration, and development for public sa
LinkedIn: http://www.linkedin.com/in/WayneSheffield
Contact: http://blog.waynesheffield.com/wayne
Wayne Sheffield, a Microsoft Certified Master in SQL Server and Microsoft Most Valuable Professional, started working with xBase databases in the late 80’s. With over 25 years in IT, he has worked with SQL Server (since 6.5 in the late 90’s) in various dev/admin roles, with an emphasis in performance tuning. He is the author of several articles at www.sqlservercentral.com, a co-author of “SQL Server T-SQL Recipes”, and enjoys sharing his knowledge by presenting at SQL events worldwide and blogging at http://blog.waynesheffield.com/wayne
LinkedIn: https://www.linkedin.com/in/sqlballs
Contact: http://www.sqlballs.com
Bradley Ball is a Sr. Azure Engineer for Microsoft, and former Data Platform MVP. During his IT career Bradley has spent 8 years working as a Defense contractor for clients such as the U.S. Army and The Executive Office of the President of the United States, and the former Data Platform Practice Manager for Pragmatic Works Consulting. He has presented at SQLSaturdays, SSUG's, SQL Rally, DevConnections, SQLBits, SQL Live 360, and the PASS Summit. Bradley can be found blogging on http://www.SQLBalls.com
LinkedIn: http://www.linkedin.com/in/WayneSheffield
Contact: http://blog.waynesheffield.com/wayne
Wayne Sheffield, a Microsoft Certified Master in SQL Server and Microsoft Most Valuable Professional, started working with xBase databases in the late 80’s. With over 25 years in IT, he has worked with SQL Server (since 6.5 in the late 90’s) in various dev/admin roles, with an emphasis in performance tuning. He is the author of several articles at www.sqlservercentral.com, a co-author of “SQL Server T-SQL Recipes”, and enjoys sharing his knowledge by presenting at SQL events worldwide and blogging at http://blog.waynesheffield.com/wayne
Contact: http://www.rafael-salas.com
Rafael Salas is a recognized speaker and published author with more than 17 years of experience in business intelligence and information architecture. He is the recipient of multiple industry recognition, including the Microsoft MVP Award and The Data Warehouse Institute Best Practices Award. Rafael is also an active member of the SQL Server technical community and blogs regularly at www.rafael-salas.com.
LinkedIn: Linkedin: http://www.linkedin.com/pub/max-trinidad/12/47/775/
Contact: http://www.maxtblog.com
Maximo Trinidad (Florida Aka – Mr. PowerShell), currently work as a SAPIEN Technologies Evangelist and specialing in scripting automation on SQL Server Microsoft Cloud Technologies. Also a Microsoft MVP (PowerShell) since 2009 and active speaker since 2007 participating at SQLSaturday, IT Pro .NET Code Camps events.
LinkedIn: http://www.linkedin.com/in/mikehillwig
Contact: http://www.mikehillwig.com
Veteran DBA Mike Hillwig is a native Pittsburgher and resident of the Boston Suburbs. He’s a DBA Manager for a financial software company that’s owned by one of the world’s largest bank. Mike has been working with SQL Server since version 7 and has a background in infrastructure and network. Today, he manages a team of DBAs around the globe.
Ramon Ponte has over eighteen years of experience delivering enterprise architecture and advisory services to medium and large size organizations in Puerto Rico, the Caribbean and Central America. Industries of expertise include government, education, financial services, insurance, and the telecommunication sector. Ramon’s technical areas of expertise include development, system integration and business intelligence.
LinkedIn: https://www.linkedin.com/in/carloslchacon
Contact: http://sqldatapartners.com/blog
Carlos Chacon is the managing partner of SQL Data Partners LLC and co-host of the popular SQL Data Partners Podcast. While getting his start as a typical accidental DBA, Carlos has sat on Microsoft exam review panels, served as regional mentor and chapter leader. He enjoys traveling and has been to four continents, speaks Spanish and can eat his weight in raspberries (not yet proven). He and his family live in Richmond, Virginia.
Ingeniero de Sistemas de la fundación Universitaria Politécnico Gran colombiano, con más de 20 años de experiencia, Técnico en Electrónica Digital Industrial del Centro Don Bosco, Técnico en Sistemas de la Universidad Abierta y a Distancia. Diplomando en Gerencia de Proyectos Educativos, Diplomando en Administradores de contenidos para plataformas Virtuales. Certificaciones: MCT, MCSE, MCSA ITIl, COBIT.
LinkedIn: http://www.linkedin.com/in/javierguillen/
Contact: http://javierguillen.wordpress.com/
Javier Guillen is a Solutions Architect for BlueGranite. An active blogger, speaker, and Microsoft community contributor, Javier has more than 10 years developing SQL Server solutions and is very interested in SQL Server Analysis Services and the practical application of MDX and DAX patterns. Javier is also a Power BI Workshop instructor, delivering classes in private and public settings, an adjunct BI instructor for Central Piedmont Community College in Charlotte, NC and an adjunct lecturer for the City University of New York (CUNY) School of Professional Studies undergraduate and bridge graduate courses in Business Analytics. He is also the co-founder and co-organizer of the Charlotte Business Intelligence User Group (CBIG).
LinkedIn: http://www.linkedin.com/in/jdsegarra
Contact: http://sqlchicken.com
Jorge Segarra is a senior consultant for Microsoft (Premier Support for Developers) and a former SQL Server MVP. Jorge has co-authored titles including "SQL 2008 Pro Policy-Based Management" and "SQL Server 2012 Bible" .
LinkedIn: http://www.linkedin.com/in/josechinchilla
Contact: http://www.sqljoe.com
Jose Chinchilla is an experienced data analytics professional with multiple certifications including Microsoft Certified Database Administration (MCSE), Microsoft Certified Data Management and Analytics (MCSE), and Microsoft Certified Trainer (MCT). Jose specializes in Data Warehouse and Data Lake Architecture and Development as the Data Analytics Practice Lead at AgileThought, a full-service custom software and analytics consulting firm based in Tampa, FL. Jose is a book author (SQL 2012 Bible, Professional SQL Server 2012 Administration, Exam Ref 70-767 Implementing a SQL Data Warehouse 2016) and leads the Tampa Bay BI Data Analytics PASS Chapter in Tampa, FL.
LinkedIn: https://www.linkedin.com/in/juansoto
Contact: https://accessexperts.com/blog/
I’m the President of IT Impact, a Microsoft Access MVP and a frequent author on the official Microsoft Access blog as well as the first Access developer to be profiled on their site. I’m also a frequent speaker at Access User Groups throughout the USA, covering subjects such as SQL Server with Access as well as providing tools and resources for Access developers on the web. My expertise is optimizing Access with SQL Server and helping SQL Server DBAs understand how to design tables for Access.
Contact: http://www.easypayroll.net
Graduated from the Interamerican University in PR, after working a few years administrating the largest food chain in the island and after looking at the needs of local business for software solutions, decided to create his own business Advanced Developers.Net www.advdev.net . After some year’s easy payroll is being used by some of the top 500 business in the island, with more than 500 users handles over than 100 million in payroll every year.
Contact: http://redondoj.wordpress.com/
Consultor y Arquitecto de Sistemas de Información con 19 años de experiencia en SQL Server, Oracle, DB2, Informix y SyBase; así como en Access, FoxPro, DBase, 4D, Interbase, FileMaker entre otros. Ha aplicado sus conocimientos en diversas compañías de sectores como Gobierno, Petroleras, Cultura, Educación, Salud, Manufacturero, Ventas/Retail y Financieras; ejecutando proyectos en dichas áreas. Es miembro fundador de "SQL PASS Venezuela - Caracas Chapter" y es el Líder de dicho capítulo.
LinkedIn: http://www.linkedin.com/in/jorgesanchezpr
Mr. Jorge S#225;nchez brings +27 years of experience in the IT industry, currently working for Rock Solid Technologies as IT Manager. Previously, Mr. Sanchez worked 8 years in Microsoft Puerto Rico as SQL Server Regional Specialist for Caribbean and Central America with direct focus in Puerto Rico, Costa Rica, Dominican Republic, and Trinidad. Before that, he worked 14 years as Senior Consultant, Developer, and SQL Server Certified Instructor within the Microsoft Partners Ecosystem.
LinkedIn: http://www.linkedin.com/profile/view?id=189422534
Contact: http://sqlconqueror.com
Jose L. Rivera is a seasoned data professional, speaker, homebrewer, trainer (former MCT), Data Platform MVP and community leader based in Puerto Rico working as Senior Financial Analyst for MCS. He shares his knowledge and experiences throughout his community work as Chapter Leader for the PASS Global Spanish VC (facebook.com/SpanishPASSVC), Vice-President of the Puerto Rico PASS (prpass.org), Mentor of GDG Puerto Rico (facebook.com/gdgpuertorico) and LATAM Regional Mentor at PASS. Jose L is a frequent speaker in SQLSaturday events throughout US and Latin America. He loves data, analytics, teaching, learning, having fun with his family, craft beer (a lot) and everything in between.
LinkedIn: http://www.linkedin.com/in/gcaicedo/
Contact: http://www.sqltitan.com
Guillermo Caicedo es un profesional de bases de datos y tecnolog#237;a trabajando como Consultor en Nagnoi, LLC. Ha ayudado a numerosas empresas a obtener conocimiento sobre sus datos por desarrollar e implementar soluciones de inteligencia empresarial en sus organizaciones. El Sr. Caicedo tambi#233;n tiene una amplia experiencia desarrollando aplicaciones web y m#243;viles. Guillermo es un Data Platform MVP y l#237;der del Cap#237;tulo PASS para Puerto Rico (PRPASS).
The following is a list of sponsors that helped fund the event.


--- layout: default title: Eric Fargose - Maker at kodeplay. section_id: about ---
Eric is the very epitome of discipline. He ensures that everything we build at kodeplay is also within the bounds of discipline. He is always looking for action to build. Tireless in spirit, calm in action and always at ease. You must meet him once to see to believe. He loves automobile design and to shell out code that is right the first time it runs on a production server. Subscribe to know more about eric's making journey.


Curious about the stuff here?
leveloneadventure.me is a simple website created using html on Github Pages. I created this to be a minimal, front page for my FoundryVTT games, D&D session notes, websites, and contact details. The wiki is created using Wiki.js and serves as the main repository of content.
Foundry Virtual Tabletop is my preferred medium for online DnD sessions. It struck a chord with me because of its community-focused development, robust set of features that rivals (and sometimes exceeds) Roll20 and Fantasy Grounds, and it's "pay once" licensing model. The community is amazing, and it has been worth every peso I paid for it so far. 😄
I host my games on dedicated servers. The cloud providers I use are: Oracle Cloud (Seoul), Digital Ocean (Singapore), Azure (Singapore). The main server is on Oracle Cloud, while backup, beta, and org servers are hosted on Digital Ocean and Azure. If you're a student, and you want to do something similar, the Github Student Developer Pack will help you a ton. I learned about server hosting on the Foundry Wiki.
Campaign notes can be found on the D&D section of the leveloneadventure wiki. For more details about the wiki and other stuff, go here.
I learned D&D during the quarantine of 2020 and immediately fell in love with it.
I'm a microbiology major who likes tinkering with computers, playing guitar, and rolling dice.
Send me an email if you have questions! You can also add me up on discord, or follow me on social media! I follow back.😁
✉Email<EMAIL_ADDRESS>📷Instagram: jeffuntalan
🐦Twitter: @manameisjep
🎮Discord Name: Helianthus#8290
🖥Steam Friend Code: 143867609


Network NT Official Blogs
Learn more about the Light Framework.
Blogs
{{blog.categoryId}}
{{post.title}}
Posted by {{post.createUserId}} {{post.createDate | calendar}}
{{post.in_UpVote.length || 0}}
{{post.in_DownVote.length || 0}}
Shoot! Looks like we don't have any posts in this blog...
Can someone help us make days longer?
Post
Sub Categories
{{subBlog.categoryId}}


public interface RowBatchReader
RecordReader
interface.
Classes that extend from this interface must handle all aspects of reading data, creating vectors, handling projection and so on. That is, extensions of this class are intended to be frameworks.
For most cases, a plugin probably wants to start from a
base implementation, such as the ManagedReader
class,
which provides services for handling projection, setting up
the result set loader, handling schema smoothing, sharing
vectors across batches, etc.
Note that this interface reads a batch of rows, not a single row. (The original RecordReader could be confusing in this aspect.)
The expected lifecycle is:
open()
: Allocate resources and set up the schema
(if early schema.)output()
and schemaVersion()
to determine
the initial version. If no schema is available on open (the reader
is late-schema), return null for the output and -1 for the schema
version. Else, return non-negative for the version number and
an empty batch with a schema.next()
to retrieve the next record batch.
Return true if a batch is available, false if EOF. There is no
requirement to return a batch; the first call to next()
can return false if no data is available.
output()
and schemaVersion()
to obtain the
batch of records read, and to detect if the version of the schema
is different from the previous batch.close()
when the reader is no longer needed. This
may occur before next() returns false if an
error occurs or a limit is reached.
If an error occurs, the reader can throw a RuntimeException
from any method. A UserException
is preferred to provide
detailed information about the source of the problem.
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Release resources.
|
boolean |
defineSchema()
Called for the first reader within a scan.
|
String |
name()
Name used when reporting errors.
|
boolean |
next()
Read the next batch.
|
boolean |
open()
Setup the record reader.
|
VectorContainer |
output()
Return the container with the reader's output.
|
int |
schemaVersion()
Return the version of the schema returned by
output() . |
String name()
boolean open()
RuntimeException
- for "hard" errors that should terminate
the query. UserException preferred to explain the problem
better than the scan operator can by guessing at the causeboolean defineSchema()
This step is optional and is purely for performance.
boolean next()
This somewhat complex protocol avoids the need to allocate a final batch just to find out that no more data is available; it allows EOF to be returned along with the final batch.
RuntimeException
- (UserException preferred) if an
error occurs that should fail the query.VectorContainer output()
open()
. If the data source
can provide a schema at open time, then the reader should provide an
empty batch with the schema set. The scanner will return this schema
downstream to inform other operators of the schema.next()
to retrieve
the batch produced by that call. (No call is made if next()
returns false.int schemaVersion()
output()
. The schema
is assumed to start at -1 (no schema). The reader is free to use any
numbering system it likes as long as:
If the reader can return a schema on open (so-called "early-schema), then this method must return a non-negative version number, even if the schema happens to be empty (such as reading an empty file.)
However, if the reader cannot return a schema on open (so-called "late schema"), then this method must return -1 (and output() must return null) to indicate now schema is available when called before the first call to next().
No calls will be made to this method before open() after close() or after next() returns false. The implementation is thus not required to handle these cases.
void close()
RutimeException
- (UserException preferred) if an
error occurs that should fail the query.Copyright © 2021 The Apache Software Foundation. All rights reserved.


You can think of a container as a folder in Windows® or a directory in UNIX®. The primary difference between a container and these other file system concepts is that containers cannot be nested. You can, however, create an unlimited number of containers within your account. Data must be stored in a container so you must have at least one container defined in your account prior to uploading data.


---
layout: cohort
title: Cohort 1 | Curriculum | 10th
cohortlink: one
cohort: ONE
---
Curriculum
10th Grade Curriculum
Power of Procedure
Power of Story
Power of Place
Power of Perspective
Elements of Leadership
South Africa and Apartheid
To Kill a Mockingbird
Segregation and Racism in America


Replaces a
caller.method(object)
call with a
object.method(caller)
call (i.e. the qualifier and argument are swapped) if possible.


Party Contributions Part 2
by QuidQuo
In my last post, I reviewed contributions to the Iowa Democratic Party and the Republican Party of Iowa and found that both acted like bank accounts that re-distribute funds from candidates who bring in the most to targeted districts. This raised more questions than answers. If candidates are funding the parties, then who is funding the candidates?
Who funds the Candidates?
For this analysis, I pulled contributions to every active, registered republican and democratic statewide and legislative candidate. For each group, I excluded all contributions from their respective state parties (Because this money comes mostly from the candidates themselves, it would essentially count each contribution twice). I also excluded the gubernatorial candidates on both sides because they raised so much, it skewed the data on both sides. I will compare the gubernatorial candidates in a later post.
Here is a summary of individual contributions to candidates of both parties:
| Fund Source | Democrats | Republicans |
|---|---|---|
| Company/Entity Contributions | $31,208,625.12 (60.5%) | $18,141,258.59 (34%) |
| Individual Contributions >$200 | $14,429,061.42 (28%) | $11,634,257.97 (18.8%) |
| Individual Contributions <$200 | $5,922,234.71 (11.5%) | $4,404,179.17 (12.9%) |
The result shows that at the very grassroots level, both parties are similar, bringing in 11-13% in small donor contributions. Democrats take in more money from large donor contributions and companies/entities. So let's take a look at those companies and entities.
Companies fund Republicans; Unions fund Democrats
A breakdown of the top 50 contributors to democrats and republicans shows that company PACs tend to contribute more to Republican candidates and labor union PACs tend to contribute more to Democrats.
Here's a list of the top 50 company/entity contributors to both parties:
It is interesting to consider the data listed above in the context of recent changes to Iowa's Collective Bargaining laws. There's sort of a chicken/egg scenario where it's unclear whether Republicans were targeting Iowa's workers because of the political threat posed by labor union contributions, or perhaps Iowa's unions reacted to Republican attacks by contributing to Democratic candidates. A more in-depth review will likely uncover more information, and I intend to do that in a later post.
Data Transparency
You may have noticed that the Iowa Democratic Party is listed as #3 for the Democrats above, and the Iowa Republican Party is listed as #19 for the Republicans above. I excluded every contribution from either party that was tied to the party's contributing committee code. The data reported above is the result of contributions being listed on both sides of the aisle without a contributing committee code. I think that's just an important reminder that the information here is only as accurate as the underlying data. This site pulls all data for companies/entities based on committee code numbers because those numbers are less prone to error than a misspelling in a committee name.
The tool on this page breaks down pie charts according to the following
- Contributions from the committee code for the Republican Party of Iowa or the Iowa Democratic Party (State Party Contributions)
- Contributions from any other entity with an organization name (Contributions from Companies/other Entities)
- A total of all remaining contributions >$200
- A total of all remaining contributions <$200
An important note is that the list of top individual donors aggregates totals regardless of whether the individual contribution was more or less than $200. So for a donor that contributed $50 and then later contributed $250 to a candidate, those contributions would be shown separately in the graph, but the total would be $300 in the name list below.
Next Steps
I've shown that candidates fund their state parties and that there is a disparity in the types of entities that contribute to candidates of different parties. But if company PACs tend to contribute to Republicans and union PACs tend to give to Democrats, then who is giving to those PACs? In my next posts, I plan to explore exactly that issue as well as an analysis of the campaign finances behind the 2018 Iowa gubernatorial election.
Subscribe via RSS


Reports unnecessary import aliases.
Example:
import com.foo.Bar as Bar
After the quick-fix is applied:
import com.foo.Bar


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/.5Cl.20symbol.html ---
The \l
is producing ⇇ in my Emacs. How to fix it? I was expecting ← !!
Use vi! Oh no, sorry. Use VScode. We really need that Lean4 extension for vi in order to settle this once and for all.
If you write \l
you probably get a list of options in the minibuffer. Select the one you want (which is probably the first one). After that, Emacs will choose that character whenever you write \l
again.
Thank you, I didn't notice the minibuffer @Floris van Doorn !
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


@NonNullApi @NonNullFields
请参阅: 说明
| 接口 | 说明 |
|---|---|
| AnnotationCacheOperationSource.CacheOperationProvider |
Callback interface providing
CacheOperation instance(s) based on
a given CacheAnnotationParser . |
| CacheAnnotationParser |
Strategy interface for parsing known caching annotation types.
|
| CachingConfigurer |
Interface to be implemented by @
Configuration classes annotated with @EnableCaching that wish or need to
specify explicitly how caches are resolved and how keys are generated for annotation-driven
cache management. |
| 类 | 说明 |
|---|---|
| AbstractCachingConfiguration |
Abstract base
@Configuration class providing common structure
for enabling Spring's annotation-driven cache management capability. |
| AnnotationCacheOperationSource |
Implementation of the
CacheOperationSource interface for working with caching metadata in annotation format. |
| CachingConfigurationSelector |
Selects which implementation of
AbstractCachingConfiguration should be used
based on the value of EnableCaching.mode() on the importing @Configuration
class. |
| CachingConfigurerSupport |
An implementation of
CachingConfigurer with empty methods allowing
sub-classes to override only the methods they're interested in. |
| ProxyCachingConfiguration |
@Configuration class that registers the Spring infrastructure beans necessary
to enable proxy-based annotation-driven cache management. |
| SpringCacheAnnotationParser |
Strategy implementation for parsing Spring's
Caching , Cacheable ,
CacheEvict , and CachePut annotations. |
| 注释类型 | 说明 |
|---|---|
| Cacheable |
Annotation indicating that the result of invoking a method (or all methods
in a class) can be cached.
|
| CacheConfig |
@CacheConfig provides a mechanism for sharing common cache-related
settings at the class level. |
| CacheEvict |
Annotation indicating that a method (or all methods on a class) triggers a
cache evict operation. |
| CachePut |
Annotation indicating that a method (or all methods on a class) triggers a
cache put operation. |
| Caching |
Group annotation for multiple cache annotations (of different or the same type).
|
| EnableCaching |
Enables Spring's annotation-driven cache management capability, similar to the
support found in Spring's
<cache:*> XML namespace. |
CacheOperationSource
.