IMDb Search Shell
Goals
This software has the goal to provide a simple IM-Db crawler. This crawler at the moment has not configuration to allow to different Movie Databases.
Technology
This software is entirely written in Java 1.8 and it's provided of a command line suite to activate the crawling. It's a passive system surfer using multiple threads and collecting the hierarchy in a specific standard output.
The system is provided of a single running interface and a multiple customizable Output formatter and Output device interface. These classes are sibling of two interfaces in order : ResultFormatter
and ResultCollector
.
The software has been written with the following minimal design patterns :
-
Builder (
WebRestQueryConfigurationBuilder
) -
Method Factory (
WebRestQueryHelper#parseParametersAndRunCrawler
) -
Abstract Factory (
WebRestQuery
andWebRestQueryConfiguration
) -
Command (
WebRestQuery
) recursive on itself on the scheduler request. -
Bridge (
ResultFormatter
,ResultCollector
) -
Observer (
WebRestQuery
in order toWebRestQueryProcess
) -
Visitor (
WebRestQueryConfiguration
is a Visitor behalfWebRestQueryProcess
for theResult
surfing state)
The application is a snapshot release because it doesn't gather the my minimum level of isolation and test harness, due to the first few effort provided.
In the future we will improve this application providing a wider range of configuration attributes, writing multiple formatters and collectors, providing a specific interpreter for the target platforms, define a Spring Boot and Spring Web configuration, isolating the API and providing a persistent layer to operate offline on API Search Project (dry-run, re-run, time schedule, remote access for defying and/or run processes behalf deamon agents). Just right now, we detach a Project UID that is transversable to all the application layer, and it can be persisted on a SQL (such as H2, ...), NoSQL (such as MongoDb, ..), File (such as a json file directory, ...) and/or configurable cache systems (such as ehcache, ...) all that in a kind of node environment application server, with specific a configuration, providing a configuration, a clustering, an administration and a maintenance services.
The current command usage is completely dynamic and the current formatters and collectors are recovered by the related implementation package. Implementing new elements automatically are presented to the user. Any attribute has a default value included in a properties file, including the web site URL, so the errors can be related to the human mistakes, only!! :D
Prerequisites
Java 1.8 or upper and Maven 3.x. The exported variable JAVA_HOME pointing to the Java8 base folder.
NOTE
Due to reduced time most of the test has been put in hold at the moment. We decline any responsability related to damages directly or indirectly related to the use of this study library.
Build
To build the application you can use the scripts build.cmd or build.sh.
The Maven 3.x command line to build the project is :
mvn -U -up clean cobertura:cobertura javadoc:jar source:jar install
Command Line interface
To test the command line interface there is a windows command and a linux shell executable shell scripts in the bin
directory. To have the usage list you need simply use the --help
option. Alternatively you can use the folder bin jar query.jar
in the base project folder.
Here an example of use:
Usage: api-search [options]
samples: api-search --format=simple --api imdb --movie "Indiana Jones" api-search --movie "Herry Potter" options: --format Identifies the site map format available formats : plain Plain Text Site Map Format default : plain --output Identifies output device available output : stdout Standard Output Writer default : stdout --extends Identifies the number of threads extension on the surf. This is the minimum number of threads running on the site hierarchy discovery default : 10 -Dmovie= Identifies the movie title query name --movie Identifies the movie title query name default : null -DexactSearch= Identifies the exact title search --exactSearch Identifies the exact title search default : true -Dapi= Identifies the default used API database --api Identifies the default used API database available engines : tmdb The Movie DB Rest API implementation (use -DexactSearch=0) imdb IMDB Rest API implementation omdb OMDB Rest API implementation - APIKey activation in progress default : com.web.libraries.imdbquery.api.controller.engines.TMDBApiEngine@6366ebe0
Release Version
1.0.0-SNAPSHOOT
Road Map
- T.B.D.


{% load static %}
{{ event.name }} Registration
REGISTRATION FORM
NAME
E-MAIL
EVENT NAME
EVENT FEE
COLLEGE OR UNIVERSITY
{% csrf_token %}
Cancel


2 $2.170.00
-
organic almonds
DRY FRUITS
$50.00$65.00 -
organic pepper
VEGETABLES
$50.00$65.00 -
organic onion
VAGETABLES
$50.00$65.00 -
Subtotal$150.00
my account
- Home Your Order History


Search And Find Your Perfect Mess.
If you are looking at blank mess on the web, you may be very confused at the difference in price. You may see some for as low as 1000TK each.
Get StartedWhat is MDB?
MDB is world's most popular Material Design framework for building responsive, mobile-first websites and apps.


This Privacy Policy governs the manner in which A/B Testing Lab collects, uses, maintains and discloses information collected from users ("User") of the abtestinglab.com website ("Site"). This privacy policy applies to the Site and all products and services offered by A/B Testing Lab.
We may collect personal identification information from Users in a variety of ways, including, but not limited to, when Users visit our site, register on the fill out a form and in connection with other activities, services, features or resources we make available on our Site. Users may be asked for, as appropriate, name, email address.
We will collect personal identification information from Users only if they voluntarily submit such information to us. Users can always refuse to supply personally identification information, except that it may prevent them from engaging in certain Site related activities.
We may collect non-personal identification information about Users whenever they interact with our Site. Non-personal identification information may include the browser name, the type of computer and technical information about Users means of connection to our Site, such as the operating system and the Internet service providers utilized and other similar information.
Our Site may use "cookies" to enhance User experience. User's web browser places cookies on their hard drive for record-keeping purposes and sometimes to track information about them. User may choose to set their web browser to refuse cookies, or to alert you when cookies are being sent. If they do so, note that some parts of the Site may not function properly.
A/B Testing Lab collects and uses Users personal information for the following purposes:
We adopt appropriate data collection, storage and processing practices and security measures to protect against unauthorized access, alteration, disclosure or destruction of your personal information, username, password, transaction information and data stored on our Site.
Sensitive and private data exchange between the Site and its Users happens over a SSL secured communication channel and is encrypted and protected with digital signatures.
We do not sell, trade, or rent Users personal identification information to others. We may share generic aggregated demographic information not linked to any personal identification information regarding visitors and users with our business partners, trusted affiliates and advertisers for the purposes outlined above. We may use third party service providers to help us operate our business and the Site or administer activities on our behalf, such as sending out newsletters or surveys. We may share your information with these third parties for those limited purposes provided that you have given us your permission.
A/B Testing Lab has the discretion to update this privacy policy at any time. When we do, revise the updated date at the bottom of this page,. We encourage Users to frequently check this page for any changes to stay informed about how we are helping to protect the personal information we collect. You acknowledge and agree that it is your responsibility to review this privacy policy periodically and become aware of modifications.
By using this Site, you signify your acceptance of this policy and terms of service. If you do not agree to this policy, please do not use our Site. Your continued use of the Site following the posting of changes to this policy will be deemed your acceptance of those changes.
If you have any questions about this Privacy Policy, the practices of this site, or your dealings with this site, please contact us at:
A/B Testing Lab
https://abtestinglab.com
<EMAIL_ADDRESS>Last updated at: 22 January 2016


{% include "includes/account-name-number.html" %}Approve cohorts
You have 4 cohorts that need your approval:
| Employer | Reference | Last message | |
|---|---|---|---|
| Acme Coventry Ltd | 98HGS3F | This is contract ref#90210, can you add the 25 bakery assistants to it. | Details |
| Cyberdyne Systems | 55HGS3F | This is a message that has been added. It runs along the bottom of the card for now. | Details |
| Tyrell Corp | 999GHY4 | This is a message that has been added. It runs along the bottom of the card for now. | Details |
| Oscorp | 999GHY4 | This is a message that has been added. It runs along the bottom of the card for now. | Details |


OPENJADE(1) OPENJADE(1) NAME openjade - apply a DSSSL stylesheet to an SGML or XML document SYNOPSIS openjade [-vCegG2s] [-b encoding] [-f error_file] [-c catalog_sysid] [-D dir] [-a link_type] [-A arch] [-E max_errors] [-i entity] [-w warning_type] [-d dsssl_spec] [-V variable[=value]] [-t output_type] [-o output_file] [sysid...] DESCRIPTION openjade is an implementation of the ISO/IEC 10179:1996 standard DSSSL language. The DSSSL engine receives as input an SGML or XML document and transforms it into formats like: * XML representation of the flow object tree. * RTF format that can be rendered and printed with Microsoft's free Word Viewer 97 * TeX format * MIF format that can be rendered and printed with Framemaker * SGML or XML format. This is used in conjunction with non-standard flow object classes to generate SGML, thus allowing openjade to be used for SGML/XML transformations. The system identifier of the document to be processed is specified as an argument to openjade. If this is omitted, standard input will be read. openjade determines the system identifier for the DSSSL specification as follows: 1. If the -d option is specified, it will use the argument as the system identifier. 2. Otherwise, it will look for processing instructions in the prolog of the document. Two kinds of processing instruction are recognized: <?stylesheet href="sysid" type="text/dsssl"> The system data of the processing instruction is parsed like an SGML start-tag. It will be parsed using the reference concrete syntax whatever the actual concrete syntax of the document. The name that starts the pro‐ cessing instruction can be either stylesheet, xml-stylesheet or xml:stylesheet. The processing instruction will be ignored unless the value of the type attribute is one of text/dsssl, text/x-dsssl, applica‐ tion/dsssl, or application/x-dsssl. The value of href attribute is the system identifier of the DSSSL specification. <?dsssl sysid> The system identifier is the portion of the system data of the processing instruction following the initial name and any whitespace. Although the processing instruction is only recognized in the prolog, it need not occur in the document entity. For example, it could occur in a DTD. The system identifier will be interpreted relative to where the the processing instruction occurs. 3. Otherwise, it will use the system identifier of the document with any extension changed to .dsl. A DSSSL specification document can contain more than one style-specifica‐ tion. If the system identifier of the DSSSL specification is followed by #id, then openjade will use the style-specification whose unique identi‐ fier is id. This is allowed both with the -d option and with the process‐ ing instructions. The DSSSL specification must be an SGML document conforming to the DSSSL architecture. For an example, see dsssl/demo.dsl. openjade supports the following options in addition to the normal OpenSP (see onsgmls(1)) options (note that all options are case-sensitive, ie -g and -G are different options): -d dsssl_spec This specifies that dsssl_spec is the system identifier of the DSSSL specification to be used. -G Debug mode. When an error occurs in the evaluation of an expres‐ sion, openjade will display a stack trace. Note that this disables tail-call optimization. -c filename The filename arguments specify catalog files rather than the docu‐ ment entity. The document entity is specified by the first DOCU‐ MENT entry in the catalog files. -s Strict compliance mode. Currently the only effect is that jade doesn't use any predefined character names, sdata-entity mappings or name-characters. This is useful for checking that your stylesheet is portable to other DSSSL implementations and that it is strictly compliant to the DSSSL specifications. -t output_type output_type specifies the type of output as follows: fot An XML representation of the flow object tree rtf rtf-95 RTF (used for SGML/XML to RTF transformations) Micro‐ soft's Rich Text Format. rtf-95 produces output optimized for Word 95 rather than Word 97. tex TeX (used for SGML/XML to TeX transformations) sgml sgml-raw SGML (used for SGML/XML to SGML transformations). sgml-raw doesn't emit linebreaks in tags. xml xml-raw XML (used for SGML/XML to XML transformations). xml-raw doesn't emit linebreaks in tags. html HTML (used for SGML/XML to HTML transformations) mif MIF (used for SGML/XML to MIF transformations) -o output_file Write output to output_file instead of the default. The default filename is the name of the last input file with its extension re‐ placed by the name of the type of output. If there is no input filename, then the extension is added onto jade-out. -V variable This is equivalent to doing (define variable #t) except that this definition will take priority over any definition of variable in a style-sheet. -V variable=value This is equivalent to doing (define variable "value") except that this definition will take priority over any definition of variable in a style-sheet. -V (define variable value) This is equivalent to doing (define variable value) except that this definition will take priority over any definition of variable in a style-sheet. Note that you will probably have to use some es‐ caping mechanism for the spaces to get the entire scheme expres‐ sion parsed as one cmdline argument. -wtype Control warnings and errors. Multiple -w options are allowed. The following values of type enable warnings: xml Warn about constructs that are not allowed by XML. mixed Warn about mixed content models that do not allow #pcdata anywhere. sgmldecl Warn about various dubious constructions in the SGML dec‐ laration. should Warn about various recommendations made in ISO 8879 that the document does not comply with. (Recommendations are expressed with ``should'', as distinct from requirements which are usually expressed with ``shall''.) default Warn about defaulted references. duplicate Warn about duplicate entity declarations. undefined Warn about undefined elements: elements used in the DTD but not defined. unclosed Warn about unclosed start and end-tags. empty Warn about empty start and end-tags. net Warn about net-enabling start-tags and null end-tags. min-tag Warn about minimized start and end-tags. Equivalent to combination of unclosed, empty and net warnings. unused-map Warn about unused short reference maps: maps that are declared with a short reference mapping declaration but never used in a short reference use declaration in the DTD. unused-param Warn about parameter entities that are defined but not used in a DTD. Unused internal parameter entities whose text is INCLUDE or IGNORE won't get the warning. notation-sysid Warn about notations for which no system identifier could be generated. all Warn about conditions that should usually be avoided (in the opinion of the author). Equivalent to: mixed, should, default, un‐ defined, sgmldecl, unused-map, unused-param, empty and unclosed. A warning can be disabled by using its name prefixed with no-. Thus -wall -wno-duplicate will enable all warnings except those about duplicate entity declarations. The following values for warning_type disable errors: no-idref Do not give an error for an ID reference value which no element has as its ID. The effect will be as if each attribute de‐ clared as an ID reference value had been declared as a name. no-significant Do not give an error when a character that is not a significant character in the reference concrete syntax occurs in a literal in the SGML declaration. This may be useful in conjunction with certain buggy test suites. no-valid Do not require the document to be type-valid. This has the effect of changing the SGML declaration to specify VALIDITY NOASSERT and IMPLYDEF ATTLIST YES ELEMENT YES. An option of -wvalid has the effect of changing the SGML declaration to specify VALIDITY TYPE and IMPLYDEF ATTLIST NO ELEMENT NO. If neither -wvalid nor -wno-valid are specified, then the VALIDITY and IMPLY‐ DEF specified in the SGML declaration will be used. ENVIRONMENT OpenJade ignores the SP_CHARSET_FIXED and SP_SYSTEM_CHARSET environment variables and always uses Unicode as its internal character set, as if SP_CHARSET_FIXED was 1 and SP_SYSTEM_CHARSET was unset. Thus only the SP_ENCODING environment variable is relevant to OpenJade's handling of character sets. OPENJADE EXTENSIONS The following external procedures are available. These external proce‐ dures are defined by a prototype in the same manner as in the standard. To use one of these external procedures, you must make use of the stan‐ dard external-procedure procedure, using a public identifier of "UNREGIS‐ TERED::James Clark//Procedure::name" where name is the name given here, typically by including the following in the DSSSL specification: (define name (external-procedure "UNREGISTERED::James Clark//Proce‐ dure::name")) Note that external-procedure returns #f if it doesn't know about the specified public identifier. You can use this to enable your DSSSL speci‐ fications to work gracefully with other implementations which do not sup‐ port these extensions. For external procedures added by the OpenJade team, use a public identi‐ fier of the form "UNREGISTERED::OpenJade//Procedure::name". An easy way to get access to all external procedures is to use the style specification dsssl/extensions.dsl#procedures. The file dsssl/exten‐ sions.dsl also contains style specifications which make the nonstandard flow object classes and inherited characteristics supported by the back‐ ends available in a convenient way. Debugging (debug obj) Generates a message including the value of obj and then returns obj. Simple-page-sequence header/footer control (if-first-page sosofo1 sosofo2) This can be used only in the specification of the value of one of the header/footer characteristics of simple-page-sequence. It returns a soso‐ fo that will display as sosofo1 if the page is the first page of the sim‐ ple-page-sequence and as sosofo2 otherwise. (if-front-page sosofo1 sosofo2) This can be used only in the specification of the value of one of the header/footer characteristics of simple-page-sequence. It returns a soso‐ fo that will display as sosofo1 if the page is a front (ie recto, odd-numbered) page and as sosofo2 if it is a back (ie verso, even-num‐ bered) page. Numbering (all-element-number) (all-element-number osnl) This is the same as element-number except it counts elements with any generic identifier. If osnl is not an element returns #f, otherwise re‐ turns 1 plus the number of elements that started before osnl. This pro‐ vides an efficient way of creating a unique identifier for any element in a document. External entity access (read-entity string) This returns a string containing the contents of the external entity with system identifier string. This should be used only for textual entities (CDATA and SDATA), and not for binary entities (NDATA). POSIX locale access (language lang country) This procedure returns an object of type language, if the system supports the specified language. lang is a string or symbol giving the two letter language code. country is a string or symbol giving the two letter coun‐ try code. This procedure uses POSIX locales. It is an OpenJade addition. It is not supported on all operating systems. Extended standard procedures (sgml-parse sysid #!key active: parent: architecture:) This allows you to specify an SGML architecture with respect to which the document should be parsed. It is an OpenJade addition. (expt q k) This allows you to raise a quantity to an integral power. It is an Open‐ Jade addition. LIMITATIONS This section describes the limitations of the front-end (the general-pur‐ pose DSSSL engine); each backend also has its own limitations. openjade doesn't allow internal definitions at the beginning of bodies and the (test => recipient) variant of cond clauses. openjade supports only a single, fixed grove plan which comprises the following modules: * baseabs * prlgabs0 * prlgabs1 * instabs * basesds0 * instsds0 * subdcabs It doesn't implement the following parts of SDQL: HyTime support, auxil‐ iary parsing, node regular expressions. Query rules, sosofo synchronization, indirect sosofos, reference values, decoration areas and font properties are not supported. Note that only inherited characteristics that are applicable to some sup‐ ported flow object can be specified. Character/glyph handling It only supports a single pre-defined character repertoire. A character name of the form U-XXXX where XXXX are four upper-case hexadecimal dig‐ its, is recognized as referring to the Unicode character with that code. For many characters, it is also possible to use the ISO/IEC 10646 name in lower-case with words separated by hyphens. Some common SDATA entity names from the ISO entity sets are recognized and mapped to characters. In addition an SDATA entity name of the form U-XXXX, where XXXX are four upper-case hexadecimal digits, is mapped to the Unicode character with that code. OpenJade now supports the standard-chars, map-sdata-entity, add-name-chars, add-separator-chars and char-repertoire declaration ele‐ ment forms, allowing a style-sheet to define additional character names, sdata entity mappings, name characters (i.e. characters allowed in iden‐ tifiers) and separator characters. Currently the only recognized charac‐ ter repertoire is the built-in repertoire. It has the public identifier "UNREGISTERED::OpenJade//Character Repertoire::OpenJade". Validation Several things that it would be desirable to have checked aren't checked: * When the allowed value of an inherited characteristic is a symbol, OpenJade checks only that the value is a symbol that is allowed as the value of some characteristic; #t and #f are treated as a special kind of symbol in this case. * OpenJade doesn't check whether a flow object is occurring in a context where it is allowed. * OpenJade does not prevent flow objects being attached to the principal port of a flow object when the flow object shouldn't have a principal port. * Most type-checking is done at run-time not compile-time. * OpenJade does not check for non-inherited characteristics that are re‐ quired to be specified. * It doesn't check that optional features that have been used were de‐ clared in the features form. Other limitations The following primitives are just stubs: char-script-case Always returns last argument. address-visited? Always returns #f. EXAMPLES Given an SGML file file.sgml, use the stylesheet file.dsl and publish as an rtf file. openjade -t rtf file.sgml Using a different stylesheet: openjade -t rtf -d docbook.dsl file.sgml Using the print style specification contained within the stylesheet openjade -t rtf -d docbook.dsl#print file.sgml And use the html specification within the style sheet to convert to html openjade -t sgml -i html -d docbook.dsl#html file.sgml SEE ALSO onsgmls(1) AUTHORS James Clark, Ian Castle<EMAIL_ADDRESS>OpenJade January 2002 OPENJADE(1)


Collection Flooding
The Flooding collection contains manually curated, key datasets related to flooding in the UK.
Flood warning
This record is for Approval for Access product AfA136. Flood Warnings are provided by the constant monitoring of stations and forecasting flooding from rivers or the sea
View datasetFlood defences
This record is for Approval for Access (AfA) product AfA006. This dataset shows, flood defences protecting against river floods with a 1 per cent (1 in 100) chance of happening each year
View datasetFlood map (England)
Flood Map shows the areas across England that could be affected by flooding from rivers or the sea. It also shows flood defences and the areas that benefit from them.
View datasetFlood map (Wales)
Flood Map shows the areas across Wales that could be affected by flooding from rivers or the sea. It also shows flood defences and the areas that benefit from them.
View dataset


We have so far set up
active gardens
which produce
kg vegetables /month
and save
kg c02 in food transports
(up to 2m2)
Your very small balcony or indoor space
You can always grow something.
Most common here is either to grow herbs, microgreens or act as part of our nursery.
(2 - 100m2)
Your rooftop or normal balcony
Common setups here include grow boxes and self watering systems. This is for when you want to produce part of your own food.
(100m2 and above)
A whole building of integrated systems
Usually involves a mix between growing boxes, rain collection, self watering, compost, and aquaponic (fish growing) systems.
Our nursery lets us set up a garden quick and easy.
These are the crops currently growing in the above gardens.
The complete system below starts at a total cost of
The max depends on your space, needs and own expertise level.
We make it happen in four steps:
As us anything.


time_series_transform.stock_transform.stock_engine package¶
Submodules¶
time_series_transform.stock_transform.stock_engine.engine_interface module¶
-
class
time_series_transform.stock_transform.stock_engine.engine_interface.
engine_interface
[source]¶ Bases:
object
Interface of the stock API engine
-
abstract
getAdditionalInfo
()[source]¶ Additional information fetched from the selected stock
- Returns
dictionary of additional information, e.g. company information
- Return type
additional data
-
abstract
getHistoricalByPeriod
(period)[source]¶ get historical data by period
- Parameters
period (str) – period of the stock data valid input sample: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
- Returns
- Return type
stock data
-
abstract


Readings
Week One
In the readings this week, What Screens Want by Frank Chimero and What is Code?, the authors grapple with complex questions using rhetoric intended to be accessible to even the most inexperienced audiences. Laying out their explanations with plenty of white space, illustration, metaphor, and humor, each uses his article as a platform to visually manifest their own ideologies/capabilities through design. Business Week’s creative team was clever in their use of color, interaction, meme culture, and animation to engage readers in what could have been a much more dry and daunting 38,000 word feature.
Chimero and Ford are both cautious not to scare off their readers too quickly—crafting #relatable introductions and guiding us gently through their respective lines of reasoning. Ford made me feel incrementally more prepared for this class, and I am fully on board with the idea that as a general public, we should probably be more literate about the things we are so addicted to. His insights into ‘coder culture’ gave me a better picture of the industry, and I appreciated his attention to the gender discrepancies, but there were moments where it felt like he was defining the “typical” coder in ways that left large groups of people out.
I found Chimero’s logic compelling and his suggestions legitimate through most of the essay, until he introduced the ‘Map’ where things got a bit muddled. While his recognition of the urgent inequality and imbalance of power inherent in the world wide web and its interfaces is totally precedented, I didn’t feel like he was able to offer any solutions (other than ‘we have to build it’), making the end of the piece feel quite hollow. He did prompt me to question some of the spaces I've always seen as 'neutral.'
Week Two
Both readings—Vernacular Web 1 by Olia Lialina and Jodi’s Infrastructure by Alexander Galloway—were helpful as jumping off points for project 2. Vernacular Web felt like a trip through time. Tracing through conventions of the web since its inception, Olia made clear that visual metaphor was as important to early pioneers of the World Wide Web as it was to designers of early graphic interfaces. The “Under Construction Sign” and textured, photographic backgrounds oriented amateurs in a familiar space with recognizable elements—but they were certainly not asking “what screens want” out of design yet. When Olia says, “it was the web of the indigenous… or the barbarians,” she’s pointing to the fact that there are two very different ways of reflecting on the culture of this “era” of the internet.
Those who think it “barbaric” are colonizers of sorts, imposing their own ideologies onto a space they have no claim to… I’ve always thought of early web design as ugly and almost laughable, but perhaps that opinion is worth reconsideration in light of this theory. I was inspired by the many-to-many spirit of the early web, which has been lost to commercialization, and think it’s worth our time to try to bring some of that back. The broken links were frustrating. Otherwise, the format of this article suited the author’s intentions, but—perhaps unintentionally—it manifested the shortcomings of the very features it described. I would love to see similar pieces dedicated to the 90’s, 00’s and beyond, as the preservation of internet aesthetics is crucial to thinking about where we go next.
Jodi’s Infrastructure acted as an introduction to a form of art that exists not just online, but within the internet browser, using its infrastructure as a medium. I always find it interesting to think about the relationship between traditional, physical pieces of art and emerging digital art, like Jodi’s. The former is the world’s most lucrative commodity good, while the latter functions in the realm of media and communication rather than just in the realm of mere creative production—the work within is not commodified, but instead self-referentially focuses on digitality and only exists in a digital space. Raising questions similar to those raised in the 70’s at the onset of Performance art, Galloway and the art of code insist that we expand existing conceptualizations of art.
Week Three
Both readings this week were helpful as jumping off points for project 2. The Vernacular Webfelt like a trip through time. Tracing through conventions of the web since its inception, Olia made clear that visual metaphor was as important to early pioneers of the World Wide Web as it was to the creators of early graphic interfaces (as discussed in Chimero's essay.) The “Under Construction Sign” and textured/photographic backgrounds oriented amateurs in a familiar space with recognizable elements.
When Olia says, “it was the web of the indigenous… or the barbarians,” she raises the idea that there are two very different ways of reflecting on the culture of this “era” of the internet. Those who think it “barbaric” are colonizers of sorts, imposing their own ideologies onto a space they have no claim to… I’ve always thought of early web design as ugly and almost laughable, but perhaps that opinion is worth reconsideration. I was inspired by the many-to-many spirit of the early web, which has been lost to commercialization, and think it’s worth our time to try to bring some of that back.
Jodi’s Infrastructure acted as an introduction to a form of art that exists not just online, but within the internet browser, using its infrastructure as a medium. I always find it interesting to think about the relationship between traditional, physical pieces of art and emerging digital art, like Jodi’s. The former is the world’s most lucrative commodity good, while the latter functions in the realm of media and communication rather than just in the realm of mere creative production—the work within is not commodified.
Week Four
Both readings this week were helpful as jumping off points for project 2. The Vernacular Webfelt like a trip through time. Tracing through conventions of the web since its inception, Olia made clear that visual metaphor was as important to early pioneers of the World Wide Web as it was to the creators of early graphic interfaces (as discussed in Chimero's essay.) The “Under Construction Sign” and textured/photographic backgrounds oriented amateurs in a familiar space with recognizable elements.
When Olia says, “it was the web of the indigenous… or the barbarians,” she raises the idea that there are two very different ways of reflecting on the culture of this “era” of the internet. Those who think it “barbaric” are colonizers of sorts, imposing their own ideologies onto a space they have no claim to… I’ve always thought of early web design as ugly and almost laughable, but perhaps that opinion is worth reconsideration. I was inspired by the many-to-many spirit of the early web, which has been lost to commercialization, and think it’s worth our time to try to bring some of that back.
Jodi’s Infrastructure acted as an introduction to a form of art that exists not just online, but within the internet browser, using its infrastructure as a medium. I always find it interesting to think about the relationship between traditional, physical pieces of art and emerging digital art, like Jodi’s. The former is the world’s most lucrative commodity good, while the latter functions in the realm of media and communication.


How applying clickbait and SEO techniques to your data can make it more discoverable
Jo Cook | Data Discovery Lead | Astun Technology
Who is this "Astun Technology" of which you speak?
Astun Technology was founded in 2006. We're based in Epsom, but our 25-ish staff are spread across Europe. We do spatial and data "stuff", based on an open source technology stack.
...and who are you?
Hi I'm Jo 👋
I've worked at Astun for over 10 years and lead on data discovery (metadata etc). I'm mad keen on problem solving and acting as an enabler. I also do "stuff" with OSGeo and the AGI.
Today's Problem
People need to find data
Metadata helps, but it's hard!
It's all about search engines
The Solution
Help people create metadata
Help search engines understand it
Get the dataset to appear high up in search results
Helping people create metadata
"Quality metadata is key to making data discoverable"
Some metadata elements can be easily derived from the dataset
We need help to derive some elements such as human-readable titles and descriptions
Auto-Summarise A deterministic river temperature model to prioritise management of riparian woodlands to reduce summer maximum river temperatures and a riparian woodland prioritisation score that looks to maximise the benefits of Riparian tree planting for protecting Scotland’s rivers from the adverse effects of climate change.
Help search engines understand your data
"I just go straight to Google"
Metadata can be mapped to machine-readable structured data so that search engines use the elements in the search results
Getting your data to appear high up in search results
Quick wins (aka clickbait)
Ensure that the title and abstract are present and follow basic SEO guidelines for length and language
Ensure you don't have metadata records with duplicate titles
Fix broken links
Feedback
Web analytics, Google trends, search statistics can provide useful insights into who's using your data
Give people the chance to submit feedback (good or bad)


In this example, we rely completely on Replot's smart defaults - simply plug in the data - and allow Replot to do the rest. We get a beautiful interactive network chart with just a few lines of code.
The map can be displayed in custom dimensions using the height and width props.
Link color can be customized using the lineColor prop.
Link opacity can be customized using the lineOpacity prop.
Link width can be customized using the lineWidth prop.
Link width can be weighted using the weightedLinks and linkKey props. If weightedLinks is specified, but linkKey is not, link width will be weighted by how many times the same link appears in the data.
Weighted links can be displayed in a custom range of width using the lineWidth and maxLineWidth props.
Nodes can be colored by groups using the nodes, nodeKey, and groupKey props.
Nodes can be colored with a custom palette using the color prop.
Node radius can be customized using the nodeRadius prop.
Node radius can be weighted using the nodes, nodeKey, and nodeWeightKey props.
Weighted nodes can be displayed in a custom range of radius using the nodeRadius and maxRadius props.
Node labels can be switched on or off using the showLabels prop.
Node labels can be displayed in a custom color using the labelColor prop.
Node labels can display custom contents using the the nodes, nodeKey, and labelKey props.
Density of nodes can be customized using the attractionFactor prop.
The tooltip color can be switched between light and dark using the tooltipColor prop.
The tooltip can be switched on or off using the tooltip prop.
The tooltip can display custom contents using the tooltipContent prop.


Clang's C++ Compatibility
- Introduction
- Variable-length arrays
- Initialization of non-integral static const data members within a class definition
- Unqualified lookup in templates
- Unqualified lookup into dependent bases of class templates
- Templates with no valid instantiations
- Default initialization of const variable of a class type requires user-defined default constructor
Introduction
Clang strives to strictly conform to the C++ standard. That means it will reject invalid C++ code that another compiler may accept. This page helps you decide whether a Clang error message means a C++-conformance bug in your code and how you can fix it.
Variable-length arrays
GCC allows an array's size to be determined at run time. This, however, is not standard C++. Furthermore, it is a potential security hole as an incorrect array size may overflow the stack. If Clang tells you "variable length arrays are not permitted in C++", here are some ways in which you can fix it:
- replace it with a fixed-size array if you can determine a reasonable upper bound at compile time; sometimes this is as simple as changing int size = ...; to const int size = ...; (if the definition of size is a compile-time integral constant);
- use an std::string instead of a char [];
- use std::vector or some other suitable container type; or
- allocate the array on the heap instead using new Type[] - just remember to delete[] it.
Initialization of non-integral static const data members within a class definition
The following code is ill-formed in C++'03:class SomeClass { public: static const double SomeConstant = 0.5; }; const double SomeClass::SomeConstant;Clang errors with something similar to:
.../your_file.h:42:42: error: 'SomeConstant' can only be initialized if it is a static const integral data member static const double SomeConstant = 0.5; ^ ~~~Only integral constant expressions are allowed as initializers within the class definition. See C++'03 [class.static.data] p4 for the details of this restriction. The fix here is straightforward: move the initializer to the definition of the static data member, which must exist outside of the class definition:
class SomeClass { public: static const double SomeConstant; }; const double SomeClass::SomeConstant = 0.5;Note that the forthcoming C++0x standard will allow this.
Unqualified lookup in templates
Some versions of GCC accept the following invalid code:template <typename T> struct Foo { void Work(T x) { func(x); } }; ... void func(int x); ... template struct Foo<int>; // or anything else that instantiates Foo<int>::WorkThe standard says that unqualified names like func are looked up when the template is defined, not when it's instantiated. Since void func(int) was not declared yet when Foo was defined, it's not considered. The fix is usually to declare func before Foo.
This is complicated by argument-dependent lookup (ADL), which is done when unqualified names are called as functions, like func(x) above. The standard says that ADL is performed in both places if any of the arguments are type-dependent, like x is in this example. However, ADL does nothing for builtin types like int, so the example is still invalid. See [basic.lookup.argdep] for more information.
Unqualified lookup into dependent bases of class templates
Some versions of GCC accept the following invalid code:template <typename T> struct Base { void DoThis(T x) {} static void DoThat(T x) {} }; template <typename T> struct Derived : public Base<T> { void Work(T x) { DoThis(x); // Invalid! DoThat(x); // Invalid! } };Clang correctly rejects it with the following errors (when Derived is eventually instantiated):
my_file.cpp:8:5: error: use of undeclared identifier 'DoThis' DoThis(x); ^ this-> my_file.cpp:2:8: note: must qualify identifier to find this declaration in dependent base class void DoThis(T x) {} ^ my_file.cpp:9:5: error: use of undeclared identifier 'DoThat' DoThat(x); ^ this-> my_file.cpp:3:15: note: must qualify identifier to find this declaration in dependent base class static void DoThat(T x) {}Like we said above, unqualified names like DoThis and DoThat are looked up when the template Derived is defined, not when it's instantiated. When we look up a name used in a class, we usually look into the base classes. However, we can't look into the base class Base<T> because its type depends on the template argument T, so the standard says we should just ignore it. See [temp.dep]p3 for details.
The fix, as Clang tells you, is to tell the compiler that we want a class member by prefixing the calls with this->:
void Work(T x) { this->DoThis(x); this->DoThat(x); }Alternatively, you can tell the compiler exactly where to look:
void Work(T x) { Base<T>::DoThis(x); Base<T>::DoThat(x); }This works whether the methods are static or not, but be careful: if DoThis is virtual, calling it this way will bypass virtual dispatch!
Templates with no valid instantiations
The following code contains a typo: the programmer meant init() but wrote innit() instead.template <class T> class Processor { ... void init(); ... }; ... template <class T> void process() { Processor<T> processor; processor.innit(); // <-- should be 'init()' ... }Unfortunately, we can't flag this mistake as soon as we see it: inside a template, we're not allowed to make assumptions about "dependent types" like Processor<T>. Suppose that later on in this file the programmer adds an explicit specialization of Processor, like so:
template <> class Processor<char*> { void innit(); };Now the program will work — as long as the programmer only ever instantiates process() with T = char*! This is why it's hard, and sometimes impossible, to diagnose mistakes in a template definition before it's instantiated.
The standard says that a template with no valid instantiations is ill-formed. Clang tries to do as much checking as possible at definition-time instead of instantiation-time: not only does this produce clearer diagnostics, but it also substantially improves compile times when using pre-compiled headers. The downside to this philosophy is that Clang sometimes fails to process files because they contain broken templates that are no longer used. The solution is simple: since the code is unused, just remove it.
Default initialization of const variable of a class type requires user-defined default constructor
If a class or struct has no user-defined default constructor, C++ doesn't allow you to default construct a const instance of it like this ([dcl.init], p9):class Foo { public: // The compiler-supplied default constructor works fine, so we // don't bother with defining one. ... }; void Bar() { const Foo foo; // Error! ... }To fix this, you can define a default constructor for the class:
class Foo { public: Foo() {} ... }; void Bar() { const Foo foo; // Now the compiler is happy. ... }


;; title = "Page not found (404)" url = "/404" layout = "default" description = "Oops!" hidden = 0 meta_title = "Page not found (404)" meta_description = "Page not found (404)" robot_index = "index" robot_follow = "follow" == {##}
We're sorry, but something went wrong and the page cannot be displayed.


| Package | Description |
|---|---|
| org.myrobotlab.control | |
| org.myrobotlab.framework | |
| org.myrobotlab.service | |
| org.myrobotlab.service.interfaces |
| Modifier and Type | Method and Description |
|---|---|
ServiceInterface |
RuntimeGUI.registered(Service sw) |
ServiceInterface |
RuntimeGUI.released(Service sw) |
| Modifier and Type | Class and Description |
|---|---|
class |
Service
Service is the base of the MyRobotLab Service Oriented Architecture.
|
| Modifier and Type | Field and Description |
|---|---|
java.util.HashMap<java.lang.String,ServiceInterface> |
ServiceEnvironment.serviceDirectory |
| Modifier and Type | Method and Description |
|---|---|
ServiceInterface |
Service.createPeer(java.lang.String reservedKey) |
ServiceInterface |
Service.createPeer(java.lang.String reservedKey,
java.lang.String defaultType) |
static ServiceInterface |
Service.createRootReserved(java.lang.String key)
Create the reserved peer service if it has not already been created
|
ServiceInterface |
Service.startPeer(java.lang.String reservedKey) |
ServiceInterface |
Service.startPeer(java.lang.String reservedKey,
java.lang.String defaultType) |
| Modifier and Type | Class and Description |
|---|---|
class |
_TemplateService |
class |
Adafruit16CServoDriver
AdaFruit Motor Shield Controller Service
|
class |
AdafruitMotorShield
AdaFruit Motor Shield Controller Service
|
class |
Agent |
class |
Android |
class |
Arduino
Implementation of a Arduino Service connected to MRL through a serial port.
|
class |
Arduino2
Implementation of a Arduino2 Service connected to MRL through a serial port.
|
class |
ArduinoBT
Implementation of a Arduino Service connected to MRL through a serial port.
|
class |
Arm |
class |
AudioCapture |
class |
AudioFile |
class |
AWTRobot |
class |
BeagleBoardBlack |
class |
ChatBot |
class |
ChessGame |
class |
ChessGameManager |
class |
ChumbyBot |
class |
CleverBot |
class |
Clock |
class |
CloudConnector |
class |
Cortex |
class |
Cron |
class |
Drupal |
class |
EddieControlBoard |
class |
FaceTracking |
class |
GoogleAPI |
class |
GoogleSTT |
class |
GPS |
class |
Graphics |
class |
GUIService |
class |
Hadoop |
class |
Houston |
class |
HtmlFilter
A service that will either strip out html from input text or
wrap the input text in html tags.
|
class |
HTTPClient |
class |
Incubator |
class |
InMoov |
class |
InMoovArm |
class |
InMoovGestureCreator |
class |
InMoovHand |
class |
InMoovHead |
class |
InMoovTorso |
class |
InverseKinematics |
class |
IPCamera |
class |
JFugue |
class |
Joystick |
class |
Keyboard |
class |
LeapMotion2 |
class |
LIDAR |
class |
Log |
class |
Maestro |
class |
MagaBot |
class |
Mail |
class |
MindWave |
class |
Motor |
class |
MouthControl |
class |
MPU6050 |
class |
MQTT |
class |
MultiWii |
class |
MySQL |
class |
Netty |
class |
OculusRift
The OculusRift service for MyRobotLab.
|
class |
OpenCV |
class |
OpenNI |
class |
ParallelPort |
class |
PICAXE |
class |
PickToLight |
class |
PID |
class |
PID2 |
class |
Pingdar |
class |
Plantoid |
class |
PlayerStage |
class |
ProgramAB
Program AB service for MyRobotLab
Uses AIML 2.0 to create a ChatBot
This is a reboot of the Old AIML spec to be more 21st century.
|
class |
Propeller
Implementation of a Propeller Service connected to MRL through a serial port.
|
class |
Proxy
simple Java class which allows interaction of classes which can not be
instanciated on local platform
|
class |
Python |
class |
RasPi |
class |
RecorderPlayer |
class |
Red5 |
class |
RemoteAdapter |
class |
RobotPlatform |
class |
Roomba |
class |
ROS |
class |
Runtime
Runtime is responsible for the creation and removal of all Services and the
associated static registries It maintains state information regarding
possible & running local Services It maintains state information regarding
foreign Runtimes It is a singleton and should be the only service of Runtime
running in a process The host and registry maps are used in routing
communication to the appropriate service (be it local or remote) It will be
the first Service created It also wraps the real JVM Runtime object.
|
class |
Sabertooth |
class |
SEAR |
class |
Security |
class |
SensorMonitor |
class |
Serial |
class |
Servo |
class |
ServoOrchestrator |
class |
Shoutbox |
class |
Skype |
class |
SLAM
Reference : http://www.oursland.net/projects/fastslam/ - implementation and
online demo http://openslam.org/
|
class |
SLAMBad |
class |
SoccerGame |
class |
Solr
SolrService - MyRobotLab
This is an integration of Solr into MyRobotLab.
|
class |
SpeakerRecognition |
class |
Speech |
class |
SpeechRecognitionGoogle |
class |
Sphinx |
class |
Sprinkler |
class |
Stepper |
class |
Sweety |
class |
TesseractOCR |
class |
TestCatcher |
class |
TestThrower |
class |
TextTransform |
class |
ThingSpeak |
class |
TopCodes |
class |
Tracking |
class |
TweedleBot |
class |
Twitter |
class |
UltrasonicSensor |
class |
VideoStreamer |
class |
WebGUI |
class |
Wii |
class |
WiiBot |
class |
WiiDAR |
class |
WolframAlpha |
class |
XMPP |
| Modifier and Type | Method and Description |
|---|---|
static ServiceInterface |
Runtime.create(java.lang.String name,
java.lang.String type) |
static ServiceInterface |
Runtime.createAndStart(java.lang.String name,
java.lang.String type) |
static ServiceInterface |
Runtime.createService(java.lang.String name,
java.lang.String fullTypeName) |
static ServiceInterface |
Runtime.getService(java.lang.String name) |
static ServiceInterface |
Runtime.register(ServiceInterface s,
java.net.URI url)
FIXME - need Platform information (reference from within service ???
|
ServiceInterface |
Runtime.registered(ServiceInterface sw)
registration event
|
ServiceInterface |
Runtime.released(ServiceInterface sw)
release event
|
static ServiceInterface |
Runtime.start(java.lang.String name,
java.lang.String type) |
| Modifier and Type | Method and Description |
|---|---|
static java.util.HashMap<java.lang.String,ServiceInterface> |
Runtime.getRegistry() |
static java.util.List<ServiceInterface> |
Runtime.getServices() |
static java.util.ArrayList<ServiceInterface> |
Runtime.getServicesFromInterface(java.lang.Class<?> interfaze) |
| Modifier and Type | Method and Description |
|---|---|
ServiceGUI |
GUIService.createTabbedPanel(java.lang.String serviceName,
java.lang.String guiClass,
ServiceInterface sw)
attempts to create a new ServiceGUI and add it to the map
|
static ServiceInterface |
Runtime.register(ServiceInterface s,
java.net.URI url)
FIXME - need Platform information (reference from within service ???
|
ServiceInterface |
Runtime.registered(ServiceInterface sw)
registration event
|
void |
Python.registered(ServiceInterface s) |
void |
InMoov.registered(ServiceInterface sw)
Service registration event.
|
void |
Incubator.registered(ServiceInterface sw) |
ServiceInterface |
Runtime.released(ServiceInterface sw)
release event
|
| Modifier and Type | Class and Description |
|---|---|
class |
VideoSink |
class |
VideoSource |


Bored In School Right Now Inc HTML
Papa's Restaurants
Papa's Cupcakeria
Papa's Donuteria
Papa's Freeseria
Papa's Pizzaeria


WELCOME TO THE BATTLE
The game has been tested in Google Chrome and Safari (Mac and iOS 15), and works best in landscape (horizontal view) on mobile phones. Enter the same name, surname and phone number you used to submit your weapons.


|
Serial no. : 10758611
Patient : Aditya Singh
Age : 21
Gender : male
Examination of : Left Knee
View : AP
Grade : 3
Findings
- Moderate Osteoarthritis with moderate multiple osteophytes
- definite narrowing of joint space and some sclerosis
- Possible deformity of bone ends is seen
Comments
- "Moderate" stage of condition is present
- Coricosteroids may be recommended
- Do consult Doctor
|
19/11/2020 15:17:11
|


 It's not open-source, so I cannot provide it as part of the application. Your browser must support canvas (it likely does).
Start with the information you want to convey - you may get 'No bullets of length/all bullets over length' - this is fine to start.
Modernized award/annual review process; devoted 80hrs/engineered app--established AF-wide SOP/saved 3,500 man-hours annually
You can then begin to create substitutions by separating sections that can be substituted/reworded/omitted onto their own lines, and chaining options on the same line with pipes (|). You can also make certain blocks 'optional' by placing a trailing pipe with no option after it. Example:
Modernized|Overhauled|Streamlined
award|awd
/
annual|yearly
review
process|proc
;
devoted|dedicated
80hrs/
engineered|dev'd
app
--
established
AF-wide|total-force
SOP
/saved
3,500|3.5K|4K
hrs
annually|
As you begin to do this, Bulletpress will start chewing through every possible permutation of the bullet you wrote and begin spitting out bullets that meet the line-fill requirement (sorted by how close to the line they are). This is your brainstorming phase, so every idea is a good idea to start. Once your browser starts lagging because you have too many options, that's a good sign you should move to the next step.
Look at your top bullets and highlight the weakest portions of them. Remove those options entirely until you're left with around 10 or fewer outputs. Example:
Modernized|Overhauled
awd
/
annual|yearly
review
process|proc
;
devoted|dedicated
80hrs/
engineered|dev'd
app
--
established
AF-wide|total-force
SOP
/saved
3.5K|4K
hrs
Pruning just a few options leaves me with only 4 outputs:
- Modernized awd/annual review process; dedicated 80hrs/engineered app--established total-force SOP/saved 3.5K hrs
- Overhauled awd/annual review process; dedicated 80hrs/engineered app--established total-force SOP/saved 3.5K hrs
- Modernized awd/yearly review process; dedicated 80hrs/engineered app--established total-force SOP/saved 3.5K hrs
- Overhauled awd/yearly review process; dedicated 80hrs/engineered app--established total-force SOP/saved 3.5K hrs
First, retain all the information you entered, even if your remaining outputs don't use all of it. This will allow you to skip most of step 2 as you add information, strip information, adjust the impact, discover new approved abbreviations, etc. Second, now that you've got draft 1 of your bullet, jump back into step 2 and work on it to make a slightly stronger version. Bulletpress can't remove the amount a bullet will be iterated on, but it can make the time required to iterate on a bullet significantly less.


This component has inner state
The current value of innerValue is {{innerValue}}. You can change the inner state below:
innerValue


2.3 Huning down numbers
This section is optional but contains more examples of dplyr
and ggplot2
functions.
Previously, we find that the congestion at the airports is unlikely the cause of delays. Then, what else may explain the patterns of delays? Are the airlines partly responsible? Recall that earlier we observe that some airlines have longer delays than others for NYC-MSP flights. Let’s take a look at the overall average delays by carrier.
stat_carrier <- flights %>%
group_by(carrier) %>%
summarise(n_obs = n(),
dep_delay = mean(dep_delay, na.rm = TRUE),
arr_delay = mean(arr_delay, na.rm = TRUE)
) %>%
left_join(airlines, by="carrier") %>%
arrange(desc(n_obs))
stat_carrier %>% kable(digit=2)
| carrier | n_obs | dep_delay | arr_delay | name |
|---|---|---|---|---|
| UA | 58665 | 12.11 | 3.56 | United Air Lines Inc. |
| B6 | 54635 | 13.02 | 9.46 | JetBlue Airways |
| EV | 54173 | 19.96 | 15.80 | ExpressJet Airlines Inc. |
| DL | 48110 | 9.26 | 1.64 | Delta Air Lines Inc. |
| AA | 32729 | 8.59 | 0.36 | American Airlines Inc. |
| MQ | 26397 | 10.55 | 10.77 | Envoy Air |
| US | 20536 | 3.78 | 2.13 | US Airways Inc. |
| 9E | 18460 | 16.73 | 7.38 | Endeavor Air Inc. |
| WN | 12275 | 17.71 | 9.65 | Southwest Airlines Co. |
| VX | 5162 | 12.87 | 1.76 | Virgin America |
| FL | 3260 | 18.73 | 20.12 | AirTran Airways Corporation |
| AS | 714 | 5.80 | -9.93 | Alaska Airlines Inc. |
| F9 | 685 | 20.22 | 21.92 | Frontier Airlines Inc. |
| YV | 601 | 19.00 | 15.56 | Mesa Airlines Inc. |
| HA | 342 | 4.90 | -6.92 | Hawaiian Airlines Inc. |
| OO | 32 | 12.59 | 11.93 | SkyWest Airlines Inc. |
There could be some differences across carriers. However, the simple average of delays across various routes, days, and hours of flights may not be a good measure to compare the carriers. For example, some carriers may serve the routes and hours that tend to have more delays. Also, given that our dataset covers only the flights from New York City, the comparison may not be nationally representative since carriers use different airports around the country for their regional hubs.
For our purposes, let’s compare the average air time among carriers, while accounting for flight’s destination and timing. The differences in air time are not the same as the differences in delays, but they may indicate some efficiency difference among carriers.
Let’s first check how air time relates to flight distance.
flights %>%
filter (month == 1, day == 1, !is.na(air_time)) %>%
ggplot(aes(x = distance, y = air_time)) +
geom_point(alpha = 0.05) +
geom_smooth()
## `geom_smooth()` using method = 'loess'
air_time
and distance
show a general linear relationship. We can better account for this relationship if we calculate the average air time for each flight destination from New York City.
First, we will consider a simple approach to control for such average air time for each destination and compare the variation in air time among carriers. We can do this by fitting a linear regression model with fixed destination effects and comparing the residuals. This resembles the ANOVA for comparing the mean air times among carriers, but the fixed destination effects here difference out the average air time for each destination from the total variation.
# a copy of flights data
flights2 <- flights
# TRUE/FALSE vector showing whther air_time is not NA.
idx0 <- flights %>% with(!is.na(air_time))
flights2$res <- NA # prepare a column of residuals to be defined below
flights2$res[idx0] <- flights2 %>% # replace rows with idx0 = TRUE
filter(!is.na(air_time)) %>%
with(
lm( air_time ~ as.factor(dest))
# lm() estimates a linear model.
# "y ~ x"" is the formula for regressing y on x.
# as.factor() converts "dest" to a factor (categorical) class
# which is used as a set of dummy variables in the regression.
) %>%
residuals() # obtains residuals of the lm() object
stat_res <- flights2 %>%
group_by(carrier) %>%
summarise(
mean_res = mean(res, na.rm = TRUE), # mean residual by carrier
sd_res = sd(res, na.rm = TRUE)
)
left_join(stat_carrier, stat_res, by="carrier") %>% kable(digit=2)
| carrier | n_obs | dep_delay | arr_delay | name | mean_res | sd_res |
|---|---|---|---|---|---|---|
| UA | 58665 | 12.11 | 3.56 | United Air Lines Inc. | -0.87 | 14.59 |
| B6 | 54635 | 13.02 | 9.46 | JetBlue Airways | 0.28 | 11.55 |
| EV | 54173 | 19.96 | 15.80 | ExpressJet Airlines Inc. | -0.37 | 8.94 |
| DL | 48110 | 9.26 | 1.64 | Delta Air Lines Inc. | -0.20 | 12.32 |
| AA | 32729 | 8.59 | 0.36 | American Airlines Inc. | 0.68 | 13.86 |
| MQ | 26397 | 10.55 | 10.77 | Envoy Air | 0.45 | 8.87 |
| US | 20536 | 3.78 | 2.13 | US Airways Inc. | -0.42 | 9.43 |
| 9E | 18460 | 16.73 | 7.38 | Endeavor Air Inc. | 0.84 | 8.76 |
| WN | 12275 | 17.71 | 9.65 | Southwest Airlines Co. | 0.16 | 12.55 |
| VX | 5162 | 12.87 | 1.76 | Virgin America | 3.26 | 17.58 |
| FL | 3260 | 18.73 | 20.12 | AirTran Airways Corporation | 1.16 | 8.75 |
| AS | 714 | 5.80 | -9.93 | Alaska Airlines Inc. | -2.13 | 16.17 |
| F9 | 685 | 20.22 | 21.92 | Frontier Airlines Inc. | 3.12 | 15.16 |
| YV | 601 | 19.00 | 15.56 | Mesa Airlines Inc. | -0.05 | 7.06 |
| HA | 342 | 4.90 | -6.92 | Hawaiian Airlines Inc. | 5.64 | 20.69 |
| OO | 32 | 12.59 | 11.93 | SkyWest Airlines Inc. | 1.02 | 7.26 |
The differences in air time across carriers (“mean_res”) somewhat differ from the patterns of differences in the simple averages of delays (“dep_delay” and “arr_delay”). The patterns are different between “dep_delay” and “arr_delay” for that matter.
To some extent, it appears to make sense that the average air time is longer for low-cost carriers such as Virgin America, Frontier Airlines, and Hawaiian Airlines. The differences across other carriers, on the other hand, are small, compared to the standard deviations. To get a sense of whether these differences have any statistical significance, let’s use t-test to compare the mean residual between United Airlines and American Airlines.
# t-test comparing UA vs AA for the mean air time
flights2 %>%
with({
idx_UA <- carrier == "UA"
idx_AA <- carrier == "AA"
t.test(res[idx_UA], res[idx_AA])
})
##
## Welch Two Sample t-test
##
## data: res[idx_UA] and res[idx_AA]
## t = -15.722, df = 68826, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -1.741133 -1.355142
## sample estimates:
## mean of x mean of y
## -0.8689523 0.6791852
With a large number of observations, a seemingly small difference in the means often turns out to be a statistically significant difference.  The average difference of about 1.5 minute air time per flight appears very small.
In fact, we can do this sort of pair-wise comparison all at once using a regression. Using carrier fixed effects in addition to destination fixed effects, we can directly compare the mean effects across carriers. We will set United Airlines to be a reference of the carrier fixed effects, so that the fixed effect for United Airlines is set to zero (i.e., omitted category), from which the fixed effects of all other airlines are estimated.
flights2$carrier <- relevel(factor(flights2$carrier), ref="UA")
# reference level is United Airlines
flights2$carrier %>% table()
## .
## UA 9E AA AS B6 DL EV F9 FL HA MQ OO
## 58665 18460 32729 714 54635 48110 54173 685 3260 342 26397 32
## US VX WN YV
## 20536 5162 12275 601
flights2 %>%
with({
n_carrier <- unique(carrier) %>% length()
n_dest <- unique(dest) %>% length()
print(paste('There are', n_carrier, 'distinct carriers and',
n_dest,'distinct destinations in the data.' ))
})
## [1] "There are 16 distinct carriers and 105 distinct destinations in the data."
With 16 carriers and 105 destinations minus 2 reference levels for carriers and destinations, the total of 119 coefficients will be estimated for the fixed effects.
f1 <- flights2 %>%
with(
lm( air_time ~ as.factor(carrier) + as.factor(dest) )
# fixed effects for carriers and destinations
)
tidy(f1)[1:20,] # show the first 20 coefficients
## term estimate std.error statistic p.value
## 1 (Intercept)<PHONE_NUMBER> 0.75069658<PHONE_NUMBER> 0.000000e+00
## 2 as.factor(carrier)9E 1.8015498 0.12723996 14.1586788 1.702649e-45
## 3 as.factor(carrier)AA 1.9326712 0.09731105 19.8607572 1.002388e-87
## 4 as.factor(carrier)AS -1.9071536 0.49596319 -3.8453531 1.204017e-04
## 5 as.factor(carrier)B6 1.1808039 0.08495098 13.8998267 6.535025e-44
## 6 as.factor(carrier)DL 0.7531812 0.08722600 8.6348244 5.907432e-18
## 7 as.factor(carrier)EV 0.4174574 0.11044837 3.7796605 1.570702e-04
## 8 as.factor(carrier)F9 3.8891981 0.48090201 8.0872985 6.120836e-16
## 9 as.factor(carrier)FL 2.6434074 0.27600661 9.5773336 1.002386e-21
## 10 as.factor(carrier)HA 11.0125104 0.89821710 12.2604106 1.503557e-34
## 11 as.factor(carrier)MQ 1.4592669 0.11892133 12.2708590 1.321669e-34
## 12 as.factor(carrier)OO 1.8091432 2.21222472 0.8177936 4.134757e-01
## 13 as.factor(carrier)US 0.1319337 0.13826299 0.9542230 3.399715e-01
## 14 as.factor(carrier)VX 4.5298528 0.18441295 24.5636378 4.086448e-133
## 15 as.factor(carrier)WN 1.2226161 0.17520980 6.9780125 2.999500e-12
## 16 as.factor(carrier)YV 0.5167461 0.52737831 0.9798395 3.271661e-01
## 17 as.factor(dest)ACK -207.1011095 1.04478912 -198.2228803 0.000000e+00
## 18 as.factor(dest)ALB -216.6188634 0.95130943 -227.7059972 0.000000e+00
## 19 as.factor(dest)ANC<PHONE_NUMBER> 4.26930687 38.6799351 0.000000e+00
## 20 as.factor(dest)ATL -136.1282095 0.75641976 -179.9638460 0.000000e+00
# a function to clean up the coefficient table above
clean_lm_rlt <- function(f) {
# keep only rows for which column "term" contains "carrier" e.g., rows 2 to 16 above
rlt <- tidy(f) %>% filter(grepl("carrier",term))
# create column named carrier
rlt <- rlt %>% mutate(carrier = gsub('as.factor\\(carrier\\)','', term))
# drop column term
rlt <- rlt %>% select(-term)
# add columns of carrier, name, and n_obs from the stat_carrier data frame
stat_carrier %>%
select(carrier, name, n_obs) %>%
left_join(rlt, by="carrier")
}
lm_rlt1 <- clean_lm_rlt(f1)
lm_rlt1 %>% kable(digit=2)
| carrier | name | n_obs | estimate | std.error | statistic | p.value |
|---|---|---|---|---|---|---|
| UA | United Air Lines Inc. | 58665 | NA | NA | NA | NA |
| B6 | JetBlue Airways | 54635 | 1.18 | 0.08 | 13.90 | 0.00 |
| EV | ExpressJet Airlines Inc. | 54173 | 0.42 | 0.11 | 3.78 | 0.00 |
| DL | Delta Air Lines Inc. | 48110 | 0.75 | 0.09 | 8.63 | 0.00 |
| AA | American Airlines Inc. | 32729 | 1.93 | 0.10 | 19.86 | 0.00 |
| MQ | Envoy Air | 26397 | 1.46 | 0.12 | 12.27 | 0.00 |
| US | US Airways Inc. | 20536 | 0.13 | 0.14 | 0.95 | 0.34 |
| 9E | Endeavor Air Inc. | 18460 | 1.80 | 0.13 | 14.16 | 0.00 |
| WN | Southwest Airlines Co. | 12275 | 1.22 | 0.18 | 6.98 | 0.00 |
| VX | Virgin America | 5162 | 4.53 | 0.18 | 24.56 | 0.00 |
| FL | AirTran Airways Corporation | 3260 | 2.64 | 0.28 | 9.58 | 0.00 |
| AS | Alaska Airlines Inc. | 714 | -1.91 | 0.50 | -3.85 | 0.00 |
| F9 | Frontier Airlines Inc. | 685 | 3.89 | 0.48 | 8.09 | 0.00 |
| YV | Mesa Airlines Inc. | 601 | 0.52 | 0.53 | 0.98 | 0.33 |
| HA | Hawaiian Airlines Inc. | 342 | 11.01 | 0.90 | 12.26 | 0.00 |
| OO | SkyWest Airlines Inc. | 32 | 1.81 | 2.21 | 0.82 | 0.41 |
The “estimate” column shows the mean difference in air time with United Airlines, accounting for the flight destination. The estimate tends to be more precise (i.e., smaller standard errors) for carriers with a larger number of observations. This time, we find that Virgin America, Air Tran, Frontier Airlines, and Hawaiian Airlines tend to show particularly longer air times than United Airlines.
Next, let’s take a step further to account for flight timing as well. We can do this by adding fixed effects for flight dates and hours.
flights2 <- flights2 %>%
mutate( date_id = month*100 + day )
flights2$date_id %>% unique() %>% length()
## [1] 365
f2 <- flights2 %>%
with(
lm( air_time ~ as.factor(carrier) + as.factor(dest) +
+ as.factor(date_id) + as.factor(hour) )
)
lm_rlt2 <- clean_lm_rlt(f2)
lm_rlt2 %>% kable(digit=2)
| carrier | name | n_obs | estimate | std.error | statistic | p.value |
|---|---|---|---|---|---|---|
| UA | United Air Lines Inc. | 58665 | NA | NA | NA | NA |
| B6 | JetBlue Airways | 54635 | 1.60 | 0.07 | 22.50 | 0.00 |
| EV | ExpressJet Airlines Inc. | 54173 | 0.61 | 0.09 | 6.67 | 0.00 |
| DL | Delta Air Lines Inc. | 48110 | 0.95 | 0.07 | 13.03 | 0.00 |
| AA | American Airlines Inc. | 32729 | 1.84 | 0.08 | 22.81 | 0.00 |
| MQ | Envoy Air | 26397 | 1.45 | 0.10 | 14.70 | 0.00 |
| US | US Airways Inc. | 20536 | 0.17 | 0.11 | 1.51 | 0.13 |
| 9E | Endeavor Air Inc. | 18460 | 1.57 | 0.11 | 14.72 | 0.00 |
| WN | Southwest Airlines Co. | 12275 | 1.14 | 0.15 | 7.82 | 0.00 |
| VX | Virgin America | 5162 | 4.85 | 0.15 | 31.57 | 0.00 |
| FL | AirTran Airways Corporation | 3260 | 2.19 | 0.23 | 9.58 | 0.00 |
| AS | Alaska Airlines Inc. | 714 | -2.55 | 0.41 | -6.21 | 0.00 |
| F9 | Frontier Airlines Inc. | 685 | 3.31 | 0.40 | 8.29 | 0.00 |
| YV | Mesa Airlines Inc. | 601 | 0.32 | 0.44 | 0.73 | 0.46 |
| HA | Hawaiian Airlines Inc. | 342 | 11.79 | 0.75 | 15.80 | 0.00 |
| OO | SkyWest Airlines Inc. | 32 | 7.63 | 1.83 | 4.17 | 0.00 |
lm_rlt2 %>% filter(carrier!='UA') %>%
ggplot(aes(x = carrier, y = estimate)) + geom_col() +
labs(title = "Mean Air Time Compared to United Airlines")
The results are similar to the previous linear mode except that this time SkyWest Airlines shows much longer air time.
Before wrapping up, our final model is a check for the robustness of the above results. We would like to replace the date and hour fixed effects in the previous model with date-hour fixed effects (i.e., the interaction between date and hour). We could add such fixed effects using time_hour
variable defined above. However, that would mean adding nearly 7,000 dummy variables to our linear regression, which is computationally too intensive.
To work around this issue, we approximate this estimation by pre-processing the dependent variable. Specifically, we calculate the average air time for each combination of time_hour
and dest
and define a new dependent variable by subtracting this average value from the original air time variable (i.e., the new variable is centered at zero-mean for each combination of time_hour
and dest
). Then, we estimate a linear model with carrier and destination fixed effects.
## Adding time_hour fixed effects is too computationally intensive
# f1 <- flights %>%
# with(
# lm( air_time ~ as.factor(carrier) + as.factor(dest) + as.factor(time_hour))
# )
unique(flights2$time_hour) %>% length() # 6,936 unique time_hour
## [1] 6936
flights2 <- flights2 %>%
group_by(dest, time_hour) %>%
mutate(
air_time_centered = air_time - mean(air_time, na.rm=TRUE)
)
f3 <- flights2 %>%
with(
lm( air_time_centered ~ as.factor(carrier) + as.factor(dest) )
)
lm_rlt3 <- clean_lm_rlt(f3)
lm_rlt3 %>% kable(digit=2) # Note: standard errors, t-stat, and p-val are incorrect
| carrier | name | n_obs | estimate | std.error | statistic | p.value |
|---|---|---|---|---|---|---|
| UA | United Air Lines Inc. | 58665 | NA | NA | NA | NA |
| B6 | JetBlue Airways | 54635 | 0.82 | 0.03 | 32.24 | 0.00 |
| EV | ExpressJet Airlines Inc. | 54173 | 0.88 | 0.03 | 26.50 | 0.00 |
| DL | Delta Air Lines Inc. | 48110 | 0.52 | 0.03 | 19.85 | 0.00 |
| AA | American Airlines Inc. | 32729 | 1.20 | 0.03 | 41.06 | 0.00 |
| MQ | Envoy Air | 26397 | 1.00 | 0.04 | 27.84 | 0.00 |
| US | US Airways Inc. | 20536 | -0.09 | 0.04 | -2.21 | 0.03 |
| 9E | Endeavor Air Inc. | 18460 | 1.27 | 0.04 | 33.07 | 0.00 |
| WN | Southwest Airlines Co. | 12275 | 1.30 | 0.05 | 24.70 | 0.00 |
| VX | Virgin America | 5162 | 3.47 | 0.06 | 62.59 | 0.00 |
| FL | AirTran Airways Corporation | 3260 | 1.78 | 0.08 | 21.48 | 0.00 |
| AS | Alaska Airlines Inc. | 714 | -2.86 | 0.15 | -19.15 | 0.00 |
| F9 | Frontier Airlines Inc. | 685 | 1.99 | 0.14 | 13.73 | 0.00 |
| YV | Mesa Airlines Inc. | 601 | 0.78 | 0.16 | 4.89 | 0.00 |
| HA | Hawaiian Airlines Inc. | 342 | 1.34 | 0.27 | 4.96 | 0.00 |
| OO | SkyWest Airlines Inc. | 32 | 3.50 | 0.67 | 5.26 | 0.00 |
lm_rlt3 %>% filter(carrier!='UA') %>%
ggplot(aes(x = carrier, y = estimate)) + geom_col() +
labs(title = "Mean Air Time Compared to United Airlines: Robustness Check")
The point estimates should be approximately close to what we would obtain if we regress air_time
on the fixed effects of carrier
, dest
, and time_hour
. However, the standard errors are not correctly displayed in the table because the centered variable has a smaller total variation compared to the original air_time
variable. (Correct standard errors can be obtained, for example, through a bootstrapping technique.)
Overall, we see again a tendency that lower-cost carriers like Sky West Airlines, Virgin America, Frontier Airlines, and Air Tran show particularly longer air time than United Airlines. Jet Blue Airways, another low-cost carrier, shows a less obvious difference from United Airlines, possibly suggesting that their operation focused on the East Cost is efficient for the flights departing from New York City. Hawaiian Airlines and Alaskan Airlines appear to be somewhat different from other carriers perhaps because they are more specialized in particular flight times and destinations compared to their rivals. In particular, the flights to Hawaii may have distinct delay patterns that are concentrated on certain date-hours of the peak vacation seasons.


Join the numbers and get to the 2048 tile!
Created by Gabriele Cirulli. Based on 1024 by Veewo Studio and conceptually similar to Threes by Asher Vollmer.


Thunder: Steven Adams still limited by knee injury
by Joe MussattoLOS ANGELES — Nerlens Noel was the Thunder's closing center Tuesday night in a 112-107 loss to the Lakers. Starting center Steven Adams sat on the bench.
"Obviously we're dealing with Steven's knee still," Thunder coach Billy Donovan said of the decision. "I don't want to say he's on a minutes restriction, but we're trying to be mindful and keep him in a range."
It wasn't obvious that Adams' left knee was still an issue. A left knee contusion forced Adams to sit three games: Oct. 30, Nov. 2 and Nov. 10. But Adams, including Tuesday, has started OKC's last four games.
He played 27 minutes against the Clippers on Monday, and 24 minutes against the Lakers on Tuesday.
Adams is averaging 26.3 minutes per game, down from 33.4 minutes last season. His scoring has dropped from 13.9 points per game to 7.8 points per game. Adams, a career 58.6 percent shooter, is shooting 50.6 percent from the floor this season.
Related Photos