Adl2/Adl2_Sample.cpp
This document describes the APIs (application programming interfaces) that can be used to access AMD-specific display driver functionality, such as those related to specific display devices.
Included in this document are definitions as well as the data structures used by each API.
Public functions are prefixed with "ADL_". The majority of the APIs are supported on 32-bit and 64-bit versions of Windows (XP and Vista) and Linux platforms.
Working code samples and snippets of the API source code files are also provided for reference purposes.
- Note:
- Although a number of header files are referenced in this document, only three are required and provoided with this SDK:
The three files should be placed in the same folder. A C/C++ Sample Application for Windows (XP, Vista and above); 32bit and 64bit
Visual Studio 2012 solution file "Adl2.sln" is included in ADL SDK
#if defined (LINUX)
#include "../../include/adl_sdk.h"
#include "../../include/customer/oem_structures.h"
#include <dlfcn.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#else
#include <windows.h>
#include <tchar.h>
#include "..\..\include\adl_sdk.h"
#endif
#include <stdio.h>
typedef int (*ADL_MAIN_CONTROL_CREATE )(ADL_MAIN_MALLOC_CALLBACK, int );
typedef int (*ADL_MAIN_CONTROL_DESTROY )();
typedef int (*ADL_ADAPTER_NUMBEROFADAPTERS_GET ) ( int* );
typedef int (*ADL2_MAIN_CONTROL_CREATE )(ADL_MAIN_MALLOC_CALLBACK, int, ADL_CONTEXT_HANDLE*);
typedef int (*ADL2_MAIN_CONTROL_DESTROY )( ADL_CONTEXT_HANDLE);
typedef int (*ADL2_ADAPTER_ACTIVE_GET ) (ADL_CONTEXT_HANDLE, int, int* );
typedef int (*ADL2_DISPLAY_MODES_GET )(ADL_CONTEXT_HANDLE, int iAdapterIndex, int iDisplayIndex, int* lpNumModes, ADLMode** lppModes);
ADL_MAIN_CONTROL_CREATE ADL_Main_Control_Create;
ADL_MAIN_CONTROL_DESTROY ADL_Main_Control_Destroy;
ADL_ADAPTER_NUMBEROFADAPTERS_GET ADL_Adapter_NumberOfAdapters_Get;
ADL2_MAIN_CONTROL_CREATE ADL2_Main_Control_Create;
ADL2_MAIN_CONTROL_DESTROY ADL2_Main_Control_Destroy;
ADL2_DISPLAY_MODES_GET ADL2_Display_Modes_Get;
ADL2_ADAPTER_ACTIVE_GET ADL2_Adapter_Active_Get;
void* __stdcall ADL_Main_Memory_Alloc ( int iSize )
{
void* lpBuffer = malloc ( iSize );
return lpBuffer;
}
void __stdcall ADL_Main_Memory_Free ( void* lpBuffer )
{
if ( NULL != lpBuffer )
{
free ( lpBuffer );
lpBuffer = NULL;
}
}
#if defined (LINUX)
void * GetProcAddress( void * pLibrary, const char * name)
{
return dlsym( pLibrary, name);
}
#endif
int InitADL ()
{
#if defined (LINUX)
void *hDLL;
#else
HINSTANCE hDLL;
#endif
#if defined (LINUX)
hDLL = dlopen( "libatiadlxx.so", RTLD_LAZY|RTLD_GLOBAL);
#else
hDLL = LoadLibrary("atiadlxx.dll");
if (hDLL == NULL)
hDLL = LoadLibrary("atiadlxy.dll");
#endif
if (NULL == hDLL)
{
printf("ADL library not found!\n");
return ADL_ERR;
}
ADL_Main_Control_Create = (ADL_MAIN_CONTROL_CREATE) GetProcAddress(hDLL,"ADL_Main_Control_Create");
ADL_Main_Control_Destroy = (ADL_MAIN_CONTROL_DESTROY) GetProcAddress(hDLL,"ADL_Main_Control_Destroy");
ADL_Adapter_NumberOfAdapters_Get = (ADL_ADAPTER_NUMBEROFADAPTERS_GET) GetProcAddress(hDLL,"ADL_Adapter_NumberOfAdapters_Get");
ADL2_Main_Control_Create = (ADL2_MAIN_CONTROL_CREATE) GetProcAddress(hDLL,"ADL2_Main_Control_Create");
ADL2_Main_Control_Destroy = (ADL2_MAIN_CONTROL_DESTROY) GetProcAddress(hDLL,"ADL2_Main_Control_Destroy");
ADL2_Display_Modes_Get = (ADL2_DISPLAY_MODES_GET) GetProcAddress(hDLL,"ADL2_Display_Modes_Get");
ADL2_Adapter_Active_Get = (ADL2_ADAPTER_ACTIVE_GET)GetProcAddress(hDLL, "ADL2_Adapter_Active_Get");
if (NULL == ADL_Main_Control_Create ||
NULL == ADL_Main_Control_Destroy ||
NULL == ADL_Adapter_NumberOfAdapters_Get ||
NULL == ADL2_Main_Control_Create ||
NULL == ADL2_Main_Control_Destroy ||
NULL == ADL2_Display_Modes_Get ||
NULL == ADL2_Adapter_Active_Get)
{
printf("ADL's API is missing!\n");
return ADL_ERR;
}
return ADL_OK;
}
int GetAdapterActiveStatus (int adapterId, int& active)
{
ADL_CONTEXT_HANDLE context = NULL;
active = 0;
if (ADL_OK != ADL2_Main_Control_Create (ADL_Main_Memory_Alloc, 1, &context))
{
printf ("Failed to initialize nested ADL2 context");
return ADL_ERR;
}
if (ADL_OK != ADL2_Adapter_Active_Get(context, adapterId , &active))
{
printf ("Failed to get adapter status");
}
if (ADL_OK != ADL2_Main_Control_Destroy (context))
{
printf ("Failed to destroy nested ADL2 context");
return ADL_ERR;
}
return ADL_OK;
}
int PrintAdapterInfo (int adapterId)
{
ADL_CONTEXT_HANDLE context = NULL;
if (ADL_OK != ADL2_Main_Control_Create (ADL_Main_Memory_Alloc, 1, &context))
{
printf ("Failed to initialize ADL2 context");
return ADL_ERR;
}
int active = 0;
if (ADL_OK == GetAdapterActiveStatus (adapterId, active))
{
printf ("*************************************************\n" );
printf ("Adapter %d is %s\n", adapterId, (active)?"active":"not active" );
if (active)
{
int numModes;
ADLMode* adlMode;
if (ADL_OK == ADL2_Display_Modes_Get (context, adapterId, -1, &numModes, &adlMode))
{
if (numModes == 1)
{
printf ("Adapter %d resolution is %d by %d\n", adapterId, adlMode->iXRes, adlMode->iYRes );
ADL_Main_Memory_Free (adlMode);
}
}
}
}
if (ADL_OK != ADL2_Main_Control_Destroy (context))
{
printf ("Failed to destroy ADL2 context");
return ADL_ERR;
}
return ADL_OK;
}
int main (int c,char* k[],char* s[])
{
if (ADL_OK != InitADL ())
{
return 0;
}
if ( ADL_OK != ADL_Main_Control_Create (ADL_Main_Memory_Alloc, 1) )
{
printf("ADL Initialization Error!\n");
return 0;
}
int iNumberAdapters;
if ( ADL_OK != ADL_Adapter_NumberOfAdapters_Get ( &iNumberAdapters ) )
{
printf("Cannot get the number of adapters!\n");
return 0;
}
for (int adapterId = 0; adapterId < iNumberAdapters; adapterId++ )
{
if (ADL_OK != PrintAdapterInfo (adapterId))
break;
}
if ( ADL_OK != ADL_Main_Control_Destroy ())
{
printf ("Failed to destroy ADL context");
}
return 0;
}


14 Jul 2020 Kostas Kloudas (@kkloudas)
With the rise of stream processing and real-time analytics as a critical tool for modern businesses, an increasing number of organizations build platforms with Apache Flink at their core and offer it internally as a service. Many talks with related topics from companies like Uber, Netflix and Alibaba in the latest editions of Flink Forward further illustrate this trend.
These platforms aim at simplifying application submission internally by lifting all the operational burden from the end user. To submit Flink applications, these platforms usually expose only a centralized or low-parallelism endpoint (e.g. a Web frontend) for application submission that we will call the Deployer.
One of the roadblocks that platform developers and maintainers often mention is that the Deployer can be a heavy resource consumer that is difficult to provision for. Provisioning for average load can lead to the Deployer service being overwhelmed with deployment requests (in the worst case, for all production applications in a short period of time), while planning based on top load leads to unnecessary costs. Building on this observation, Flink 1.11 introduces the Application Mode as a deployment option, which allows for a lightweight, more scalable application submission process that manages to spread more evenly the application deployment load across the nodes in the cluster.
In order to understand the problem and how the Application Mode solves it, we start by describing briefly the current status of application execution in Flink, before describing the architectural changes introduced by the new deployment mode and how to leverage them.
Application Execution in Flink
The execution of an application in Flink mainly involves three entities: the Client, the JobManager and the TaskManagers. The Client is responsible for submitting the application to the cluster, the JobManager is responsible for the necessary bookkeeping during execution, and the TaskManagers are the ones doing the actual computation. For more details please refer to Flink’s Architecture documentation page.
Current Deployment Modes
Before the introduction of the Application Mode in version 1.11, Flink allowed users to execute an application either on a Session or a Per-Job Cluster. The differences between the two have to do with the cluster lifecycle and the resource isolation guarantees they provide.
Session Mode
Session Mode assumes an already running cluster and uses the resources of that cluster to execute any submitted application. Applications executed in the same (session) cluster use, and consequently compete for, the same resources. This has the advantage that you do not pay the resource overhead of spinning up a full cluster for every submitted job. But, if one of the jobs misbehaves or brings down a TaskManager, then all jobs running on that TaskManager will be affected by the failure. Apart from a negative impact on the job that caused the failure, this implies a potential massive recovery process with all the restarting jobs accessing the file system concurrently and making it unavailable to other services. Additionally, having a single cluster running multiple jobs implies more load for the JobManager, which is responsible for the bookkeeping of all the jobs in the cluster. This mode is ideal for short jobs where startup latency is of high importance, e.g. interactive queries.
Per-Job Mode
In Per-Job Mode, the available cluster manager framework (e.g. YARN or Kubernetes) is used to spin up a Flink cluster for each submitted job, which is available to that job only. When the job finishes, the cluster is shut down and any lingering resources (e.g. files) are cleaned up. This mode allows for better resource isolation, as a misbehaving job cannot affect any other job. In addition, it spreads the load of bookkeeping across multiple entities, as each application has its own JobManager. Given the aforementioned resource isolation concerns of the Session Mode, users often opt for the Per-Job Mode for long-running jobs which are willing to accept some increase in startup latency in favor of resilience.
To summarize, in Session Mode, the cluster lifecycle is independent of any job running on the cluster and all jobs running on the cluster share its resources. The per-job mode chooses to pay the price of spinning up a cluster for every submitted job, in order to provide better resource isolation guarantees as the resources are not shared across jobs. In this case, the lifecycle of the cluster is bound to that of the job.
Application Submission
Flink application execution consists of two stages: pre-flight, when the users’ main()
method is called; and runtime, which is triggered as soon as the user code calls execute()
.
The main()
method constructs the user program using one of Flink’s APIs
(DataStream API, Table API, DataSet API). When the main()
method calls env.execute()
,
the user-defined pipeline is translated into a form that Flink’s runtime can understand,
called the job graph, and it is shipped to the cluster.
Despite their differences, both session and per-job modes execute the application’s main()
method, i.e. the pre-flight phase, on the client side.1
This is usually not a problem for individual users who already have all the dependencies of their jobs locally, and then submit their applications through a client running on their machine. But in the case of submission through a remote entity like the Deployer, this process includes:
-
downloading the application’s dependencies locally,
-
executing the main()method to extract the job graph,
-
ship the job graph and its dependencies to the cluster for execution and,
-
potentially, wait for the result.
This makes the Client a heavy resource consumer as it may need substantial network
bandwidth to download dependencies and ship binaries to the cluster, and CPU cycles to
execute the main()
method. This problem is even more pronounced as more users share
the same Client.
The figure above illustrates the two deployment modes using 3 applications depicted in red, blue and green. Each one has a parallelism of 3. The black rectangles represent different processes: TaskManagers, JobManagers and the Deployer; and we assume a single Deployer process in all scenarios. The colored triangles represent the load of the submission process, while the colored rectangles represent the load of the TaskManager and JobManager processes. As shown in the figure, the Deployer in both per-job and session mode share the same load. Their difference lies in the distribution of the tasks and the JobManager load. In the Session Mode, there is a single JobManager for all the jobs in the cluster while in the per-job mode, there is one for each job. In addition, tasks in Session Mode are assigned randomly to TaskManagers while in Per-Job Mode, each TaskManager can only have tasks of a single job.
Application Mode
The Application Mode builds on the above observations and tries to combine the resource
isolation of the per-job mode with a lightweight and scalable application submission
process. To achieve this, it creates a cluster per submitted application, but this
time, the main()
method of the application is executed on the JobManager.
Creating a cluster per application can be seen as creating a session cluster shared only among the jobs of a particular application and torn down when the application finishes. With this architecture, the Application Mode provides the same resource isolation and load balancing guarantees as the Per-Job Mode, but at the granularity of a whole application. This makes sense, as jobs belonging to the same application are expected to be correlated and treated as a unit.
Executing the main()
method on the JobManager allows saving the CPU cycles required
for extracting the job graph, but also the bandwidth required on the client for
downloading the dependencies locally and shipping the job graph and its dependencies
to the cluster. Furthermore, it spreads the network load more evenly, as there is one
JobManager per application. This is illustrated in the figure above, where we have the
same scenario as in the session and per-job deployment mode section, but this time
the client load has shifted to the JobManager of each application.
Note In the Application Mode, the main() method is executed on the cluster and not on the Client, as in the other modes. This may have implications for your code as, for example, any paths you register in your environment using the registerCachedFile() must be accessible by the JobManager of your application.
Compared to the Per-Job Mode, the Application Mode allows the submission of applications
consisting of multiple jobs. The order of job execution is not affected by the deployment
mode but by the call used to launch the job. Using the blocking execute()
method
establishes an order and will lead to the execution of the “next” job being postponed
until “this” job finishes. In contrast, the non-blocking executeAsync()
method will
immediately continue to submit the “next” job as soon as the current job is submitted.
Reducing Network Requirements
As described above, by executing the application’s main()
method on the JobManager,
the Application Mode manages to save a lot of the resources previously required during
job submission. But there is still room for improvement.
Focusing on YARN, which already supports all the optimizations mentioned here2, and
even with the Application Mode in place, the Client is still required to send the user
jar to the JobManager. In addition, for each application, the Client has to ship to
the cluster the “flink-dist” directory which contains the binaries of the framework
itself, including the flink-dist.jar
, lib/
and plugin/
directories. These two can
account for a substantial amount of bandwidth on the client side. Furthermore, shipping
the same flink-dist binaries on every submission is both a waste of bandwidth but also
of storage space which can be alleviated by simply allowing applications to share the
same binaries.
In Flink 1.11, we introduce options that allow the user to:
-
Specify a remote path to a directory where YARN can find the Flink distribution binaries, and
-
Specify a remote path where YARN can find the user jar.
For 1., we leverage YARN’s distributed cache and allow applications to share these binaries. So, if an application happens to find copies of Flink on the local storage of its TaskManager due to a previous application that was executed on the same TaskManager, it will not even have to download it internally.
Note Both optimizations are available to all deployment modes on YARN, and not only the Application Mode.
Example: Application Mode on Yarn
For a full description, please refer to the official Flink documentation and more specifically to the page that refers to your cluster management framework, e.g. YARN or Kubernetes. Here we will give some examples around YARN, where all the above features are available.
To launch an application in Application Mode, you can use:
./bin/flink run-application -t yarn-application ./MyApplication.jar
With this command, all configuration parameters, such as the path to a savepoint to
be used to bootstrap the application’s state or the required JobManager/TaskManager
memory sizes, can be specified by their configuration option, prefixed by -D
. For
a catalog of the available configuration options, please refer to Flink’s
configuration page.
As an example, the command to specify the memory sizes of the JobManager and the TaskManager would look like:
./bin/flink run-application -t yarn-application \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=4096m \
./MyApplication.jar
As discussed earlier, the above will make sure that your application’s main()
method
will be executed on the JobManager.
To further save the bandwidth of shipping the Flink distribution to the cluster, consider
pre-uploading the Flink distribution to a location accessible by YARN and using the
yarn.provided.lib.dirs
configuration option, as shown below:
./bin/flink run-application -t yarn-application \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=4096m \
-Dyarn.provided.lib.dirs="hdfs://myhdfs/remote-flink-dist-dir" \
./MyApplication.jar
Finally, in order to further save the bandwidth required to submit your application jar,
you can pre-upload it to HDFS, and specify the remote path that points to
./MyApplication.jar
, as shown below:
./bin/flink run-application -t yarn-application \
-Djobmanager.memory.process.size=2048m \
-Dtaskmanager.memory.process.size=4096m \
-Dyarn.provided.lib.dirs="hdfs://myhdfs/remote-flink-dist-dir" \
hdfs://myhdfs/jars/MyApplication.jar
This will make the job submission extra lightweight as the needed Flink jars and the application jar are going to be picked up from the specified remote locations rather than be shipped to the cluster by the Client. The only thing the Client will ship to the cluster is the configuration of your application which includes all the aforementioned paths.
Conclusion
We hope that this discussion helped you understand the differences between the various deployment modes offered by Flink and will help you to make informed decisions about which one is suitable in your own setup. Feel free to play around with them and report any issues you may find. If you have any questions or requests, do not hesitate to post them in the mailing lists and, hopefully, see you (virtually) at one of our conferences or meetups soon!


In addition to executing queries from the Proximity Database Browser and Query Editor, you can execute saved queries from the command line using the query.sh shell script (Linux/Mac OS X) or query.bat (Windows) batch file.
Exercise 5.8. Executing a query from the command line:
This exercise re-runs the research-clusters2 query.
You can use either the rc2.qg2.xml
query you
created in Exercise 5.3 or the
research-clusters2.qg2.xml
query included with
the distribution in $PROX_HOME/doc/user/tutorial/examples
.
The query results will overwrite the existing research-clusters2
container. Specify a different container name
if you want to keep your original
research-clusters2 container.
|
When executing queries from the Proximity Database Browser or Query Editor, Proximity prompts you to confirm overwriting an existing container. Proximity does not provide a similar prompt when executing queries from the command line and instead silently overwrites the existing container. |
Before beginning, make sure that you are serving the ProxWebKB database using Mserver.
Execute the query.sh shell script or query.bat batch file, specifying
host:port
the Monet server’s
host and port (localhost:30000
if you are
running the Monet server on your local machine and did not
explicitly set the port to a different value on the command line)
queryXMLFile
the file containing the saved query; use either your
rc2.gq2.xml
query or the query listed
below
collectionName
the name of the results container
inputContainer
[optional] the name of the input container— the container to search when finding matches for the query
The optional inputContainer
defaults to the
root container (the entire database) if it is
omitted. To explicitly
specify the input container, Proximity uses a path-like syntax that
reflects the container hierarchy for the specified
container. Container names are separated by forward slashes with the
initial /
representing the root container. For
example, /c1/c2
signifies container
“c2”, which is under
container “c1”, which in
turn is under the root container. All
container paths are absolute in this sense—they all must include
an initial slash indicating the root container. Do not include a
trailing “/
”.
See the “Querying Containers” section, below, for
more information on querying containers.
In the command lines below, substitute the appropriate host and port information if you are running the Monet server on a different machine or are using a different port.
>cd $PROX_HOME
>bin/query.sh localhost:30000 \ $PROX_HOME/doc/user/tutorial/examples/research-clusters2.qg2.xml \ research-clusters2
Proximity writes the execution trace to the window in which you executed the above command. The last lines should be similar to the following excerpt (leading information showing elapsed time has been omitted from the trace for brevity):
INFO qgraph2.QueryGraph2CompOp: -> found 83 subgraphs INFO kdl.prox.qgraph2.QueryGraph2CompOp - -> query results saved in container: research-clusters2 INFO qgraph2.QueryGraph2CompOp: * query: done INFO app.Query: * done executing query


WITNESS LIST Natural Resources Committee April 2, 1997-3:00P HB 666 For: Harper, David (Assoc. Water Brd. Dirs.) Krusee, Mike (Representative) HB 1248 For: Greenberg, Sherri (Representative) HB 1802 On: Knowles, Tommy (TWDB) HB 1998 On: Soward, Larry R. (TX Dept of Agriculture) HB 2154 For: Hill, Gordon R. (Bayview Irrig Dist #11) Molleda, Nancy M. (herself) Solis, Jim (Representative) On: Olson, Leonard (TWDB) HB 2333 For: Kramer, Ken (Sierra Club) Stansell, Wade (AECT) Against: Riley, Bill (City of College Station) Stewart, Terrace (City of Dallas) On: Akers, Monte (TML) Conner, Rick (Bryan Public Work Dept) Hargesheimer, Dwayne (TX Municip Util Assoc.) Lippe, Chris (City of Austin) Pearson, Dan (TNRCC) HB 2463 For: Leonard, Tom (Leonard & Hurt, P.C.) On: Jones, Sam (TNRCC) HB 2563 For: Holland, Scott (Irion Co Wa. Cons. Dist) Williams, C.E. (Panhandle Gr Wa Dist.) On: Jones, Sam (TNRCC) Petersen, Ken (TNRCC) HB 2567 For: Akers, Monte (TML) Chapman, Jerry W. (Greater Texoma Util Aut) Clark, Ron (Representative) Gattis, David E. (City of Sherman) On: Petersen, Ken (TNRCC) HB 2595 For: Allison, Jim (Cty Judges & Comms Ass.) Thompson, John P. (Cty Judges & Comms Ass.)


{% extends 'base.html' %} {% block app_content %}
| No. | Name | Segment | {% if all_flag %}Owner | {% endif %}Action |
|---|---|---|---|---|
| {{ loop.index }} | {{ test_data.name }} | {{ test_data.seg_name }} | {% if all_flag %}{{ test_data.owner }} | {% endif %}Open |
You have NOT yet created any test data.
You can either Create Test Data OR view the test data that were already created by others by clicking on All Test Data on the link in the nav bar above
{% endif %} {% endblock %} {% block scripts %} {{ super() }} {% endblock %}


Box Office Records > Domestic > All Movies > Cumulative > All Time Domestic
All Time Domestic Box Office (Rank 201-300)
See also: All Time Domestic Limited Release - All Time International - All Time Worldwide - All Time Domestic (Inf. Adj.) - Top 2016 Domestic - Top 2017 Domestic
This chart contains the top 100 movies based on the cumulative domestic box office.
Please see our All-Time Top Grossing Films Comparison for a comparison of the daily performance of all films released since 1980 that have earned more than $450 million at the domestic box office.
| Rank | Released | Movie | Domestic Box Office |
International Box Office |
Worldwide Box Office |
|---|---|---|---|---|---|
| 201 | 2012 | Wreck-It Ralph | $189,412,677 | $307,098,844 | $496,511,521 |
| 202 | 2014 | Interstellar | $188,017,894 | $480,895,413 | $668,913,307 |
| 203 | 2000 | Gladiator | $187,683,805 | $270,000,000 | $457,683,805 |
| 204 | 2012 | The Croods | $187,168,425 | $385,900,000 | $573,068,425 |
| 205 | 2011 | Sherlock Holmes: A Game of Shadows | $186,848,418 | $348,815,025 | $535,663,443 |
| 206 | 2004 | The Day After Tomorrow | $186,740,799 | $369,578,651 | $556,319,450 |
| 207 | 2005 | Mr. and Mrs. Smith | $186,336,279 | $299,787,811 | $486,124,090 |
| 208 | 1937 | Snow White and the Seven Dwarfs | $184,925,485 | $0 | $184,925,485 |
| 209 | 1990 | Dances with Wolves | $184,208,842 | $239,991,158 | $424,200,000 |
| 210 | 1995 | Batman Forever | $184,031,112 | $152,498,032 | $336,529,144 |
| 211 | 1993 | The Fugitive | $183,875,760 | $169,839,557 | $353,715,317 |
| 212 | 2015 | Pitch Perfect 2 | $183,785,415 | $103,345,386 | $287,130,801 |
| 213 | 2016 | The Revenant | $183,637,894 | $349,312,609 | $532,950,503 |
| 214 | 2001 | Ocean's Eleven | $183,417,150 | $267,311,379 | $450,728,529 |
| 215 | 2007 | The Simpsons Movie | $183,135,014 | $343,936,008 | $527,071,022 |
| 216 | 2000 | What Women Want | $182,805,123 | $191,300,000 | $374,105,123 |
| 217 | 2000 | The Perfect Storm | $182,618,434 | $146,093,000 | $328,711,434 |
| 218 | 2012 | Lincoln | $182,207,973 | $91,138,308 | $273,346,281 |
| 219 | 1978 | Grease | $181,813,770 | $205,700,000 | $387,513,770 |
| 220 | 1997 | Liar Liar | $181,410,615 | $121,300,000 | $302,710,615 |
| 221 | 2001 | Jurassic Park III | $181,166,115 | $184,733,885 | $365,900,000 |
| 222 | 2011 | Thor | $181,030,624 | $268,295,994 | $449,326,618 |
| 223 | 1996 | Mission: Impossible | $180,981,886 | $276,716,108 | $457,697,994 |
| 224 | 2015 | Ant-Man | $180,202,163 | $338,400,000 | $518,602,163 |
| 225 | 2001 | Planet of the Apes | $180,011,740 | $182,200,000 | $362,211,740 |
| 226 | 2008 | Madagascar: Escape 2 Africa | $180,010,950 | $419,505,894 | $599,516,844 |
| 227 | 2009 | X-Men Origins: Wolverine | $179,883,157 | $194,942,603 | $374,825,760 |
| 228 | 1984 | Indiana Jones and the Temple of Doom | $179,880,271 | $153,200,000 | $333,080,271 |
| 229 | 1986 | Top Gun | $179,800,601 | $177,000,000 | $356,800,601 |
| 230 | 2012 | Men in Black 3 | $179,020,854 | $475,192,631 | $654,213,485 |
| 231 | 1990 | Pretty Woman | $178,406,268 | $254,239,604 | $432,645,872 |
| 232 | 2005 | Hitch | $177,784,257 | $189,000,000 | $366,784,257 |
| 233 | 2015 | Home | $177,397,510 | $208,671,880 | $386,069,390 |
| 234 | 2009 | Night at the Museum: Battle of the Smithsonian | $177,243,721 | $224,987,342 | $402,231,063 |
| 235 | 1982 | Tootsie | $177,200,000 | $0 | $177,200,000 |
| 236 | 2014 | How to Train Your Dragon 2 | $177,002,924 | $439,100,000 | $616,102,924 |
| 237 | 2011 | Rise of the Planet of the Apes | $176,760,185 | $306,100,000 | $482,860,185 |
| 238 | 2011 | Captain America: The First Avenger | $176,654,505 | $193,915,271 | $370,569,776 |
| 239 | 2010 | The Karate Kid | $176,591,618 | $175,183,320 | $351,774,938 |
| 240 | 1998 | There's Something About Mary | $176,484,651 | $183,615,348 | $360,099,999 |
| 241 | 2002 | Ice Age | $176,387,405 | $209,728,938 | $386,116,343 |
| 242 | 2004 | The Bourne Supremacy | $176,087,450 | $112,500,000 | $288,587,450 |
| 243 | 2017 | The Lego Batman Movie | $175,750,384 | $135,190,613 | $310,940,997 |
| 244 | 2017 | Get Out | $175,484,140 | $76,450,366 | $251,934,506 |
| 245 | 1986 | Crocodile Dundee | $174,803,506 | $153,400,000 | $328,203,506 |
| 246 | 2017 | The Boss Baby | $174,510,660 | $317,883,431 | $492,394,091 |
| 247 | 1992 | Home Alone 2: Lost in New York | $173,585,516 | $185,409,334 | $358,994,850 |
| 248 | 2003 | Elf | $173,398,518 | $46,837,892 | $220,236,410 |
| 249 | 2004 | National Treasure | $173,005,002 | $158,318,408 | $331,323,410 |
| 250 | 1997 | Air Force One | $172,956,409 | $142,311,944 | $315,268,353 |
| 251 | 1988 | Rain Man | $172,825,435 | $239,974,565 | $412,800,000 |
| 252 | 1995 | Apollo 13 | $172,070,496 | $162,029,504 | $334,100,000 |
| 253 | 2010 | Tron: Legacy | $172,062,763 | $228,000,000 | $400,062,763 |
| 254 | 1999 | The Matrix | $171,479,930 | $292,037,453 | $463,517,383 |
| 255 | 2010 | True Grit | $171,243,005 | $81,033,923 | $252,276,928 |
| 256 | 1999 | Tarzan | $171,091,819 | $277,100,000 | $448,191,819 |
| 257 | 2001 | A Beautiful Mind | $170,708,996 | $146,959,062 | $317,668,058 |
| 258 | 2002 | Chicago | $170,687,518 | $136,084,820 | $306,772,338 |
| 259 | 2017 | Pirates of the Caribbean: Dead Men Tell No Tales | $170,664,282 | $596,525,043 | $767,189,325 |
| 260 | 2011 | The Help | $169,705,587 | $43,414,417 | $213,120,004 |
| 261 | 2015 | Hotel Transylvania 2 | $169,700,110 | $301,051,288 | $470,751,398 |
| 262 | 2016 | Hidden Figures | $169,373,983 | $60,143,641 | $229,517,624 |
| 263 | 2008 | Quantum of Solace | $169,368,427 | $422,323,651 | $591,692,078 |
| 264 | 2011 | Bridesmaids | $169,106,725 | $120,420,305 | $289,527,030 |
| 265 | 2007 | Wild Hogs | $168,213,584 | $85,341,799 | $253,555,383 |
| 266 | 2017 | Kong: Skull Island | $168,052,812 | $393,084,915 | $561,137,727 |
| 267 | 1987 | 3 Men and a Baby | $167,780,960 | $0 | $167,780,960 |
| 268 | 2014 | Gone Girl | $167,767,189 | $200,800,000 | $368,567,189 |
| 269 | 2006 | Casino Royale | $167,365,000 | $427,055,283 | $594,420,283 |
| 270 | 2000 | Meet the Parents | $166,225,040 | $138,374,859 | $304,599,899 |
| 271 | 2015 | Fifty Shades of Grey | $166,167,230 | $404,830,871 | $570,998,101 |
| 272 | 2009 | 2012 | $166,112,167 | $622,296,372 | $788,408,539 |
| 273 | 1977 | Close Encounters of the Third Kind | $166,000,000 | $171,700,000 | $337,700,000 |
| 274 | 1991 | Robin Hood: Prince of Thieves | $165,493,908 | $225,006,092 | $390,500,000 |
| 275 | 2011 | Kung Fu Panda 2 | $165,249,063 | $499,588,484 | $664,837,547 |
| 276 | 2001 | Hannibal | $165,092,266 | $185,008,014 | $350,100,280 |
| 277 | 2002 | Catch Me if You Can | $164,606,800 | $191,005,491 | $355,612,291 |
| 278 | 2009 | The Proposal | $163,958,031 | $150,751,686 | $314,709,717 |
| 279 | 1999 | Big Daddy | $163,479,795 | $65,161,488 | $228,641,283 |
| 280 | 2010 | Clash of the Titans | $163,214,888 | $330,000,000 | $493,214,888 |
| 281 | 1965 | The Sound of Music | $163,214,286 | $123,000,000 | $286,214,286 |
| 282 | 2015 | The SpongeBob Movie: Sponge Out of Water | $162,994,032 | $148,600,000 | $311,594,032 |
| 283 | 1992 | Batman Returns | $162,833,635 | $103,990,656 | $266,824,291 |
| 284 | 2012 | Django Unchained | $162,805,434 | $287,142,889 | $449,948,323 |
| 285 | 1998 | A Bug's Life | $162,798,565 | $200,296,754 | $363,095,319 |
| 286 | 2006 | The Pursuit of Happyness | $162,586,036 | $144,739,597 | $307,325,633 |
| 287 | 2016 | Jason Bourne | $162,192,920 | $254,004,139 | $416,197,059 |
| 288 | 2010 | Grown Ups | $162,001,186 | $110,222,244 | $272,223,430 |
| 289 | 1998 | The Waterboy | $161,491,646 | $28,700,000 | $190,191,646 |
| 290 | 2004 | Shark Tale | $161,412,000 | $210,505,043 | $371,917,043 |
| 291 | 2012 | Ice Age: Continental Drift | $161,321,843 | $718,443,294 | $879,765,137 |
| 292 | 2015 | Straight Outta Compton | $161,058,685 | $40,985,196 | $202,043,881 |
| 293 | 2002 | Die Another Day | $160,942,139 | $271,000,000 | $431,942,139 |
| 294 | 1973 | The Sting | $159,616,327 | $0 | $159,616,327 |
| 295 | 2013 | The Heat | $159,581,587 | $70,146,187 | $229,727,774 |
| 296 | 2016 | Star Trek Beyond | $158,848,340 | $177,549,972 | $336,398,312 |
| 297 | 1993 | The Firm | $158,340,892 | $112,000,000 | $270,340,892 |
| 298 | 2005 | The Longest Yard | $158,119,460 | $32,201,108 | $190,320,568 |
| 299 | 2000 | X-Men | $157,299,717 | $139,040,000 | $296,339,717 |
| 300 | 2000 | Scary Movie | $157,019,771 | $120,180,229 | $277,200,000 |
The Domestic Market is defined as the North American movie territory (consisting of the United States, Canada, Puerto Rico and Guam).
This table is updated daily to reflect the latest studio reports.
Note: This chart is not adjusted for inflation.


 This course intends to provide the basics on various technologies around the (Industrial) Internet of Things (IoT), Machine-to-Machine Communication and Industrial Standards.
This page provides basic materials and resources to get started with Industry 4.0. The tools and programming example are either based on open source software or demo version of commercially available software.


{% extends 'global/base.html' %} {% load i18n markdown_deux_tags static %} {% block title %}{% trans "Django Girls Dispatch - Newsletter" %}{% endblock %} {% block content %}
{% blocktrans trimmed %} We're sending a biweekly newsletter to friends and strangers who support us and are curious how we're doing. {% endblocktrans %}
{% blocktrans trimmed %}
We don't send advertisements or spam, and we won't share your email with anyone.
We just send a biweekly dispatch and awesome announcements about things we're proud of.
{% endblocktrans %}


Exam Result
Written Exam Result
Date Required
No any students.
Date:
{{examDate}}
| Name | NIC | Pass Student |
|---|---|---|
| {{student.name}} | {{student.nic}} |
|
Exam Result
Trial Exam Result
Date Required
No any students.
Date:
{{trialDate}}
| Name | NIC | Pass Student |
|---|---|---|
| {{student.name}} | {{student.nic}} |
|


The function bigImg() is triggered when the user mouse pointer is moved over the image. This function enlarges the image.
The function normalImg() is triggered when the user mouse pointer is moved out the image. That function sets the height and width of the image back to the normal.


We were unable to submit your question at this time. Please try again later.
Your submission has been successfully submitted. We'll be in touch within 48 hours.


{% extends 'layouts/layout.html' %} {% block pageTitle %} Enter your password to change your email address {% endblock %} {% block content %}
It's been more than 24 hours.
You will need to add your recovery email again.


Kendall Jenner Keeps It Comfy After A Photoshoot in NYC
Kendall Jenner pulls her arm over her face while heading to a business meeting in New York City on a rainy Tuesday afternoon (November 19).
The 24-year-old model kept it comfy in a pair of sweats as she headed inside and out of the drizzle.
PHOTOS: Check out the latest pics of Kendall Jenner
Just the night before, Kendall was spotted leaving the Pier59 Studios after a photoshoot wearing a bright yellow hoodie with a blue dot on it.
If you missed it, a few days earlier Kendall was spotted in a similar hoodie with a big blue dot on it while on a juice run in Los Angeles.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DictionaryElement
Any class that represents an element contained in the dictionary (IndexWord
s,
Synset
s, and Exc
eptions) must implement this interface.
| Method Summary | |
|---|---|
Object |
getKey()
Returns a key that can be used to index this element. |
POS |
getPOS()
Returns element's part of speech. |
DictionaryElementType |
getType()
Returns the element's type. |
| Methods inherited from interface net.sf.extjwnl.util.factory.Owned |
|---|
getDictionary, setDictionary |
| Method Detail |
|---|
Object getKey()
DictionaryElementType getType()
POS getPOS()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


This is Grilled Cheese With Attitude and Authenticity
Cheezus is a delicious pop-up restaurant inspired by Kanye West's album Yeezus, making foodies at Smorgasburg in DTLA cheese hard for the gram. Ian Asbury, Owner/Founder, Cheezus wants to get people eating real food again. Their most popular sandwich "The Incredible Hulk" features three different cheeses, avocado, apple wood smoked bacon, red pepper chili oil, lime aioli and a fried egg. Cheezus loves to highlight amazing cheeses from local cheese makers, encouraging customers to expand their pallets to different cheeses.
Check 'em out here:cheezus.la


Tenth Week of RC
Day 1: Flask Pluggable Views
April 22, 2019
This afternoon I continued working on a Departments API for OpenOversight. I'm using Flask's pluggable views and starting by creating a dashboard where admins can view all departments, as well as the associated area coordinators. Here's a screenshot of the still in progress page, with test data:
I hit a little bit of a roadbump when creating the area_coordinators
column. I wanted to have each area_coordinator's name link to their individual user page, which can be found at the route users/auth/${user_id}
. I wrote the find_area_coordinators(department_id)
to pass along the area coordinators' data from views.py
to the departments.html
, as seen below:
def find_area_coords(department_id):
area_coords = db.session.query(Department, User).filter(department_id == User.ac_department_id).all()
for ac in area_coords:
return {"id": ac[1].id, "username": ac[1].username}
Here's the column with the area coordinator's name in the departments.html
template.
{{ find_area_coords(department.id)['username']}}
Initially, I had written , neglecting the opening slash at the link's start. This caused the link to take me to the route
/auth/departments/auth/users
, which definitely wasn't what I wanted. So much depends on a forward slash.


kaidez courses on lynda.com
byIf you follow me on Twitter, you know that I've been recording JavaScript-based courses for lynda.com. My second of two courses was uploaded to their site the day before this post's publish date.
My first course was "Up and Running with Backbone.js" while my second one was "Up and Running with Ember.js"...JavaScript MVC all around. As they're "Up and Running" courses, they're geared towards the intermediate JavaScript developer (although ANYONE with a lynda.com account can view them.)
Recording courses for lynda.com was an incredible experience and I hope to record more in the future. I've been a big fan of lynda.com ever since my employer, Revlon, paid for subscriptions for both myself and another staff web designer...so much so, that I paid for my own subscription out of my own pocket when my Revlon one wasn't renewed.
I'm deeply indebted to Lynda author James Williamson for recommending me to be an author as well as content producer Shira Gotshalk, who reviewed my demo and gave me a chance. James gave me a lot of great advice on putting courses together, as did authors Ray Villalobos and Morten Rand-Hendriksen so I thank those two as well.
I also throw great thanks to both Scott Simpson and Dan Weston, the respective producers of my Backbone and Ember courses. I may have prepared the course content but Scott and Dan provided invaluable advice on creating as best of a course as I could.
Check out the courses and hit me up on Twitter if you have any questions.


{% extends 'layout.html' %} {% block layout-content %}
Payment information linked can be found in the OTIS syllabus and in more detail in the parent info.
{% if invoice %}| Item | Amount |
|---|---|
| Preparation cost | {{ invoice.PREP_RATE }} × {{ invoice.preps_taught }} |
| Hourly cost | {{ invoice.HOUR_RATE }} × {{ invoice.hours_taught }} |
| Total cost | {{ invoice.total_cost }} |
| Total paid | {{ invoice.total_paid }} |
| Total owed | {{ invoice.total_owed }} |
This invoice was last updated on {{ invoice.updated_at }} server time.
Please contact me if you think there are any errors (I make mistakes every year!). Detailed invoices with full dates, lecture names, et cetera are available on request.
If you have an assistant instructor, that payment should be done separately.
{% if request.user.is_staff %}No invoice is currently available.
{% endif %} {% include 'dashboard/back_link.html' %} {% endblock %}


Tree
To statically map tree organized data structure used special data source attributes With to describe tree root query and WithRecursive to describe tree childs. Both of them use subquery mappings (see example below) to set subquery structure for tree query construction.
Important
Data source flags of tree organized data sources must contain DataStructureFlag.ReadOnly and DataStructureFlag.Tree!
With attribute has properties: Alias - alias of tree data source, SubqueryType - type of root subquery mapping, Type - data source combination within tree query, Properties - tree properties order. WithRecursive attribute has properties: Alias - alias of recursive data source, SubqueryType - type of root subquery mapping, InitialAlias - alias of tree data source.
[DataObject("CAT", Flags = DataStructureFlag.ReadOnly | DataStructureFlag.Tree),
With("CAT", typeof(CatalogueTreeRoot), WithRecursiveType.RecursiveUnion,
"CatalogueId", "Name", "Code", "ParentId"),
WithRecursive("S", typeof(CatalogueTreeFolders), "CAT"),
SubqueryLink("S", "ParentId", "CatalogueId")]
public class CatalogueTree : IDataObject
{
public static readonly RuntimeFilter FilterByRoot
= new RuntimeFilter(null, "FilterByRoot");
public static readonly RuntimeFilter FilterByCathalogue
= new RuntimeFilter(null, "FilterByCathalogue");
[Property("T", Flags = DataPropertyFlag.Id)]
public long CatalogueId { get { return this.GetProperty(x => x.CatalogueId); } }
[Property("T")]
public string Code { get { return this.GetProperty(x => x.Code); } }
[Property("T")]
public string Name { get { return this.GetProperty(x => x.Name); } }
[Property("T")]
public long? ParentId { get { return this.GetProperty(x => x.ParentId); } }
}
[DataObject("R"),
DataTable("T_CATALOGUE", "R"),
Column("CatalogueId", typeof(long), "R"),
Column("Code", typeof(string), "R"),
Column("Name", typeof(string), "R"),
Column("ParentId", typeof(long?), "R"),
FilterCombination("root", Combination = Combination.Or),
ConstantFilter("FilterByCathalogue", "R", "catalogue_id", null,
Combination = "root", Nullable = FilterNullable.NullsNotAllowed),
ConstantFilter("FilterByRoot", "R", "parent_id", null,
Combination = "root", Nullable = FilterNullable.NullsCompared)]
public class CatalogueTreeRoot : ISqlObject {}
[DataObject("S"),
DataTable("T_CATALOGUE", "S"),
Column("CatalogueId", typeof(long), "S"),
Column("Code", typeof(string), "S"),
Column("Name", typeof(string), "S"),
Column("ParentId", typeof(long?), "S")]
public class CatalogueTreeFolders : ISqlObject {}


R and RStudio basics
Welcome!
The practical component of the Statistics II: Statistical Modeling and Causal Inference course relies largely in R programming. Today we will center on some of the necessary skills to perform the assignments for the course.
In this tutorial, you will learn to:
- identify the some of the basic functionalities of R and RStudio
- import data sets into your R environment
R and RStudio: Basics
The RStudio layout
RStudio is an integrated development environment (IDE) for R. Think of RStudio as a front that allows us to interact, compile, and render R code in a more instinctive way. The following image shows what the standard RStudio interface looks like:
-
Console: The console provides a means to interact directly with R. You can type some code at the console and when you press ENTER, R will run that code. Depending on what you type, you may see some output in the console or if you make a mistake, you may get a warning or an error message.
-
Script editor: You will utilize the script editor to complete your assignments. The script editor will be the space where files will be displayed. For example, once you download and open the bi-weekly assignment .Rmd template, it will appear here. The editor is a where you should place code you care about, since the code from the console cannot be saved into a script.
-
Environment: This area holds the abstractions you have created with your code. If you run
myresult <- 5+3+2
, themyresult
object will appear there. -
Plots and files: This area will be where graphic output will be generated. Additionally, if you write a question mark before any function, (i.e.
?mean
) the online documentation will be displayed here.
R Packages
For the most part, R Packages are collections of code and functions that leverage R programming to expand on the basic functionalities. Last week we met dplyr
that aids R programmers in the process of data cleaning and manipulation. There are a plethora of packages in R designed to facilite the completion of tasks. In fact, this website is built with the blogdown
package that lets you create websites using RMarkdown
and Hugo
Unlike other programming languages, in R you only need to install a package once. The following times you will only need to “require” the package. As a good practice I recommend running the code to install packages only in your R console, not in the code editor. You can install a package with the following syntax
install.packages("name_of_your_package") #note that the quotation marks are mandatory at this stage
Once the package has been installed, you just need to “call it” every time you want to use it in a file by running:
library("name_of_your_package") #either of this lines will require the package
library(name_of_your_package) #library understands the code with, or without, quotation marks
Working directory
The working directory is just a file path on your computer that sets the default location of any files you read into R, or save out of R. Normally, when you open RStudio it will have a default directory (a folder in your computer). You can check you directory by running getwd()
in your console:
#this is the default in my case
getwd()
#[1] "/Users/sebastianramirezruiz"
When your RStudio is closed and you open a file from your finder in MacOS or file explorer in Windows, the default working directory will be the folder where the file is hosted
Setting your working directory
You can set you directory manually from RStudio: use the menu to change your working directory under Session > Set Working Directory > Choose Directory.
You can also use the setwd()
function:
setwd("/path/to/your/directory") #in macOS
setwd("c:/path/to/your/directory") #in windows
Recommended folder structure for the class
We recommend you pay close attention to your folder structure. You will receive a new folder for each assignment. Make the folder your working directory when working on the assignment. This folder will be populated with the template .Rmd and the data for the week. When you knit the file, the .html will be created in this folder.
Dealing with errors in R
Errors in R occur when code is used in a way that it is not intended. For example when you try to add two character strings, you will get the following error:
"hello" + "world"
Error in "hello" + "world": non-numeric argument to binary operator
Normally, when something has gone wrong with your program, R will notify you of an error in the console. There are errors that will prevent the code from running, while others will only produce warning messages. In the following case, the code will run, but you will notice that the string “three” is turned into a NA.
as.numeric(c("1", "2", "three"))
Warning: NAs introduced by coercion
[1] 1 2 NA
Since we will be utilizing widely used packages and functions in the course of the semester, the errors that you may come across in the process of completing your assignments will be common for other R users. Most errors occur because of typos. A Google search of the error message can take you a long way as well. Most of the times the first entry on stackoverflow.com will solve the problem.
Importing data
Next we will work with data provided by the palmerpenguins
package; however, most practical applications will require you to work with your own data. In fact, for most assignments, you will be given a data set to work with. As we will see in the coming weeks, data are messy. You know what else is messy? Data formats. You may be acquainted with a couple of them (.csv, .tsv, .xlsx).
Fortunately for us, the tidyverse
has two packages that make the process of loading data sets from different formats very easy.
readr
: The goal ofreadr
is to provide a fast and friendly way to read rectangular data (like csv, tsv, rds, and fwf)haven
: The goal ofhaven
is to enable R to read and write various data formats used by other statistical packages (like dta, sas, and sav)
You can read more about how to load different types of data in the respective documentations of the packages — readr and haven
For the assignments you will be required to load datasets. You can do that by installing the readr
package and utilizing:
#with readr
your_data_frame <- readr::read_rds("path_for_the_file")
#you can alternatively use a base R option
your_data_frame <- base::readRDS("path_for_the_file")
This week’s mock assignment will feature a .tsv file. When in doubt just Google “How to load x_format data in R?" That will do the trick!
The double colon operator ::
You may have noted in the previous section that the functions were preceded by their package name and two colons, for example: readr::read_rds()
. The double colon operator ::
helps us ensure that we select functions from a particular package. We utilize the operator to explicitly state where the function is coming. This may become even more important when you are doing data analysis as part of a team further in your careers. Though it is likely that this will not be a problem during the course, we can try to employ the following convention package_name::function()
to ensure that we will not encounter errors in our knitting process:
dplyr::select()
Let’s look at what happens when we load tidyverse
.
library(tidyverse)
#── Attaching packages ──────────────────────────────────────────────────────────────────────────── tidyverse 1.3.0 #──
#✓ ggplot2 3.3.2 ✓ purrr 0.3.4
#✓ tibble 3.0.3 ✓ dplyr 1.0.2
#✓ tidyr 1.1.2 ✓ stringr 1.4.0
#✓ readr 1.3.1 ✓ forcats 0.5.0
#── Conflicts ─────────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() #──
#x dplyr::filter() masks stats::filter()
#x dplyr::lag() masks stats::lag()
You may notice that R points out some conflicts where some functions are being masked. The default in this machine will become the filter()
from the dplyr
package during this session. If you were to run some code that is based on the filter()
from the stats
package, your code will probably result in errors.


commented on
flagged
resolved flagged on
submitted
submitted
rejected
accepted
accepted
rejected
suggested a revision to
accepted a revision to
rejected a revision to
suggested
assertion
gene
variant
variant group
evidence item
a suggested revision to
GENE / VARIANT / EVIDENCE
(entity unlinkable, no longer exists)


UK Conservatives extend lead over Labour, says Sunday Times poll
LONDON, Nov 10 — British Prime Minister Boris Johnson’s Conservative Party slightly extended its lead over the opposition Labour Party over the past week, an opinion poll for the Sunday Times newspaper showed.
The Conservatives held steady on 39 per cent while the Labour Party lost 1 percentage point of support, dropping to 26 per cent, polling company YouGov said. The Liberal Democrats remained in third place, gaining 2 percentage points to 17 per cent.
YouGov questioned 1,598 British adults on Nov. 7 and Nov. 8 ahead of a national election on Dec. 12. — Reuters


This tutorial walks you through the process of setting up an existing ODE Environment for use as a testbed for RL or optimization algorithms.
You also need to exchange the following two .py files with custom versions:
cd pybrain/pybrain/rl/environments/ode/xode_changes/
sudo cp * /usr/lib/python2.6/dist-packages/xode/ (or there ever your dist-packages are)
You can test if all your settings are ok by starting following example:
cd ~/pybrain/examples/rl/
python johnnie_pgpe.py
... and then view what is happening by using the viewer:
cd ~/pybrain/pybrain/rl/environments/ode
python viewer.py
Note
On Linux, if that gives rise to a segmentation fault, try installing xorg-driver-fglrx
This tutorial walks you through the process of setting up a new task within an existing ODE Environment. It assumes that you have taken the steps described in the section Using an existing ODE environment.
For all ODE environments there can be found a standard task in pybrain/rl/environments/ode/tasks
We take as an example again the Johnnie environment. You will find that the first class in the johnnie.py file in the above described location is named JohnnieTask and inherits from EpisodicTask.
If we take a look at the StandingTask (the next class in the file) we see that only little has to be done to create an own task. First of all the class must inherit from JohnnieTask. Then, the constructor has to be overwritten to declare some variables and constants for the specific task. In this case there were some additional position sensors added and normalized for reward calculation. As normally last step the getReward Method has to be overwritten, because the reward definition is normally what defines the task. In this case just the vertical head position is returned (with some clipping to prevent the robot from jumping to get more reward). That is already enough to create a task that is sufficiently defined to make a proper learning method (like PGPE in the above mentioned and testable example johnnie_pgpe.py) learn a controller that let the robot stand complete upright without falling.
For some special cases you maybe are forced to rewrite the performAction method and the isFinished method, but that special cases are out of scope of this HowTo. If you need to make such changes and encounter problems please feel free to contact the PyBrain mailing list.
This tutorial walks you through the process of setting up a new ODE Environment. It assumes that you are already familiar with the sections Using an existing ODE environment and Creating your own learning task in an existing ODE environment and have taken the necessary steps explained there.
If you want to your own environment you need the following:
- Environment that inherits from ODEEnvironment
- Agent that inherits from OptimizationAgent
- Tasks that inherit from EpisodicTask
For all ODE environments, an instance can be found in pybrain/rl/environments/ode/instances/
We take as an example again the Johnnie environment. You will find that the first class in the johnnie.py file in the location described above is named JohnnieEnvironment and inherits from ODEEnvironment.
You will see that were is not much to do on the PyBrain side to generate the environment class. First loading the corresponding XODE file is necessary to provide PyBrain with the specification of the simulation. How to generate the corresponding XODE file will be shown later in this HowTo. Then the standard sensors are added like the JointSensors, the corresponding JointVelocitySensors and also the actuators for every joint. Because this kind of sensors and actuators are needed in every simulation they are already added in the environment and assumed to exist by later stages of PyBrain.
The next part is a bit more involved. First, member variables that state the number of action dimensions and number of sensors have to be set.
self.actLen = self.getActionLength()
self.obsLen = len(self.getSensors())
Next, 3 lists are generated for every action dimension. The first list is called torqueList and states the fraction of the global maximal force that can bee applied to the joints. The second list states the maximum angle, the third list states the minimum angle for every joint. (cHighList and cLowList) For example:
self.tourqueList = array([0.2, 0.2, 0.2, 0.5, 0.5, 2.0, 2.0,2.0,2.0,0.5,0.5],)
self.cHighList = array([1.0, 1.0, 0.5, 0.5, 0.5, 1.5, 1.5,1.5,1.5,0.25,0.25],)
self.cLowList = array([-0.5, -0.5, -0.5, 0.0, 0.0, 0.0, 0.0,0.0,0.0,-0.25,-0.25],)
The last thing to do is how much simulation steps ODE should make before getting an update from the controller and sending new sensor values back, called stepsPerAction.
Now we want to specify a instantiation in a XODE file. If you do not know ODE very well, you can use a script that is shipped with PyBrain and can be found in pybrain/rl/environments/ode/tools/xodetools.py
The first part of the file is responsible for parsing the simplified XODE code to a regular XODE file, that can be ignored. For an example, look at the Johnnie definition by searching for class XODEJohnnie(XODEfile)
The instantiation of what you want to simulate in ODE is defined in this tool as a class that inherits from XODEfile. The class consists only of a constructor. Here all parts of the simulated object are defined. The parts are defined in an global coordinate system. For examples the row
self.insertBody('arm_left','cappedCylinder',[0.25,7.5],5,pos=[2.06,-2.89,0],
euler=[90,0,0], passSet=['total'], mass=2.473)
creates the left arm (identifier ‘arm_left’) of Johnnie as an cylinder with round endings (‘cappedCylinder’) with a diameter of 0.25 and a length of 7.5 ([0.25,7.5]) with a density of 5 (that will be overwritten if the optional value mass is given at the end of the command), an initial position of pos = [2.06,-2.89,0], turned by 90 degrees around the x-Axis (euler = [90,0,0], all capped cylinders are by default aligned with the y-Axis) the passSet named ‘total’ (will be explained soon) and the optional mass of the part.
“passSet” is used to define parts that can penetrate each other. That is especially necessary for parts that have a joint together, but can also be usable in other cases. All parts that are part of the same passSet can penetrate each other. Multiple passSet names can be given delimited by a “,”. Types that are understood by this tool are:
- cylinder
- cappedCylinder
- box
Next we have to define the joints that connect the parts. Types of joints that are understood by this tool are:
- fixed, for a stiff fixed joint.
- hinge, one dimensional joint.
- universal joint, experimental 2D joint.
A joint between two parts is inserted in the model by insertJoint, giving the identifier of the first part, then the identifier of the second part. Next the type of joint is stated (e.g. ‘hinge’). The axis around the joint will rotate is stated like axis={'x':1,'y':0,'z':0} and the anchor point in global coordinates is defined by something like anchor=(2.06,0.86,0). Add all parts and joints for your model.
Finally with centerOn(identifier) the camera position is fixed to that part and with insertFloor(y=??) a floor can be added.
Now go to the end of the file and state:
name = YourClass('../models/name')
name.writeXODE()
and execute the file with
python xodetools.py
And you have created an instantiation of your model that can be read in in the above environment.
What is missing is a default task for the new environment. In the previous “HowTo create your own learning task in an existing ODE environment” we saw how such a standard task looks for the Johnnie environment. To create our own task we have to create a file with the name of our environment in pybrain/rl/environments/ode/tasks/
The new task has to import the following packages:
from pybrain.rl.environments import EpisodicTask from pybrain.rl.environments.ode.sensors import *
And whatever is needed from scipy and similar.
The new class should inherit from EpisodicTask like in the JohnnieTask. Next we create the constructor that takes the environment with def __init__(self, env).
It is important that the constructor of EpisodicTask is called.
EpisodicTask.__init__(self, env)
The following member variables are mandatory:
self.maxPower = 100.0 #Overall maximal torque - is multiplied with relative max
#torque for individual joint to get individual max torque
self.reward_history = []
self.count = 0 #timestep counter
self.epiLen = 500 #time steps for one episode
In contrast to the ODEEnvironment standard settings some changes might be needed:
- self.env.FricMu if you need higher or lower friction for your task,
- self.env.dt if you need more timely resolution.
Next the sensor and actuator limits must be set, usually between -1 and 1:
# normalize standard sensors to (-1, 1)
self.sensor_limits = []
#Angle sensors
for i in range(self.env.actLen):
# Joint velocity sensors
self.sensor_limits.append((self.env.cLowList[i], self.env.cHighList[i]))
for i in range(self.env.actLen):
self.sensor_limits.append((-20, 20))
#Normalize all actor dimensions to (-1, 1)
self.actor_limits = [(-1, 1)]*env.actLen
The next method that is needed is the performAction method, the standard setting looks like that:
def performAction(self, action):
""" Filtered mapping towards performAction of the underlying environment """
EpisodicTask.performAction(self, action)
If you want to control the wanted angels instead of the forces you may include this simple PD mechanism:
#The joint angles
isJoints = self.env.getSensorByName('JointSensor')
#The joint angular velocities
isSpeeds = self.env.getSensorByName('JointVelocitySensor')
#norm output to action interval
act = (action+1.0)/2.0*(self.env.cHighList-self.env.cLowList)+self.env.cLowList
#simple PID
action = tanh((act - isJoints - isSpeeds) * 16.0) * self.maxPower * self.env.tourqueList
Now we have to define the isFinished() method:
def isFinished(self):
""" returns true if episode timesteps has reached episode length and resets the task """
if self.count > self.epiLen:
self.res()
return True
else:
self.count += 1
return False
You are certainly free to include other breaking conditions.
Finally we define a reset() method:
def res(self):
""" sets counter and history back, increases incremental counter """
self.count = 0
self.reward_history.append(self.getTotalReward())
We don’t need a getReward() function here, because the method from EpisodicTask that returns always 0.0 is taken over. This is the default task that is used to create specific tasks. Please take a look at Creating your own learning task in an existing ODE environment for how to create a task that gives actual reward.
If you have done all steps right you now have a new ODE environment with a corresponding task that you can test by creating an experiment. Or you can try to copy an existing example like the johnnie_pgpe.py and replace the environment and the task definition with your new environment and task.


|
CotC C# SDK for Unity
v<IP_ADDRESS>
Making social games is easy !
|
Scoring and leaderboard related functions.
Public Member Functions | |
| GamerScores | Domain (string domain) |
Changes the domain affected by the next operations. You should typically use it this way: game.Scores.Domain("private").Post(...); More... | |
| Promise< PagedList< Score > > | BestHighScores (string board, int count=10, int page=1) |
| Fetch the score list for a given board. More... | |
| Promise< NonpagedList< Score > > | ListFriendScores (string board) |
| Fetch the score list for a given board, restricting to the scores made by the friends of the current user. More... | |
| Promise< PagedList< Score > > | PagedCenteredScore (string board, int count=10) |
| Fetch the score paged list around the player. More... | |
| Promise< Dictionary< string, Score > > | ListUserBestScores () |
| Retrieves the best scores of this gamer, on all board he has posted one score to. More... | |
| Promise< int > | GetRank (long score, string board) |
| Retrieves the rank that a given score would have on the leaderboard, without actually registering the score. More... | |
| Promise< PostedGameScore > | Post (long score, string board, ScoreOrder order, string scoreInfo=null, bool forceSave=false) |
| Post a score. More... | |
| Promise< NonpagedList< Score > > | CenteredScore (string board, int count=10) |
| Promise< PagedList< Score > > | List (string board, int limit=30, int offset=0) |
| Promise<PagedList<Score> > CotcSdk.GamerScores.BestHighScores | ( | string | board, |
| int | count = 10 , |
||
| int | page = 1 |
||
| ) |
Fetch the score list for a given board.
| board | The name of the board to fetch scores from. |
| count | The maximum number of results to return per page. |
| page | Number of the page to be fetched. After that, you may use the paged result handler to fetch pages nearby. |
| GamerScores CotcSdk.GamerScores.Domain | ( | string | domain | ) |
Changes the domain affected by the next operations. You should typically use it this way: game.Scores.Domain("private").Post(...);
| domain | Domain on which to scope the next operations. |
| Promise<int> CotcSdk.GamerScores.GetRank | ( | long | score, |
| string | board | ||
| ) |
Retrieves the rank that a given score would have on the leaderboard, without actually registering the score.
| score | The score (numeric value) to check for ranking. |
| board | The name of the board to check the ranking against. Should match the board where a score has already been posted. |
| Promise<NonpagedList<Score> > CotcSdk.GamerScores.ListFriendScores | ( | string | board | ) |
Fetch the score list for a given board, restricting to the scores made by the friends of the current user.
| board | The name of the board to fetch scores from. |
Retrieves the best scores of this gamer, on all board he has posted one score to.
Fetch the score paged list around the player.
| board | The name of the board to fetch scores from. |
| count | The maximum number of results to return per page. |
| Promise<PostedGameScore> CotcSdk.GamerScores.Post | ( | long | score, |
| string | board, | ||
| ScoreOrder | order, | ||
| string | scoreInfo = null , |
||
| bool | forceSave = false |
||
| ) |
Post a score.
| score | The score (numeric value) to record. |
| board | The name of the board to post the score to. You may have as many boards as you like for your game, and scores are scoped between them. |
| order | The order for this board. As board are not configured on the server, any client can create a board dynamically. This parameter serves as as a description for the board and is used only upon creation (that is, the first player posting to the named board). |
| scoreInfo | An optional string used to describe the score made by the user. |
| forceSave | When set to true, the score is saved even if its value is less than the past best score for this player. |


We take a 10% fraction of the original training sample so that is 10% of 1 million i.e 1 lakh records. This is done in order to fasten the computation.
Feature selection is performed to reduce the dimensional space occupied and to deal with overfitting.defining the Logistic regression model using L1 regularization, we can see that parameters obtained using c=0.1 manage to reduce dimension and optimize the dimensional space which optimizes the execution time. This in turns also improves the generalization capacity.
The model runs with 83% accuracy. The confusion matrix records the numbers of true positives/negatives and false positives/negatives. 0.50075 is the area under the receiver operating characteristic curve and it implies the expected position of the positives before drawing a uniformly drawn random negative


Filename:
Choose file:
Maximum file size is 10MB
New author:
Field can be empty but maximum length is 255.
New comment:
Field can be empty but maximum is 255.
New date:
Submit


| synopsis: | export the email addresses for your users in one of many formats |
|---|
Most Django sites include a registered user base. There are times when you would like to import these e-mail addresses into other systems (generic mail program, GMail, google docs invites, give edit permissions, LinkedLn Group pre-approved listing). The export_emails command extension gives you this ability. The users exported can be filtered by Group name association.
# Export all the addresses in the '"First Last" <my@addr.com>;' format.
$ ./manage.py export_emails > addresses.txt
# Export users from the group 'Attendees' in the linked in pre-approve Group csv format.
$ ./manage.py export_emails -g Attendees -f linkedin pycon08.csv
# Create a csv file importable by GMail or Google Docs
$ ./manage.py export_emails --format=google google.csv
This is the default basic text format. Each entry is on its own line in the format:
"First Last"<EMAIL_ADDRESS>This can be used with all known mail programs (that I know about anyway).
A CSV (comma separated value) format which Google applications can import. This can be used to import directly into GMail, a GMail mailing group, Google Docs invite (to read), Google Docs grant edit permissions, Google Calendar invites, etc.
Only two columns are supplied. One for the person’s name and one for the email address. This is also nice for importing into spreadsheets.
A CSV (comma separated value) format which Outlook can parse and import. Supplies all the columns that Outlook ‘requires’, but only the name and email address are supplied.
A CSV (comma separated value) format which can be imported by LinkedIn Groups to pre-approve a list of people for joining the group.
This supplies 3 columns: first name, last name, and email address. This is the best generic csv file for importing into spreadsheets as well.
A vCard format which Apple Address Book can parse and import.


{%- comment -%}
Renders HTML properties that autotrack.js can use to track a click event.
Parameters
----------
preset
The name of a "preset" combination of properties, which is expected to exist
in site.data.autotrack. For example, if the preset is "foo", then this looks
for an object at site.data.autotrack.foo. If found, that object should contain
all the other parameters of this include. If not found, the other parameters
of this include will be used instead.
This preset logic allows sites to override the other parameters by creating an
autotrack data file (such as data/autotrack.yml).
category
The Google Analytics "category" for this event, if any
action
The Google Analytics "action" for this event, if any
label
The Google Analytics "label" for this event, if any
{%- endcomment -%}
{%- assign params = include -%}
{%- if include.preset and site.data.autotrack and site.data.autotrack[include.preset] -%}
{%- assign params = site.data.autotrack[include.preset] -%}
{%- endif -%}
data-on="click"
{% if params.category %}data-event-category="{{ params.category }}"{% endif %}
{% if params.action %}data-event-action="{{ params.action }}"{% endif %}
{% if params.label %}data-event-label="{{ params.label }}"{% endif %}


NC woman gets prison for hiding foreign athletes from ICE
CHARLOTTE, N.C. (AP) - The founder of a now-defunct private school in North Carolina has been sentenced to 18 months in prison for hiding foreign student-athletes from federal immigration authorities.
News outlet report 65-year-old Evelyn Mack was sentenced Tuesday after previously pleading guilty to conspiracy to harbor aliens. Court documents say Mack, owner and schoolmaster of Evelyn Mack Academy, forged enrollment and immigration records for the student-athletes in return for bribes from coaches and recruiters.
She’s believed to have gotten $1,000 kickbacks on about 75 students, most from Africa. Prosecutors say Mack lied about the students attending her academy, which qualified for the student-visa program. They say the students were actually shipped across the country to schools not in the program, allowing them to avoid detection by U.S. Immigration and Customs Enforcement.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Synonyms¶
Introduction¶
Xapian provides support for storing a synonym dictionary, or thesaurus. This
can be used by the Xapian::QueryParser
class to expand terms in user query
strings, either automatically, or when requested by the user with an explicit
synonym operator (~
).
Note
Xapian doesn’t offer automated generation of the synonym dictionary.
Here is an example of search program with synonym functionality.
You can see the search results without ~ operator.
$ g++ `xapian-config --cxxflags` code/c++/search_synonyms.cc code/c++/support.cc -o search_synonyms `xapian-config --libs`
$ ./search_synonyms db time
1: #065 Electric time piece with hands but without dial (no pendulum
2: #058 The "Empire" clock, to show the time at various longitudes,
3: #041 Frequency and time measuring instrument type TSA3436 by Venn
4: #056 Single sandglass in 4 pillared wood mount, running time 15 1
5: #043 Loughborough-Hayes automatic timing apparatus. Used by the R
6: #011 "Timetrunk" by Hines and Co., Glasgow (a sandglass for timin
7: #016 Copy of the gearing of the Byzantine sundial-calendar (1983-
8: #045 Master clock of the "Silent Electric" type made by the Magne
9: #018 Solar/Sidereal verge watch with epicyclic maintaining power
'time'[0:10] = 65 58 41 56 43 11 16 45 18
Notice the difference with the ~ operator with time where calendar is specified as its synonym.
$ g++ `xapian-config --cxxflags` code/c++/search_synonyms.cc code/c++/support.cc -o search_synonyms `xapian-config --libs`
$ ./search_synonyms db ~time
1: #016 Copy of the gearing of the Byzantine sundial-calendar (1983-
2: #072 German Perpetual Calendar in gilt metal
3: #065 Electric time piece with hands but without dial (no pendulum
4: #068 Ornate brass Perpetual Calendar
5: #058 The "Empire" clock, to show the time at various longitudes,
6: #041 Frequency and time measuring instrument type TSA3436 by Venn
7: #056 Single sandglass in 4 pillared wood mount, running time 15 1
8: #043 Loughborough-Hayes automatic timing apparatus. Used by the R
9: #026 Sundial and compass with perpetual calendar and lunar circles
10: #036 Universal 'Tri-Compax' chronographic wrist watch
'~time'[0:10] = 16 72 65 68 58 41 56 43 26 36
Model¶
The model for the synonym dictionary is that a term or group of consecutive terms can have one or more synonym terms. A group of consecutive terms is specified in the dictionary by simply joining them with a single space between each one.
If a term to be synonym expanded will be stemmed by the Xapian::QueryParser
, then
synonyms will be checked for the unstemmed form first, and then for the stemmed
form, so you can provide different synonyms for particular unstemmed forms
if you want to.
Todo
Discuss interactions with stemming (ie, should the input and/or output values in the synonym table be stemmed).
Adding Synonyms¶
The synonyms can be added by the Xapian::WritableDatabase::add_synonym()
. In the following
example calender
is specified as a synonym for time
. Users may similarly write a loop to load all
the synonyms from a dictionary file.
db.add_synonym("time", "calendar");
QueryParser Integration¶
In order for any of the synonym features of the QueryParser to work, you must
call Xapian::QueryParser::set_database()
to specify the database to
use.
queryparser.set_database(db);
If FLAG_SYNONYM
is passed to Xapian::QueryParser::parse_query()
then the Xapian::QueryParser
will recognise ~
in front of a term as indicating a
request for synonym expansion.
If FLAG_LOVEHATE
is also specified, you can
use +
and -
before the ~
to indicate that you love or hate the
synonym expanded expression.
A synonym-expanded term becomes the term itself OP_SYNONYM-ed with any listed synonyms,
so ~truck
might expand to truck SYNONYM lorry SYNONYM van
. A group of terms is
handled in much the same way.
If FLAG_AUTO_SYNONYMS
is passed to
Xapian::QueryParser::parse_query()
then the :xapian-class:` QueryParser` will
automatically expand any term which has synonyms, unless the term is in a phrase
or similar.
If FLAG_AUTO_MULTIWORD_SYNONYMS
is passed to
Xapian::QueryParser::parse_query()
then the :xapian-class:` QueryParser` will look at
groups of terms separated only by whitespace and try to expand them as term
groups. This is done in a “greedy” fashion, so the first term which can start a
group is expanded first, and the longest group starting with that term is
expanded. After expansion, the :xapian-class:` QueryParser` will look for further possible
expansions starting with the term after the last term in the expanded group.
OP_SYNONYM¶
Todo
Query.OP_SYNONYM, and how that relates to synonym expansion.
Current Limitations¶
Explicit multi-word synonyms¶
There ought to be a way to explicitly request expansion of multi-term synonyms,
probably with the syntax ~"stock market"
. This hasn’t been implemented
yet though.
Backend Support¶
Currently synonyms are supported by the chert and glass databases. They work
with a single database or multiple databases (use
Xapian::Database::add_database()
as usual). We’ve no plans to support
them for the InMemory backend, but we do intend to support them for the remote
backend in the future.


Residential structure fire in Fort Myers
by WFTX Digital TeamFORT MYERS, Fla. — The South Trail Fire Department responded to a residential structure fire at Lakes Park RV in Fort Myers just past midnight on Saturday morning.
Crews arrived to find flames and smoke showing. The department says, crews worked quickly to extinguish the fire and prevent it from spreading to other mobile homes.


Para este onceavo encargo se nos pidió desarrollar un plan de electromovilidad, presentando la definición de la problemática, sus antecedentes, el macronivel de la intervención y la presentación de los proyectos a llevar a cabo.
2nd
3rd
4th
5th
6th
7th
8th
9th
10th
11th
12th
13th
14th
15th
16th
17th
18th
19th
20th
21st
22nd
23rd
24th
25th
26th
27th
28th
29th
30th
31st
32nd
33rd
34th
35th
36th
37th
38th
39th
40th
41st
42nd
43rd
44th
45th
46th
47th
48th
49th
50th
51st
[Volver Arriba]


This very page loads an advanced DefineJS Promised Module example. Check out the console to see the logs and the loading process of promised modules.
Using the same AMD module style you can have privileged promise based modules.
All you need to do is just returning a promise in your modules, to make them promised modules.
To see how it works, just check out the
simple-promised-module
example in the examples folder.
In this example we have a promised module named: promisedModule.js
which is responsible to wait for a specific global variable, and serves it as the module's promised value.
//promisedModule.js
define([/*'dependency'*/],
function(/*dependency*/){
return new Promise(function (fulfill, reject) {
//Here you expect to have a global variable named: myApp after 2 seconds
//otherwise your module definition gets rejected
setTimeout(function(){
if(window.myApp !== undefined){
//fulfill when succeeded and pass the fulfillment value
fulfill({
app: window.myApp,
log: 'This is just a sample promised object to serve as a promised module!'
});
} else {
//reject in case of error or unsuccessful operations
reject(new Error('No global myApp object found!!'));
}
}, 2000);
});
});
Now you could easily require it, or add it as a dependency. What will happen is, it waits for your promise to get resolved then you will have the promised module object.
//main.js
require(['promisedModule'],
function(promisedModule){
console.log(promisedModule.log);//=>This is just a sample promised object!
console.log(promisedModule.app);
});
Note:we are still discussing about the proper way of handling the rejected state of a promised module. Any feedback or proposal is really appreciated.
You can also have the same modules flow using a new offered syntax by DefineJS:
use(['dependency1', 'dependency2'])
.then(function(dependency1, dependency2){
//...
return dependency1.util;
})
.then(function(util){
//...
//use util object if it has any useful functionality
return util.map([/*...*/]);
})
.catch(function(e){
//in case of having a rejected promised module or any async error
console.error(e);
});
Check out the actual working example!
If you are interested in helping us to extend the DefineJS, we appreciate any kind of help. What w are lacking these days is a real feedback from the real world.


{% extends "emails/_baseemail.htm" %} {% block greetingemail %}Hi, {{ ticket.contactname }}.{% endblock greetingemail %} {% block contentemail %}
There is an update on your ticket from {{ comment.author_name }}.
{% include 'emails/_button.htm' with linkurl=link linktext='Open the ticket' %} {% if answerlink %}


You Probably Have Eco Anxiety, You Just Don’t Know It
Tuesday, August 29, 2017
Photo by Melanie Moore / KUOW
Subscribe to terrestrial in Apple Podcasts.
When I first heard the term eco-anxiety — a chronic fear of environmental doom — I brushed it off. It seemed like something for people who sit on yoga mats and worry about how the world is going to end because we’re not recycling enough.
But it turns out there’s more to the relationship between our brains and the environment.
As the effects of climate change get worse, psychologists are finding that it’s making people more stressed and therefore more likely to develop anxiety disorders, post-traumatic stress, depression and problems with substance abuse.
In the U.S., psychologists saw those kinds of reactions immediately after Hurricane Katrina and superstorm Sandy. And in Australia, they saw it during the Millennium drought that went on for more than a decade.
In the first episode of my new podcast terrestrial, I spoke with Jenny O’Connell, a clinical social worker who treats farmers in a rural community two hours outside of Melbourne.
“It’s been farmers killing their stock, and it’s been farmers in denial not knowing what to do,” she told me. “Some of those people have either succeeded or attempted to take their lives.”
And of course, the psychological burden is many, many times worse for people who are directly affected.
A recent study from the American Psychological Association found evidence that low-income communities and people of color suffer most from eco-anxiety. Take Hurricane Katrina. Among a sample of people affected, suicide or suicidal ideation more than doubled. And according to the study, 49 percent developed an anxiety or mood disorder such as depression.
But even for those of us who see these events unfold on social media, our brains perceive a very real threat — unlike anything our species has dealt with before. And given how the human brain is wired, we just aren’t built to handle it.
In this episode, we’ll also follow Seattle filmmaker Chris Jordan’s journey to an island in the South Pacific to confront the effects of plastic pollution on the Laysan Albatross.
Here's the devastating thing about these albatrosses: The plastic pollution we put into the ocean winds up in their bodies. When Jordan learned about the birds, he felt a pull to visit. He ended up traveling to Midway Atoll eight times.
“I would open up a bird and take out a handful of bottle caps, and I would just dissolve into tears of grief," he said.
When he returned from his first trip to Midway, he sank into a year of depression. "I felt like I was too small to make a difference,” he said.
But Jordan returned to Midway, because he knew he needed the full story of these birds. And something surprising happened. He was able to face his grief, allowing it to roll through him, which resulted in a feeling he describes as ecstasy.
“Grief is the love we feel for something we're losing or that is suffering,” Jordan told me. “It brings us so deeply into the present moment and it connects us with our love for whatever that thing is.”
He still worries, of course, about where we’re headed and what we’re doing to the planet.
"For me, it's important to not kind of pacify myself or convince myself that I'm doing enough,” he said. “I want to feel my anxiety."
Because addressing that anxiety is the first step to moving beyond it and getting to work.
Want more KPBS news?
Find us on Twitter and Facebook, or sign up for our newsletters. + Subscribe to our podcasts
To view PDF documents, Download Acrobat Reader.


@dothanhlam
Technical Lead @ EveryMatrix Vietnam
Ho Chi Minh City, Vietnam
@dothanhlam
https://github.com/dothanhlam
because of YOU - the Software Engineer
Sharing the difficult in LIFE and WORK
Growing up rapidly
Leading company everywhere
A bright future
Process killer
Mistrust People
Product is not mine
Refuse learning new things
Tools and Google addiction
Lacking experience but claiming themselves as senior
'NoActionTalkOnly' manager
Delivering Western standards under Vietnam conditions
Working both harder and smarter
Ruining health
societal and familial obligations


You can define package dimensions in ShipConsole, if you want to allow selection of package dimensions from a list of values for the same location. Shipping User can select any one of the defined dimensions at the time of shipping in shipments page at package details section, and that dimensions will be sent to the carrier as the package dimensions.
When the Client Admin clicks the “Package Dimensions”link in the top menu, it navigates to Package Dimensions page through which the Client Admin can create/edit Package Dimensions for a Location.
Figure 9.1
To create a new dimension for a location click on “Go” button after selecting a location where you need to create new dimensions and click on “Create” button, which opens the Package Dimensions creation page as shown below. In this page enter the details and click on “Save” to save the dimensions or click on “Cancel” button to cancel.
Figure 9.2
Dimension Name:Name of the dimension
Length:Length
Width: Width
Height:Height
Units:Units in IN, CM, M
Note: Dimension Name should be unique. We are notifying admin user with a message when he tries to create a new dimension with name which already exists.
After saving the values successfully a message is displayed as shown below Figure 9.3.
Figure 9.3
The Client Admin can also modify an existing dimension by clicking on the Edit image next to an dimension name, which opens the window as shown below.
Figure 9.4
Edit any of the values and click on “Update” button for the modified values to be saved or click on “Cancel” to cancel the updates.
On successful update following screen will be shown:
Figure 9.5


"HADAR" Adod, brave(?). (1.) A son of Ishmael (Genesis 25:15); in 1 Chronicles 1:30 written Hadad. (2.) One of the Edomitish kings (Genesis 36:39) about the time of Saul. Called also Hadad (1 Chronicles 1:50, 51). It is probable that in these cases Hadar may be an error simply of transcription for Hadad.
"HADAR" Adod, brave(?). (1.) A son of Ishmael (Genesis 25:15); in 1 Chronicles 1:30 written Hadad.
(2.) One of the Edomitish kings (Genesis 36:39) about the time of Saul.
Called also Hadad (1 Chronicles 1:50, 51).
It is probable that in these cases Hadar may be an error simply of transcription for Hadad.


I’m moving to London, and soon. I hate moving house. I’ve done it a lot and each time I do it I still hate it.
Here’s what I’m aiming for:
- move out of shared accommodation
- ship some of my stuff to the UK
- keep some of my stuff in luggage
- sell or donate the rest of my stuff
I’d dearly love someone to manage all of this for me, and am willing to pay a premium for it. If not, well, I’ve done it before (except for the UK bit).
More info about the move later.
Hope all the plans go smoothly aren't to much of a hassle.


THE MASK OF ZORRO (1998) A Film Review by Ted Prigge Copyright 1998 Ted Prigge
Director: Martin Campbell Writers: Terry Rossio, Ted Elliott, and John Eskow Starring: Antonio Banderas, Anthony Hopkins, Catherine Zeta Jones, Stuart Wilson, Matthew Letscher, Tony Amendola, Pedro Armendáriz Jr., L.Q. Jones, Maury Chaykin, Julieta Rosen
"The Mask of Zorro" is like all of the old classic swashbucklers of the 20s and 30s: action-packed, filled with lots of melodrama, seeming with characters we either love or hate, marvelously entertaining, and instantly forgettable. I can't remember a lot of my reactions to this film as I watched, and perhaps thinking about it a bit, I could probably point out several things that I didn't like about it. But all I remember is that for 2 hours plus, I was glued to the screen, swept up in the melodrama, and had a big smile on my face the entire time. Afterwards, it was more of a grimace, but what are you gonna do?
Zorro is the latest of the classics of either TV or movies to be rehashed by Hollywood and spit at the American Moviegoing Public, and luckily enough Zorro's one that even I'd want to remake. Basically, Zorro's a big showman. He doesn't just punish the wicked and return faith to the downtrodden like a modern-day Mexican Robin Hood; he's got to do some mugging, which is why he's such an interesting legend. But this film actually gives us not one but two Zorros, not to chose from, but to see the torch being passed from one to another.
The film begins with the first Zorro, really a reclusive land owner named Don Diego de la Vega (Anthony Hopkins, sans Mexican accent), who rides to town every now and then to help the poor and battle his tryannical politician enemy, Don Rafael Montero (Stuart Wilson, the baddie from "Lethal Weapon 3," if you can at all remember him), then returns to his villa on the edge of a cliff to be with his wife, Esperanza (Julieta Rosen), and his newborn baby girl. We are introduced to him when his fame has already presided him, and after one big, very satisfying action sequence towards the begining (glad to see Mr. Hopkins' stunt man is finally getting some work), he is discovered by Rafael, his wife is accidentally shot, his baby is stolen by Rafael, and he is sent to prison for the rest of his life.
Jump about 20 years and Rafael is now returning to power again, this time to end the long running war with Santa Anna over the property of California. Now enter con man Alejandro Murrieta (Anthony Hopkins), who seeks revenge on an evil general of Montero's, Captain Harison Love (Matthew Letscher), who kills his brother towards the beginning (sorta). Luckily, Diego has escaped from prison, and upon stumbling into Alejandro at a bar, he decides that his fiery intensity, if properly trained, will result in a redux of Zorro-dom, since he's way too old, but he still wants to get revenge on Rafael and maybe introduce himself to his daughter, Elena (a lusty and wonderfully-acting Catherine Zeta Jones), who's now much older not to mention much more, well, buxom.
So goes the backstory to "The Mask of Zorro," and you can easily see how melodramatic this all is, and how things will get even more melodramatic as Alejandro learns how to fight and become suave (the film stages a massive "Pygmalion"-esque sequence of him learning to fight, yet skips everything about him learning to pass as a member of the Mexican aristocracy). Things become a tad more complicated as Alejandro starts posing as a politician of sorts, and learns of some major political corruptedness. Anyways, it's all there just to involve the audience with a simple story of passionate revenge, learning how to obtain dignity, and standing up against the unjust. And it's all just fun stuff because, unlike many films, the characters we're supposed to like are very likable, and the characters we're not supposed to like are very unlikable. Just like the old movies.
The film's one major flaw may just be that it's trying to be everything, and in the pursuit of telling a story, it denies the one thing that the film really honestly needs: Zorro. The character only pops up every now and then, more and more towards the end, and the first times that Banderas dons the costume and persona of the famous rebel are wonderfully awkward, but eventually Banderas becomes Zorro. When he finally gets it right, it's just amazing stuff. Banderas has proved himself to a few moviegoers, mostly those who actually saw "Desperado" (one of the, like, billion films he made in the fall of '95), that he's a suave, lovable, and wonderful comic actor, capable of perhaps becoming one of the most likable graceful action stars since Douglas Fairbanks (Sr.). He has the kind of radiance that lets the audience know that he's having lots of fun and the gracefulness to be awe-inspiring and just plain lovable. When he finally discovers Zorro in himself, it just proves what the trailers suggested: Antonio Banderas was born to play this role. And he should do it agian, for God's sake.
But the part of this film that really won me over was not Banderas's Zorro, but Anthony Hopkins' Diego, a man who could have just been a simple character, bent on revenge, but is instead portrayed as an emotionally complex individual, thanks to Hopkins, who plays him with a mix of mystery and sadness. We never know what really made his character become Zorro in the first place, but Hopkins hints at in his acting and makes everything just seem real. If Zorro is the reason you're seeing it in the first place, Diego should be the reason you feel something emotionally.
However bold Hopkins' performance is, he never lets this film become heavy handed, and his brooding never overblows the fact that this film is simply just good old American entertainment. There's no message, no dark undertones, and the depth is kept to a minimum. I could probably easily complain that these are faults in the production and that I want to see big budget Hollywood event pics, such as this, become "smarter"...but I won't, because in all reality, I don't want all of them to be like that. "The Mask of Zorro" is not a dumb film, but it's not a terribly brilliant film and that's all right. It's escapism at its purist because it recognizes that sometimes the most entertaining films are those that simply tell a good story and tell it with interesting characters and lots of passion.
MY RATING (out of 4): ***
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
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