MAD Labs is a subset of the most technically experienced and passionate MAD members that focuses on creating quality mobile apps for others. Members specialize in iOS, Android, or web platforms.
MAD Labs is a subset of the most technically experienced and passionate MAD members that focuses on creating quality mobile apps for others. Members specialize in iOS, Android, or web platforms.
Simple apps can have an extraordinary impact, but the communities that might benefit often don't have the means or expertise to build them. MAD Labs aims to provide development work to non-profit groups to help them achieve their goals. As a student organization, many of our projects serve the larger Austin community, other student orgs at UT Austin, or MAD itself.
Developed simultaneously across four platforms, the uMAD application provides attendees with up to date information about schedule changes, event locations, food and more. The app is updated for each uMAD and is in its second release.
Have an idea for a not-for-profit app that could benefit the community?
Submit an ideaLabs members have a passion for mobile development and a desire to create things that help others. Every new project is an opportunity for service, leadership and learning. The MAD Labs team welcomes new members through one-to-one mentorships with our current members.
Join some of your most skilled peers to create apps with purpose!
Interest form open


This sample is a working example of an STI (Still Image) user-mode minidriver. The main purpose of this sample is to show how to implement events in the minidriver. Events are hardware-initiated, usually caused when the user pushes a button on the device. Rather than require the installation of hardware, this sample uses a test file to simulate hardware events. When the test file changes or changes size, the minidriver simulates a hardware event.
This user-mode minidriver sample works in conjunction with a sample control panel found in the Sampcpl directory. Both parts need to be built to run this example.
To build the sample, open a DDK command window, change to the Sampusd directory, and use the build command. After building, put the Sampusd.dll and Sampusd.inf files in a temporary directory with the Sampcpl.cpl file built from the Sampcpl directory of the DDK. To install it, use the Hardware Wizard control panel, or the Add button in the Scanners and Cameras control panel. When prompted by the wizard to search for your new hardware, select No, and then select Imaging Device from the next dialog box.
Use the Have Disk button to point to the temporary directory where the files are located. The wizard will ask if the device is attached to COM1 or COM2. It doesn't matter which one you choose, as this value will be changed later. In the Scanners and Cameras control panel, select Properties of the sample device. It will initially read, "Status: Unavailable." On the Sample USD tab, type in the name of a temporary test file (for example, C:\Temp\Sample.txt). Create the test file if it does not already exist. The value will not be updated in the control panel until the Still Image Service is restarted. Open the Computer Manager (right-click My Computer and select Manage), select System Tools, and then Services, and stop and then restart the Still Image service.
To simulate an event, use the test file created above. Changing the test file's size will cause a File Size Changed event. Altering the file without changing its size will cause a File Time Changed event. These events can be linked to different applications using the Event tab in the Scanners and Cameras control panel. Try causing each of these events and watch the applications launch.
This sample has not been tested on Alpha platforms. It has not been confirmed to be 64-bit compliant. The code builds properly with Microsoft Visual C® 6.0. Plug and Play and Power Management are not applicable to this sample.
Building this sample produces three files: Sampusd.dll, Sampusd.lib, and Sampusd.exp. Both free and checked versions are buildable. The sample has been tested with a binary that was built with Visual C 5.0.
The minidriver is used by two software components: the Scanners and Cameras control panel and the Still Image service. The Control Panel uses the minidriver to check on the status of the device. The Still Image service will check if the device has an event pending.
By building and using a checked (debug) version of the minidriver and a debugger, you can examine how it works in each of these instances. To debug the minidriver when it is called by the Control Panel, use control sticpl.cpl as the command for the debugger to execute. Put a breakpoint in one or more of the functions in Device.cpp that the control panel calls (e.g. GetStatus, Diagnostic, Initialize, LockDevice, UnLockDevice). To debug the minidriver when it is called by the Still Image service, use stisvc.exe -a as the command and put a breakpoint in GetStatus, Initialize, DeviceReset, LockDevice, or UnLockDevice. Since this sample also support events, the GetNotificationData function will also be of interest.
The Stillvue application in the Scancam\App directory of this DDK can be used to test any function in the minidriver. See the documentation in that directory for more information.
More information on TWAIN can be found at http://www.twain.org.
To get a logo for your device, consult WHQL for information and test suites.
Your device should support Plug and Play, even if it uses the parallel or serial port. Download Plug and Play specs from their Web site.
File DescriptionSampusd.htm The documentation for this sample (this file) Sampusd.cpp Implements DLL and COM housekeeping Device.cpp Implements the functions of the minidriver Sampusd.h Main header file Sampusd.rc Main resource file Sampusd.rcv Contains version resource Resource.h Resource defines (currently empty) Makefile The makefile for the project; do not edit. Sources DDK build instructions Sampusd.def DLL definition Sampusd.inf Installation information for the sample
Each of the functions implemented in device.cpp is documented in the DDK documentation under Still Image Interfaces, IStiUSD Interface.
© 1999 Microsoft Corporation


...find out in minutes by answering a few questions...
Now that Epicodus offers so many different courses, we often get students unsure of what to take after they finish Introduction to Programming.
Though each language has its niche, there is plenty of crossover. For example, Rails' popularity inspired copycats in just about every language, and so you'll see interactive web applications written in C#, Java, and PHP, with Rails-like frameworks including .NET MVC, Spring, and Laravel. Even at one company, you might find them using PHP for their marketing site, Ruby for their web application, and Java for their back-end processing.
The most important thing is to get the basic principles of coding down, practice a lot, and be ready to change to another language when your job inevitably does.
Here at Epicodus, we've created a quick quiz to help you decide which track might be best for you. It'll only take a minute or two, click the button below to get started!
C# is most popular among bigger established businesses, often for building internal software. Because it's been around for a long time and has the backing of Microsoft, it is one of the most in-demand languages in the job market. C# has also been going through a bit of a rebirth lately, with Microsoft open sourcing the language and surrounding platform, porting it to run on Mac and Linux, and incorporating many of the best features of other languages. If you like the idea of working for a larger company on business software, C# is a great choice.
Not feeling it? Take the quiz again!
Front-end developers spend their time making things look and work well, obsessing over layouts, navigation, colors, and design. If this type of work appeals to you, your best bet is to take CSS and Design classes at Epicodus.
Not feeling it? Take the quiz again!
Ruby is a favorite language of developers building interactive web applications. If an app involves users creating accounts, entering information, and interacting with dynamic content, there's a good chance it is built with Ruby. Ruby became popular because the Rails framework, which is written with Ruby, simplified many of the common tasks associated with building web applications. It's most popular with startups and smaller companies who are looking to build their product quickly.
Not feeling it? Take the quiz again!


Hello World! in more detail¶
The previous chapter focused on building the Hello World! example while this chapter will focus on the code itself; what has to be done to code this small example.
Hello World! DataType¶
Data-Centric Architecture¶
By creating a Data-centric architecture, you get a loosely coupled information-driven system. It emphasizes a data layer that is common for all distributed applications within the system. Because there is no direct coupling among the applications in the DDS model, they can be added and removed easily in a modular and scalable manner. This makes that the complexity of a data-centric architecture doesn’t really increase when more and more publishers/subscribers are added.
The Hello World! example has a very simple ‘data layer’ of only
one data type HelloWorldData_Msg
(please read on).
The subscriber and publisher are not aware of each other.
The former just waits until somebody provides the data it
requires, while the latter just publishes the data without
considering the number of interested parties. In other words,
it doesn’t matter for the publisher if there are none or
multiple subscribers (try running the Hello World! example
by starting multiple HelloworldSubscribers before starting a
HelloworldPublisher). A publisher just writes the data. The
DDS middleware takes care of delivering the data when needed.
HelloWorldData.idl¶
To be able to sent data from a writer to a reader, DDS needs to know the data type. For the Hello World! example, this data type is described using IDL and is located in HelloWorldData.idl. This IDL file will be compiled by a IDL compiler which in turn generates a C language source and header file. These generated source and header file will be used by the HelloworldSubscriber and HelloworldPublisher in order to communicate the Hello World! message between the HelloworldPublisher and the HelloworldSubscriber.
Hello World! IDL¶
There are a few ways to describe the structures that make up the data layer. The HelloWorld uses the IDL language to describe the data type in HelloWorldData.idl:
1 2 3 4 5 6 7 8 9 | module HelloWorldData
{
struct Msg
{
long userID;
string message;
};
#pragma keylist Msg userID
};
|
An extensive explanation of IDL lies outside the scope of this example. Nevertheless, a quick overview of this example is given anyway.
First, there’s the module HelloWorldData
. This is a kind
of namespace or scope or similar.
Within that module, there’s the struct Msg
. This is the
actual data structure that is used for the communication. In
this case, it contains a userID
and message
.
The combination of this module and struct translates to the following when using the c language.
typedef struct HelloWorldData_Msg
{
int32_t userID;
char * message;
} HelloWorldData_Msg;
When it is translated to a different language, it will look different and more tailored towards that language. This is the advantage of using a data oriented language, like IDL, to describe the data layer. It can be translated into different languages after which the resulting applications can communicate without concerns about the (possible different) programming languages these application are written in.
Generate Sources and Headers¶
Like already mentioned in the Hello World! IDL chapter, an IDL file contains the description of data type(s). This needs to be translated into programming languages to be useful in the creation of DDS applications.
To be able to do that, there’s a pre-compile step that actually compiles the IDL file into the desired programming language.
A java application org.eclipse.cyclonedds.compilers.Idlc
is supplied to support this pre-compile step. This is available
in idlc-jar-with-dependencies.jar
The compilation from IDL into c source code is as simple as starting that java application with an IDL file. In the case of the Hello World! example, that IDL file is HelloWorldData.idl.
java -classpath "<install_dir>/share/CycloneDDS/idlc/idlc-jar-with-dependencies.jar" org.eclipse.cyclonedds.compilers.Idlc HelloWorldData.idl
- Windows
The
HelloWorldType
project within the HelloWorld solution.- Linux
The
make datatype
command.
This will result in new generated/HelloWorldData.c
and
generated/HelloWorldData.h
files that can be used in the Hello World! publisher and
subscriber applications.
The application has to be rebuild when the data type source files were re-generated.
Again, this is all for the native builds. When using CMake, all this is done automatically.
HelloWorldData.c & HelloWorldData.h¶
As described in the Hello World! DataType paragraph, the IDL compiler will generate this source and header file. These files contain the data type of the messages that are sent and received.
While the c source has no interest for the application developers, HelloWorldData.h contains some information that they depend on. For example, it contains the actual message structure that is used when writing or reading data.
typedef struct HelloWorldData_Msg
{
int32_t userID;
char * message;
} HelloWorldData_Msg;
It also contains convenience macros to allocate and free memory space for the specific data types.
HelloWorldData_Msg__alloc()
HelloWorldData_Msg_free(d,o)
It contains an extern variable that describes the data type to the DDS middleware as well.
HelloWorldData_Msg_desc
Hello World! Business Logic¶
Apart from the HelloWorldData data type files that the Hello World! example uses to send messages, the Hello World! example also contains two (user) source files (subscriber.c and publisher.c), containing the business logic.
Hello World! Subscriber Source Code¶
Subscriber.c contains the source that will wait for a Hello World! message and reads it when it receives one.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #include "dds/dds.h"
#include "HelloWorldData.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* An array of one message (aka sample in dds terms) will be used. */
#define MAX_SAMPLES 1
int main (int argc, char ** argv)
{
dds_entity_t participant;
dds_entity_t topic;
dds_entity_t reader;
HelloWorldData_Msg *msg;
void *samples[MAX_SAMPLES];
dds_sample_info_t infos[MAX_SAMPLES];
dds_return_t rc;
dds_qos_t *qos;
(void)argc;
(void)argv;
/* Create a Participant. */
participant = dds_create_participant (DDS_DOMAIN_DEFAULT, NULL, NULL);
if (participant < 0)
DDS_FATAL("dds_create_participant: %s\n", dds_strretcode(-participant));
/* Create a Topic. */
topic = dds_create_topic (
participant, &HelloWorldData_Msg_desc, "HelloWorldData_Msg", NULL, NULL);
if (topic < 0)
DDS_FATAL("dds_create_topic: %s\n", dds_strretcode(-topic));
/* Create a reliable Reader. */
qos = dds_create_qos ();
dds_qset_reliability (qos, DDS_RELIABILITY_RELIABLE, DDS_SECS (10));
reader = dds_create_reader (participant, topic, qos, NULL);
if (reader < 0)
DDS_FATAL("dds_create_reader: %s\n", dds_strretcode(-reader));
dds_delete_qos(qos);
printf ("\n=== [Subscriber] Waiting for a sample ...\n");
fflush (stdout);
/* Initialize sample buffer, by pointing the void pointer within
* the buffer array to a valid sample memory location. */
samples[0] = HelloWorldData_Msg__alloc ();
/* Poll until data has been read. */
while (true)
{
/* Do the actual read.
* The return value contains the number of read samples. */
rc = dds_read (reader, samples, infos, MAX_SAMPLES, MAX_SAMPLES);
if (rc < 0)
DDS_FATAL("dds_read: %s\n", dds_strretcode(-rc));
/* Check if we read some data and it is valid. */
if ((rc > 0) && (infos[0].valid_data))
{
/* Print Message. */
msg = (HelloWorldData_Msg*) samples[0];
printf ("=== [Subscriber] Received : ");
printf ("Message (%"PRId32", %s)\n", msg->userID, msg->message);
fflush (stdout);
break;
}
else
{
/* Polling sleep. */
dds_sleepfor (DDS_MSECS (20));
}
}
/* Free the data location. */
HelloWorldData_Msg_free (samples[0], DDS_FREE_ALL);
/* Deleting the participant will delete all its children recursively as well. */
rc = dds_delete (participant);
if (rc != DDS_RETCODE_OK)
DDS_FATAL("dds_delete: %s\n", dds_strretcode(-rc));
return EXIT_SUCCESS;
}
|
We will be using the DDS API and the HelloWorldData_Msg type to receive data. For that, we need to include the appropriate header files.
#include "dds/dds.h"
#include "HelloWorldData.h"
The main starts with defining a few variables that will be used for reading the Hello World! message. The entities are needed to create a reader.
dds_entity_t participant;
dds_entity_t topic;
dds_entity_t reader;
Then there are some buffers that are needed to actually read the data.
HelloWorldData_Msg *msg;
void *samples[MAX_SAMPLES];
dds_sample_info_t info[MAX_SAMPLES];
To be able to create a reader, we first need a participant. This participant is part of a specific communication domain. In the Hello World! example case, it is part of the default domain.
participant = dds_create_participant (DDS_DOMAIN_DEFAULT, NULL, NULL);
The another requisite is the topic which basically describes the data type that is used by the reader. When creating the topic, the data description for the DDS middleware that is present in the HelloWorldData.h is used. The topic also has a name. Topics with the same data type description, but with different names, are considered different topics. This means that readers/writers created with a topic named “A” will not interfere with readers/writers created with a topic named “B”.
topic = dds_create_topic (participant, &HelloWorldData_Msg_desc,
"HelloWorldData_Msg", NULL, NULL);
When we have a participant and a topic, we then can create the reader. Since the order in which the Hello World! Publisher and Hello World! Subscriber are started shouldn’t matter, we need to create a so called ‘reliable’ reader. Without going into details, the reader will be created like this
dds_qos_t *qos = dds_create_qos ();
dds_qset_reliability (qos, DDS_RELIABILITY_RELIABLE, DDS_SECS (10));
reader = dds_create_reader (participant, topic, qos, NULL);
dds_delete_qos(qos);
We are almost able to read data. However, the read expects an
array of pointers to valid memory locations. This means the
samples array needs initialization. In this example, we have
an array of only one element: #define MAX_SAMPLES 1
.
So, we only need to initialize one element.
samples[0] = HelloWorldData_Msg__alloc ();
Now everything is ready for reading data. But we don’t know if there is any data. To simplify things, we enter a polling loop that will exit when data has been read.
Within the polling loop, we do the actual read. We provide the
initialized array of pointers (samples
), an array that
holds information about the read sample(s) (info
), the
size of the arrays and the maximum number of samples to read.
Every read sample in the samples array has related information
in the info array at the same index.
ret = dds_read (reader, samples, info, MAX_SAMPLES, MAX_SAMPLES);
The dds_read
function returns the number of samples it
actually read. We can use that to determine if the function actually
read some data. When it has, then it is still possible that the
data part of the sample is not valid. This has some use cases
when there is no real data, but still the state of the related
sample has changed (for instance it was deleted). This will
normally not happen in the Hello World! example. But we check
for it anyway.
if ((ret > 0) && (info[0].valid_data))
If data has been read, then we can cast the void pointer to the actual message data type and display the contents. The polling loop is quit as well in this case.
msg = (HelloWorldData_Msg*) samples[0];
printf ("=== [Subscriber] Received : ");
printf ("Message (%d, %s)\n", msg->userID, msg->message);
break;
When data is received and the polling loop is stopped, we need to clean up.
HelloWorldData_Msg_free (samples[0], DDS_FREE_ALL);
dds_delete (participant);
All the entities that are created using the participant are also deleted. This means that deleting the participant will automatically delete the topic and reader as well.
Hello World! Publisher Source Code¶
Publisher.c contains the source that will write an Hello World! message on which the subscriber is waiting.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #include "dds/dds.h"
#include "HelloWorldData.h"
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char ** argv)
{
dds_entity_t participant;
dds_entity_t topic;
dds_entity_t writer;
dds_return_t rc;
HelloWorldData_Msg msg;
uint32_t status = 0;
(void)argc;
(void)argv;
/* Create a Participant. */
participant = dds_create_participant (DDS_DOMAIN_DEFAULT, NULL, NULL);
if (participant < 0)
DDS_FATAL("dds_create_participant: %s\n", dds_strretcode(-participant));
/* Create a Topic. */
topic = dds_create_topic (
participant, &HelloWorldData_Msg_desc, "HelloWorldData_Msg", NULL, NULL);
if (topic < 0)
DDS_FATAL("dds_create_topic: %s\n", dds_strretcode(-topic));
/* Create a Writer. */
writer = dds_create_writer (participant, topic, NULL, NULL);
if (writer < 0)
DDS_FATAL("dds_create_writer: %s\n", dds_strretcode(-writer));
printf("=== [Publisher] Waiting for a reader to be discovered ...\n");
fflush (stdout);
rc = dds_set_status_mask(writer, DDS_PUBLICATION_MATCHED_STATUS);
if (rc != DDS_RETCODE_OK)
DDS_FATAL("dds_set_status_mask: %s\n", dds_strretcode(-rc));
while(!(status & DDS_PUBLICATION_MATCHED_STATUS))
{
rc = dds_get_status_changes (writer, &status);
if (rc != DDS_RETCODE_OK)
DDS_FATAL("dds_get_status_changes: %s\n", dds_strretcode(-rc));
/* Polling sleep. */
dds_sleepfor (DDS_MSECS (20));
}
/* Create a message to write. */
msg.userID = 1;
msg.message = "Hello World";
printf ("=== [Publisher] Writing : ");
printf ("Message (%"PRId32", %s)\n", msg.userID, msg.message);
fflush (stdout);
rc = dds_write (writer, &msg);
if (rc != DDS_RETCODE_OK)
DDS_FATAL("dds_write: %s\n", dds_strretcode(-rc));
/* Deleting the participant will delete all its children recursively as well. */
rc = dds_delete (participant);
if (rc != DDS_RETCODE_OK)
DDS_FATAL("dds_delete: %s\n", dds_strretcode(-rc));
return EXIT_SUCCESS;
}
|
We will be using the DDS API and the HelloWorldData_Msg type to sent data. For that, we need to include the appropriate header files.
#include "dds/dds.h"
#include "HelloWorldData.h"
Just like with the reader in subscriber.c, we need a participant and a topic to be able to create a writer. We use the same topic name as in subscriber.c. Otherwise the reader and writer are not considered related and data will not be sent between them.
dds_entity_t participant;
dds_entity_t topic;
dds_entity_t writer;
participant = dds_create_participant (DDS_DOMAIN_DEFAULT, NULL, NULL);
topic = dds_create_topic (participant, &HelloWorldData_Msg_desc,
"HelloWorldData_Msg", NULL, NULL);
writer = dds_create_writer (participant, topic, NULL, NULL);
The DDS middleware is a publication/subscription implementation. This means that it will discover related readers and writers (i.e. readers and writers sharing the same data type and topic name) and connect them so that written data can be received by readers without the application having to worry about it. There is a catch though: this discovery and coupling takes a small amount of time. There are various ways to work around this problem. The following can be done to properly connect readers and writers:
Wait for the publication/subscription matched events
The Subscriber should wait for a subscription matched event
The Publisher should wait for a publication matched event.
The use of these events will be outside the scope of this example
Poll for the publication/subscription matches statusses
The Subscriber should poll for a subscription matched status to be set
The Publisher should poll for a publication matched status to be set
The Publisher in this example uses the polling schema.
Let the publisher sleep for a second before writing a sample. This is not recommended since a second may not be enough on several networks
Accept that the reader miss a few samples at startup. This may be acceptable in cases where the publishing rate is high enough.
As said, the publisher of this example polls for the publication matched status. To make this happen, the writer must be instructed to ‘listen’ for this status. The following line of code makes sure the writer does so.
dds_set_status_mask(writer, DDS_PUBLICATION_MATCHED_STATUS);
Now the polling may start:
while(true)
{
uint32_t status;
ret = dds_get_status_changes (writer, &status);
DDS_ERR_CHECK(ret, DDS_CHECK_REPORT | DDS_CHECK_EXIT);
if (status == DDS_PUBLICATION_MATCHED_STATUS) {
break;
}
/* Polling sleep. */
dds_sleepfor (DDS_MSECS (20));
}
After this loop, we are sure that a matching reader has been started. Now, we commence to writing the data. First the data must be initialized
HelloWorldData_Msg msg;
msg.userID = 1;
msg.message = "Hello World";
Then we can actually sent the message to be received by the subscriber.
ret = dds_write (writer, &msg);
After the sample is written, we need to clean up.
ret = dds_delete (participant);
All the entities that are created using the participant are also deleted. This means that deleting the participant will automatically delete the topic and writer as well.


[ aws . machinelearning ]
Returns a list of DataSource that match the search criteria in the request.
See also: AWS API Documentation
describe-data-sources is a paginated operation. Multiple API calls may be issued in order to retrieve the entire data set of results. You can disable pagination by providing the --no-paginate argument. When using --output text and the --query argument on a paginated response, the --query argument must extract data from the results of the following query expressions: Results
describe-data-sources
[--filter-variable <value>]
[--eq <value>]
[--gt <value>]
[--lt <value>]
[--ge <value>]
[--le <value>]
[--ne <value>]
[--prefix <value>]
[--sort-order <value>]
[--cli-input-json <value>]
[--starting-token <value>]
[--page-size <value>]
[--max-items <value>]
[--generate-cli-skeleton <value>]
Use one of the following variables to filter a list of DataSource :
- CreatedAt - Sets the search criteria to DataSource creation dates.
- Status - Sets the search criteria to DataSource statuses.
- Name - Sets the search criteria to the contents of DataSource **** Name .
- DataUri - Sets the search criteria to the URI of data files used to create the DataSource . The URI can identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket or directory.
- IAMUser - Sets the search criteria to the user account that invoked the DataSource creation.
Possible values:
- CreatedAt
- LastUpdatedAt
- Status
- Name
- DataLocationS3
- IAMUser
The equal to operator. The DataSource results will have FilterVariable values that exactly match the value specified with EQ .
The greater than operator. The DataSource results will have FilterVariable values that are greater than the value specified with GT .
The less than operator. The DataSource results will have FilterVariable values that are less than the value specified with LT .
The greater than or equal to operator. The DataSource results will have FilterVariable values that are greater than or equal to the value specified with GE .
The less than or equal to operator. The DataSource results will have FilterVariable values that are less than or equal to the value specified with LE .
The not equal to operator. The DataSource results will have FilterVariable values not equal to the value specified with NE .
A string that is found at the beginning of a variable, such as Name or Id .
For example, a DataSource could have the Name 2014-09-09-HolidayGiftMailer . To search for this DataSource , select Name for the FilterVariable and any of the following strings for the Prefix :
- 2014-09
- 2014-09-09
- 2014-09-09-Holiday
A two-value parameter that determines the sequence of the resulting list of DataSource .
- asc - Arranges the list in ascending order (A-Z, 0-9).
- dsc - Arranges the list in descending order (Z-A, 9-0).
Results are sorted by FilterVariable .
Possible values:
- asc
- dsc
--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values.
A token to specify where to start paginating. This is the NextToken from a previously truncated response.
The size of each page.
The total number of items to return. If the total number of items available is more than the value specified in max-items then a NextToken will be provided in the output that you can use to resume pagination. This NextToken response element should not be used directly outside of the AWS CLI.
--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
Results -> (list)
A list of DataSource that meet the search criteria.
(structure)
Represents the output of the get-data-source operation.
The content consists of the detailed metadata and data file information and the current status of the DataSource .
DataSourceId -> (string)
The ID that is assigned to the DataSource during creation.DataLocationS3 -> (string)
The location and name of the data in Amazon Simple Storage Service (Amazon S3) that is used by a DataSource .DataRearrangement -> (string)
A JSON string that represents the splitting and rearrangement requirement used when this DataSource was created.CreatedByIamUser -> (string)
The AWS user account from which the DataSource was created. The account type can be either an AWS root account or an AWS Identity and Access Management (IAM) user account.CreatedAt -> (timestamp)
The time that the DataSource was created. The time is expressed in epoch time.LastUpdatedAt -> (timestamp)
The time of the most recent edit to the BatchPrediction . The time is expressed in epoch time.DataSizeInBytes -> (long)
The total number of observations contained in the data files that the DataSource references.NumberOfFiles -> (long)
The number of data files referenced by the DataSource .Name -> (string)
A user-supplied name or description of the DataSource .Status -> (string)
The current status of the DataSource . This element can have one of the following values:
- PENDING - Amazon Machine Learning (Amazon ML) submitted a request to create a DataSource .
- INPROGRESS - The creation process is underway.
- FAILED - The request to create a DataSource did not run to completion. It is not usable.
- COMPLETED - The creation process completed successfully.
- DELETED - The DataSource is marked as deleted. It is not usable.
Message -> (string)
A description of the most recent details about creating the DataSource .RedshiftMetadata -> (structure)
Describes the DataSource details specific to Amazon Redshift.
RedshiftDatabase -> (structure)
Describes the database details required to connect to an Amazon Redshift database.
DatabaseName -> (string)
The name of a database hosted on an Amazon Redshift cluster.ClusterIdentifier -> (string)
The ID of an Amazon Redshift cluster.DatabaseUserName -> (string)
A username to be used by Amazon Machine Learning (Amazon ML)to connect to a database on an Amazon Redshift cluster. The username should have sufficient permissions to execute the RedshiftSelectSqlQuery query. The username should be valid for an Amazon Redshift USER .SelectSqlQuery -> (string)
The SQL query that is specified during create-data-source-from-redshift . Returns only if Verbose is true in GetDataSourceInput.RDSMetadata -> (structure)
The datasource details that are specific to Amazon RDS.
Database -> (structure)
The database details required to connect to an Amazon RDS.
InstanceIdentifier -> (string)
The ID of an RDS DB instance.DatabaseName -> (string)
The name of a database hosted on an RDS DB instance.DatabaseUserName -> (string)
The username to be used by Amazon ML to connect to database on an Amazon RDS instance. The username should have sufficient permissions to execute an RDSSelectSqlQuery query.SelectSqlQuery -> (string)
The SQL query that is supplied during create-data-source-from-rds . Returns only if Verbose is true in GetDataSourceInput .ResourceRole -> (string)
The role (DataPipelineDefaultResourceRole) assumed by an Amazon EC2 instance to carry out the copy task from Amazon RDS to Amazon S3. For more information, see Role templates for data pipelines.ServiceRole -> (string)
The role (DataPipelineDefaultRole) assumed by the Data Pipeline service to monitor the progress of the copy task from Amazon RDS to Amazon S3. For more information, see Role templates for data pipelines.DataPipelineId -> (string)
The ID of the Data Pipeline instance that is used to carry to copy data from Amazon RDS to Amazon S3. You can use the ID to find details about the instance in the Data Pipeline console.RoleARN -> (string)
The Amazon Resource Name (ARN) of an AWS IAM Role , such as the following: arn:aws:iam::account:role/rolename.ComputeStatistics -> (boolean)
The parameter is true if statistics need to be generated from the observation data.ComputeTime -> (long)
Long integer type that is a 64-bit signed number.FinishedAt -> (timestamp)
A timestamp represented in epoch time.StartedAt -> (timestamp)
A timestamp represented in epoch time.
NextToken -> (string)
An ID of the next page in the paginated results that indicates at least one more page follows.


@(bookForm: Form[Employee]) @layouts.layout("Edit Employee") { @helper.form(action = routes.EmployeeController.update) {


22A faster solution could be obtained by, for each element in aVec, computing of a grid of values of , and then using an approximating interpolating function (rather than the full expectation) in the FindRoot command. The associated speed improvement is fairly modest, however, so this route was not pursued.


WITNESS LIST Revenue & Public Education Funding, Select Committee February 10, 1997-5:00P Budget On: Dunn David (LBB) Hawkins Albert (Governor's Office) Keel John (LBB) Le Bas James (Governor's Office) O'Brien John S. (LBB) Rymal Greta (LBB)


Royale With Cheese is a web-based twitter and identi.ca client targetted at mobile browsers.
Features:
- Aggregated timelines from both twitter and identi.ca
- Normal tweet actions supported - Direct messages, replies, etc.
- Browse tweets from a specific location. ie. Portland OR, Sao Palo Brazil, etc.
RWC is steered by its user community. Would you like to suggest a feature, or alert us to a bug? Sound off
here.
{% include "footer.html" %}


?Mastichodendron
Arthur
Cronquist,
1944
New
York
Botanical
Gardi
v0>\
>
T
A
N
I
C
A
L
THE
NEW
YORK
BOTANICAL
GARDEN
EXPLORATION
OF
SANTO
DOMINGO
PROVINCE
OF
SEIBO
§w.,
iitjcu§
nt
Jot
N.
Taylor,
Collector
Dec.
tj
1909
01443503
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Samantha Giles reveals whether she’ll return to Emmerdale following Bernice exit
Emmerdale left viewers in tears all across the nation last night as mainstay Bernice Blackstock (Samantha Giles) departed the village.
The unlucky-in-love beautician’s happy ending was imminent, as she prepared to marry love of her life Liam (Jonny McPherson). However, daughter Dee Dee later received a call, and was left devastated by what she’d heard.
Bernice was left shell-shocked to discover that Dee Dee’s dad has been in an accident and is in intensive care.
As she deliberated over what to do for the best, she ultimately decided to put her daughter before her own happiness, and thus — after bidding adieu to Diane (Elizabeth Estensen), Nicola (Nicola Wheeler) and man of her dreams Liam — she got in a taxi with Dee Dee and left Emmerdale behind.
Viewers knew that actress Samantha Giles would be departing, so Bernice’s exit wasn’t exactly a surprise, but that didn’t make it any less heart-breaking.
Advertisement Advertisement
Speaking about her emotional exit during an appearance on This Morning, actress Samantha said: ‘No, I didn’t cry, I did so much crying on the filming. I don’t like watching myself – I did watch last night just to close the door on it.’
Elaborating on her decision to leave the soap, she told Eamonn Holmes and Ruth Langford: ‘I just felt it was the right time, thinking about it for a couple of years, I got itchy feet, I want to do some other stuff, play something more gritty.’
Speaking about whether or not she minded if her character had been killed off, she said: ‘I said I don’t mind what they did, I wouldn’t’ have minded if they did, I don’t think you can ask to leave and then say ‘don’t kill me off’ but they wanted to leave it open.’
Of course, long-time Emmerdale viewers will know that this isn’t the first time Samantha’s left the soap, so could we perhaps see a return for Bernice in the future?
Samantha said: ‘Never say never but for now the door is closed.’
Emmerdale continues Friday 29th November at 7pm on ITV.


Behavior Class
Allows abstraction of common view logic into separate object
Item Index
Methods
Properties
Methods
__augmentViewPrepare
()
private
This is called after the view's initialize method is called and will wrap the view's prepare() such that it returns the combination of the view's prepare result with the behavior's prepare result inside it under the behavior's alias.
__bindEventCallbacks
()
private
Adds behavior's event handlers to view Behavior's event handlers fire on view events but are run in the context of the behavior
__bindEventCallbacksToBehavior
-
eventHash
Parameters:
-
eventHash
Objectkeys are event descriptors, values are String method names or functions
Returns:
event hash with values as methods bound to view
__bindLifecycleMethods
()
private
Registers defined lifecycle methods to be called at appropriate time in view's lifecycle
__namespaceEvents
-
eventHash
Namespaces events in event hash
Parameters:
-
eventHash
Objectto namespace
Returns:
with event namespaced with '.behavior' and the cid of the behavior
__viewPrepareWrapper
-
viewPrepare
Wraps the view's prepare such that it returns the combination of the view and behavior's prepare results.
Parameters:
-
viewPrepare
Functionthe prepare method from the view.
Returns:
the combined view and behavior prepare() results.
{
constructor
-
behaviorOptions
-
[viewOptions]
prepare
()
The behavior's prepare result will be combined with the view's prepare with the behavior's alias as the namespace.
effectively: {
Returns:
a prepare context suitable to being added to the view's prepare result.


Credits
Estresso was created by gamer, designer, and developer Frank Reding, a.k.a. Mottokrosh. You may also know him from Mottokrosh's Eldritch Online Character Sheet for Pathfinder, several tiny credits in various gaming publications, posting naked pictures of himself with Lamentations of the Flame Princess products, or inventing scratch maps for DCC.
All text content is the property of Nya Järnringen AB and used with their permission.
Support
If you encounter any issues with the app, please open an issue on GitHub, or email me at<EMAIL_ADDRESS>Please be as descriptive as possible, and be sure to note which version of the app you are using, and which browser or version of operation system.


Less Color Palette Mixin
Complement 1
Complement 2
Complement 3
Complement 4
Complement 5
mix 1
mix 2
mix 3
mix 4
mix 5
mix 6
mix 7
Primary 1deSaturate
Primary 2deSaturate
Primary 3deSaturate
Primary 4deSaturate
Primary 5deSaturate
Primary 1
Primary 2
Primary 3
Primary 4
Primary 5
Primary 1Saturate
Primary 2Saturate
Primary 3Saturate
Primary 4Saturate
Primary 5Saturate
Secondary 1
Secondary 2
Secondary 3
Secondary 4
Secondary 5
Tertiary 1
Tertiary 2
Tertiary 3
Tertiary 4
Tertiary 5
Primary 1
Primary 2
Primary 3
Primary 4
Primary 5
leftAnalogous 1
leftAnalogous 2
leftAnalogous 3
leftAnalogous 4
leftAnalogous 5
rightAnalogous 1
rightAnalogous 2
rightAnalogous 3
rightAnalogous 4
rightAnalogous 5
Primary 1
Primary 2
Primary 3
Primary 4
Primary 5
leftSplitComplementary 1
leftSplitComplementary 2
leftSplitComplementary 3
leftSplitComplementary 4
leftSplitComplementary 5
rightSplitComplementary 1
rightSplitComplementary 2
rightSplitComplementary 3
rightSplitComplementary 4
rightSplitComplementary 5
grey 1
grey 2
grey 3
grey 4
grey 5
grey 6
grey 7
grey 1 Saturate
grey 2 Saturate
grey 3 Saturate
grey 4 Saturate
grey 5 Saturate
grey 6 Saturate
grey 7 Saturate


Getting Started
A Simple & Easy to Use Documentation Template and Its Completely FREE !! :)
Get started with DocBlockur, the Fully Responsice Documention Html Template build with Bootstrap, with a template starter page.
Lorem the It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.


Souslesens needs a schema that represent the graph model (nodes,relations and properties)
This schema is automatically generated from the Neo4j database. You can then modify it
Generate Schema
Start
Modify default node name property
Edit Schema
reset Schema
Save Schema


libunittest is being developed by Christian Blume. Contact Christian at<EMAIL_ADDRESS>for any questions, comments, or whether you'd like to contribute to libunittest.
You can also log a ticket or view current tickets on GitHub.
Richard Vock<EMAIL_ADDRESS>Frederik Beaujean<EMAIL_ADDRESS>Brock Hargreaves, brock.hargreaves@gmail.com


API¶
This document describes the Python API to connect to Mixer’s Interactive service. We assume you’re already somewhat familiar with Interactive. If you’re not, check our reference guide.
To connect to Interactive, you first need to have an Interactive project and some means of authentication. You’ll want to create an Interactive project on Mixer and register an OAuth client while you’re there. For most integrations, you can leave the OAuth “redirect URLs” empty, and you should not request a secret key.
You can now use the OAuthClient class with your OAuth client ID to get an access token.
OAuth¶
-
class
interactive_python.
OAuthClient
(client_id, client_secret=None, host='https://mixer.com', scopes=['interactive:robot:self'], loop=None)[source]¶ The OAuth client implements our shortcode OAuth flow. From a user’s perspective, your app or game displays a 6-digit code to them and prompts them to go to mixer.com/go. This library will resolve back into your application once they enter that code.
Here’s a full example of what a full usage might look like, with error handling:
import interactive_python as interactive import asyncio async def get_access_token(client): code = await client.get_code() print("Go to mixer.com/go and enter {}".format(code.code)) try: return await code.accepted() except interactive.ShortCodeAccessDeniedError: print("The user denied access to our client") except interactive.ShortCodeTimeoutError: print("Yo, you're too slow! Let's try again...") return await get_access_token(client) async def run(): with interactive.OAuthClient(my_client_id) as client: token = await get_access_token(client) print("Access token: {}".format(token.access)) asyncio.get_event_loop().run_until_complete(run())
Parameters: - client_id (string) – Your OAuth client ID
- client_secret (string) – Your OAuth client secret, if any
- host (string) – Base address of the Mixer servers
- scopes (list[string]) – A list of scopes to request. For Interactive, you only need the ‘interactive:robot:self’ scope
- loop (asyncio.Loop) – asyncio event loop to attach to
-
coroutine
get_code
()[source]¶ Requests a shortcode from the Mixer servers and returns an OAuthShortCode handle.
Return type: OAuthShortCode
-
class
interactive_python.
OAuthShortCode
(grant, client, body, check_interval=1)[source]¶ OAuthShortCode is the shortcode handle returned by the OAuthClient. See documentation on that class for more information and usage examples.
-
code
¶ The short six-digit code to be displayed to the user. They should be prompted to enter it on mixer.com/go.
-
coroutine
accepted
()[source]¶ Waits until the user enters the shortcode on the Mixer website. Throws if they deny access or don’t enter the code in time.
Raises: - ShortCodeAccessDeniedError – if the user denies access
- ShortCodeTimeoutError – if the user doesn’t enter
Return type:
-
-
class
interactive_python.
OAuthTokens
(body)[source]¶ OAuthTokens is a bearer from an OAuth access and refresh token retrieved via the
accepted()
method.-
refresh
¶ The OAuth refresh token that can be used to re-grant the access token.
-
expires_at
¶ The datetime at which the access token expires.
-
State¶
-
class
interactive_python.
State
(connection)[source]¶ Bases:
pyee.EventEmitter
State is the state container for a single interactive session. It should usually be created via the static
connect()
method:connection = State.connect( project_version_id=my_version_id, authorization="Bearer " + oauth_token)
The Scene is a pyee.EventEmitter. When calls come down, they’re always emitted on the State by their method name. So, for instance, you can listen to “onSceneCreate” or “onParticipantJoin” on the scene:
def greet(call): for participant in call.data['participants']: print('Welcome {}!', participant['username']) scene.on('onParticipantJoin', greet)
The state can work in two modes for handling delivery of events and updates. You can use pump() calls synchronously within your game loop to apply updates that have been queued. Alternately, you can call
pump_async()
to signal to that state that you want updates delivered asynchronously, as soon as they come in. For example:# Async delivery. `giveInput` is emitted as soon as any input comes in. state.on('giveInput', lambda call: do_the_thing(call)) state.pump_async() # Sync delivery. `giveInput` is emitted only during calls to pump() state.on('giveInput', lambda call: do_the_thing(call)) while True: my_game_loop.tick() state.pump() # You can also read queues of changes from pump(), if you prefer # to dispatch changes manually: # for call in pump(): ...
In both modes, all incoming call are emitted as events on the State instance.
Parameters: connection (Connection) – The websocket connection to interactive. -
connection
¶ The underlying
Connection
to the Interactive service. You should not need to deal with this most of the time.
-
coroutine
connect
(discovery=<interactive_python.discovery.Discovery object>, **kwargs)[source]¶ Creates a new interactive connection. Most arguments will be passed through into the Connection constructor.
Parameters: - discovery (Discovery) –
- kwargs –
Return type:
-
coroutine
create_scenes
(*scenes)[source]¶ Can be called with one or more Scenes to add them to Interactive. :param scenes: list of scenes to create :type scenes: Scene
-
pump
()[source]¶ pump causes the state to read any updates it has queued up. This should usually be called at the start of any game loop where you’re going to be doing processing of Interactive events.
Any events that have not been read when pump() is called are discarded.
Alternately, you can call pump_async() to have delivery handled for you without manual input.
Return type: Iterator of Calls
-
pump_async
(loop=<_UnixSelectorEventLoop running=False closed=False debug=False>)[source]¶ Starts a pump() process working in the background. Events will be dispatched asynchronously.
Returns a future that can be used for cancelling the pump, if desired. Otherwise the pump will automatically stop once the connection is closed.
Return type: asyncio.Future
-
-
class
interactive_python.
Discovery
(host='https://mixer.com', path='/api/v1/interactive/hosts', loop=None, timeout=10)[source]¶ Bases:
object
Discovery is a simple service discovery class which retrieves an Interactive host to connect to. This is passed into the State by default; you usually should not need to override it.
Scenes¶
-
class
interactive_python.
Scene
(scene_id, **kwargs)[source]¶ Bases:
interactive_python._util.Resource
Scene is a container for controls in interactive. Groups can be assigned to scenes. It emits:
-
coroutine
create_controls
(*controls)[source]¶ Can be called with one or more Controls to add them to to the scene. :param controls: list of controls to create :type controls: List[Control]
-
coroutine
-
class
interactive_python.
Control
(control_id, **kwargs)[source]¶ Bases:
interactive_python._util.Resource
Control is a structure on which participants in interactive provide input. It emits:
- A
delete
event when the control is deleted, with theCall
from “onControlDelete”. - An
update
event when the control is updated, with theCall
from “onControlUpdate”. - Other kinds events are fired when input is given on the control, like
mousedown
for buttons ormove
for joysticks. They’re fired with theCall
that triggered them.
Here’s an example of creating a button and listening for clicks:
btn = Button( control_id='click_me', text='Click Me!', keycode=keycode.space, position=[ {'size': 'large', 'width': 5, 'height': 5, 'x': 0, 'y': 0}, ], ) # Logs the call to the console whenever the button is clicked btn.on('mousedown', lambda call: print(call)) await state.scene('default').create_controls(btn)
- A
Utilities¶
-
interactive_python.
keycode
¶ Keycode is an instance of a class that helps translate keycodes from their textual representation to their corresponding numeric code, as represented on the protocol. For example:
from interactive_python import keycode print(keycode.up) # => 38 print(keycode.a) # => 65 getattr(keycode, '⌘') # => 91
-
class
interactive_python._util.
ChangeTracker
(data={}, intrinsic_properties=[])[source]¶ Bases:
object
ChangeTracker is a simple structure that keeps track of changes made to properties of the object.
-
class
interactive_python._util.
Resource
(id, id_property)[source]¶ Bases:
pyee.EventEmitter
,interactive_python._util.ChangeTracker
Resource represents some taggable, metadata-attachable construct in Interactive. Scenes, groups, and participants are resources.
-
id
¶ Return type: int
-
Errors¶
-
class
interactive_python.
DiscoveryError
[source]¶ Bases:
Exception
Raised if some error occurs during service discovery that we didn’t anticipate.
-
class
interactive_python.
NoServersAvailableError
[source]¶ Bases:
Exception
Raised if Beam reports that no servers are available.
-
class
interactive_python.
ShortCodeError
[source]¶ Bases:
Exception
Base exception raised when some unexpected event occurs in the shortcode OAuth flow.
-
class
interactive_python.
UnknownShortCodeError
[source]¶ Bases:
interactive_python.errors.ShortCodeError
Exception raised when an unknown error happens while running shortcode OAuth.
Low-Level Protocol¶
-
class
interactive_python.
Connection
(address=None, authorization=None, project_version_id=None, project_sharecode=None, extra_headers={}, loop=<_UnixSelectorEventLoop running=False closed=False debug=False>, socket=None, protocol_version='2.0')[source]¶ Bases:
object
The Connection is used to connect to the Interactive server. It connects to a provided socket address and provides an interface for making RPC calls. Example usage:
connection = Connection( address=get_interactive_address(), authorization="Bearer {}".format(my_oauth_token), interactive_version_id=1234)
-
coroutine
call
(method, params, discard=False, timeout=10)[source]¶ Sends a method call to the interactive socket. If discard is false, we’ll wait for a response before returning, up to the timeout duration in seconds, at which point it raises an asyncio.TimeoutError. If the timeout is None, we’ll wait forever.
Parameters: - method (str) – Method name to call
- params – Parameters to insert into the method, generally a dict.
- discard (bool) –
True
to not request any reply to the method. - timeout (int) – Call timeout duration, in seconds.
Returns: The call response, or None if it was discarded.
Raises: asyncio.TimeoutError
-
coroutine
connect
()[source]¶ Connects to the Interactive server, waiting until the connection if fully established before returning. Can throw a ClosedError if something, such as authentication, fails.
-
get_packet
()[source]¶ Synchronously reads a packet from the connection. Returns None if there are no more packets in the queue. Example:
while await connection.has_packet(): dispatch_call(connection.get_packet())
Return type: Call
-
coroutine
has_packet
()[source]¶ Blocks until a packet is read. Returns true if a packet is then available, or false if the connection is subsequently closed. Example:
while await connection.has_packet(): dispatch_call(connection.get_packet())
Return type: bool
-
reply
(call_id, result=None, error=None)[source]¶ Sends a reply for a packet id. Either the result or error should be fulfilled.
Parameters: - call_id (int) – The ID of the call being replied to.
- result – The successful result of the call.
- error – The errorful result of the call.
-
coroutine
set_compression
(scheme)[source]¶ Updates the compression used on the websocket this should be called with an instance of the Encoding class, for example:
connection.set_compression(GzipEncoding())
You can, optionally, await on the resolution of method, though doing so it not at all required. Returns True if the server agreed on and executed the switch.
Parameters: scheme (Encoding) – The compression scheme to use Returns: Whether the upgrade was successful Return type: bool
-
coroutine
-
class
interactive_python.
Call
(connection, payload)[source]¶ Bases:
object
-
data
¶ Returns: The payload of the method being called. Return type: dict
-
name
¶ Returns: The name of the method being called. Return type: str
-
-
class
interactive_python.encoding.
Encoding
[source]¶ Bases:
object
Encoding is an abstract class that defines methods for decoding incoming and encoding outgoing websocket calls. Both encode() and decode() are allowed to raise EncodingExceptions, which will trigger a fallback to plain-text encoding.
-
exception
interactive_python.encoding.
EncodingException
[source]¶ Bases:
Exception
An EncodingException is raised if an error occurs in an encoding or decoding algorithm. Raising this exception triggers a fallback to plain text encoding.


Name:
Address:
City:
State:
Zip:
Country:
Fill entire form with default values
Fill a different name than the next form
Fill a different street address than the next form
Fill a different postal code than the next form
Submit


|
▼
-6.09%
|
AQN
|
Algonquin Power & Utilities Corp
|
11.25
|
1,443,591
|
11.17
|
12.54
|
|
▼
-14.05%
|
ALE
|
ALLETE, Inc
|
54.71
|
873,200
|
53.17
|
64.44
|
|
▼
-9.62%
|
LNT
|
Alliant Energy Corporation
|
40.70
|
3,291,100
|
40.21
|
45.14
|
|
▼
-12.45%
|
AEE
|
Ameren Corporation
|
62.93
|
3,145,800
|
62.01
|
71.64
|
|
▼
-11.58%
|
AEP
|
American Electric Power Company, Inc
|
71.45
|
5,608,800
|
70.26
|
81.10
|
|
▼
-6.93%
|
AWR
|
American States Water Company
|
86.00
|
1,252,400
|
82.94
|
93.85
|
|
▼
-12.53%
|
AWK
|
American Water Works Company, Inc
|
100.69
|
3,441,000
|
98.25
|
115.12
|
|
▲
1.30%
|
WAAS
|
AquaVenture Holdings Limited
|
26.58
|
817,015
|
26.05
|
26.80
|
|
▼
-7.08%
|
ARTNA
|
Artesian Resources Corporation
|
32.69
|
49,200
|
32.51
|
34.58
|
|
▲
6.21%
|
AY
|
Atlantica Yield plc
|
20.86
|
1,021,900
|
20.00
|
21.795
|
|
▲
12.43%
|
AT
|
Atlantic Power Corporation
|
1.99
|
1,766,086
|
1.77
|
2.04
|
|
▼
-12.50%
|
ATO
|
Atmos Energy Corporation
|
86.20
|
1,884,000
|
85.56
|
99.01
|
|
▼
-10.43%
|
AGR
|
Avangrid, Inc
|
41.63
|
1,352,200
|
41.36
|
46.59
|
|
▲
6.67%
|
AZRE
|
Azure Power Global Limited
|
14.40
|
14,256
|
13.345
|
14.87
|
|
▲
0.62%
|
BKH
|
Black Hills Corporation
|
51.72
|
1,110,900
|
50.89
|
56.32
|
|
▼
-7.00%
|
BIP
|
Brookfield Infrastructure Partners L.P
|
32.70
|
947,800
|
32.50
|
37.01
|
|
▲
2.14%
|
BEP
|
Brookfield Renewable Partners L.P
|
35.87
|
701,100
|
35.12
|
37.79
|
|
▼
-2.71%
|
CDZI
|
Cadiz Inc
|
9.70
|
192,600
|
9.48
|
10.14
|
|
▼
-4.42%
|
CWT
|
California Water Service Group
|
53.00
|
1,118,701
|
50.06
|
57.295
|
|
▲
2.04%
|
CNP
|
CenterPoint Energy, Inc
|
12.48
|
16,152,100
|
11.68
|
13.73
|
|
▼
-1.42%
|
EBR
|
Centrais Eletricas Brasileiras S.A. - Eletrobras
|
3.48
|
1,485,149
|
3.29
|
3.79
|
|
▲
2.34%
|
EBR.B
|
Centrais Eletricas Brasileiras S.A. - Eletrobras
|
3.93
|
44,370
|
3.73
|
4.07
|
|
▼
-8.14%
|
CPK
|
Chesapeake Utilities Corporation
|
82.44
|
140,500
|
79.19
|
93.53
|
|
▲
6.63%
|
CWEN
|
Clearway Energy, Inc
|
19.63
|
1,931,400
|
18.13
|
20.98
|
|
▲
3.45%
|
CWEN.A
|
Clearway Energy, Inc
|
18.00
|
721,343
|
16.90
|
19.48
|
|
▼
-12.29%
|
CMS
|
CMS Energy Corporation
|
49.55
|
4,233,100
|
48.62
|
55.95
|
|
▼
-7.29%
|
SBS
|
Companhia de Saneamento Básico do Estado de São Paulo - SABESP
|
6.61
|
1,842,700
|
6.53
|
7.44
|
|
▼
-6.01%
|
CIG
|
Companhia Energetica de Minas Gerais
|
1.72
|
5,772,900
|
1.68
|
1.94
|
|
0.00%
|
CIG.C
|
Companhia Energetica de Minas Gerais
|
1.78
|
726
|
1.78
|
1.78
|
|
▼
-1.50%
|
ELP
|
Companhia Paranaense de Energia - COPEL
|
9.83
|
1,724,600
|
9.68
|
11.11
|
|
▼
-9.36%
|
ED
|
Consolidated Edison, Inc
|
72.59
|
4,900,800
|
71.07
|
81.50
|
|
▲
0.83%
|
CWCO
|
Consolidated Water Co. Ltd
|
14.56
|
110,900
|
13.84
|
15.09
|
|
▼
-6.44%
|
D
|
Dominion Energy, Inc
|
67.22
|
9,908,905
|
66.35
|
72.04
|
|
▼
-2.82%
|
DTE
|
DTE Energy Company
|
83.00
|
4,489,573
|
81.19
|
87.67
|
|
▼
-8.86%
|
DUK
|
Duke Energy Corporation
|
68.40
|
8,973,100
|
68.10
|
76.00
|
|
▼
-3.90%
|
EIX
|
Edison International
|
46.86
|
4,052,700
|
46.56
|
51.57
|
|
▲
7.22%
|
ELLO
|
Ellomay Capital Ltd
|
11.73
|
2,200
|
11.35
|
11.73
|
|
▲
0.30%
|
EE
|
El Paso Electric Company
|
66.40
|
799,600
|
65.32
|
66.75
|
|
▲
8.45%
|
EDN
|
Empresa Distribuidora y Comercializadora Norte Sociedad Anonima
|
3.21
|
73,800
|
3.02
|
3.42
|
|
▼
-8.04%
|
ENIA
|
Enel Americas S.A
|
5.72
|
2,805,094
|
5.72
|
6.5002
|
|
▼
-9.46%
|
ENIC
|
Enel Chile S.A
|
3.16
|
1,191,500
|
3.13
|
3.64
|
|
▼
-4.83%
|
ETR
|
Entergy Corporation
|
79.99
|
2,493,800
|
79.07
|
89.58
|
|
▼
-11.64%
|
WTRG
|
Essential Utilities Inc.
|
34.92
|
2,199,900
|
34.16
|
39.48
|
|
▼
-14.37%
|
EVRG
|
Evergy, Inc
|
47.18
|
2,929,200
|
46.80
|
55.71
|
|
▼
-11.30%
|
ES
|
Eversource Energy
|
68.34
|
4,340,500
|
67.42
|
77.75
|
|
▼
-4.35%
|
EXC
|
Exelon Corporation
|
31.00
|
8,645,000
|
30.82
|
33.48
|
|
▼
-4.75%
|
FE
|
FirstEnergy Corp
|
34.28
|
5,393,500
|
33.98
|
36.70
|
|
▼
-6.95%
|
FTS
|
Fortis Inc
|
31.85
|
1,180,455
|
31.57
|
35.35
|
|
▲
2.50%
|
GNE
|
Genie Energy Ltd
|
6.57
|
227,300
|
6.08
|
6.91
|
|
0.00%
|
GWRS
|
Global Water Resources, Inc
|
10.14
|
73,239
|
9.51
|
10.225
|
|
▼
-18.64%
|
HE
|
Hawaiian Electric Industries, Inc
|
39.47
|
1,643,300
|
38.40
|
48.48
|
|
▲
6.79%
|
HNP
|
Huaneng Power International, Inc
|
12.58
|
35,100
|
12.50
|
12.79
|
|
▼
-10.68%
|
IDA
|
IDACORP, Inc
|
74.96
|
684,500
|
73.34
|
84.67
|
|
▼
-20.83%
|
JE
|
Just Energy Group Inc
|
0.38
|
1,495,100
|
0.36
|
0.52
|
|
▲
0.63%
|
KEN
|
Kenon Holdings Ltd
|
12.70
|
664
|
12.70
|
12.78
|
|
▼
-3.06%
|
KEP
|
Korea Electric Power Corporation
|
6.34
|
455,500
|
6.28
|
7.00
|
|
▼
-18.30%
|
MGEE
|
MGE Energy, Inc
|
62.37
|
292,800
|
60.91
|
77.66
|
|
▼
-0.92%
|
MSEX
|
Middlesex Water Company
|
56.86
|
173,700
|
54.43
|
59.98
|
|
▼
-6.44%
|
NGG
|
National Grid plc
|
49.65
|
1,189,300
|
49.51
|
53.91
|
|
▼
-8.22%
|
NFE
|
New Fortress Energy LLC
|
8.71
|
175,500
|
8.32
|
9.668
|
|
▲
6.42%
|
NJR
|
New Jersey Resources Corporation
|
31.15
|
2,746,400
|
28.81
|
33.16
|
|
▼
-7.41%
|
NEE
|
NextEra Energy, Inc
|
191.75
|
5,617,200
|
186.86
|
209.90
|
|
▲
16.36%
|
NEP
|
NextEra Energy Partners, LP
|
37.70
|
1,450,000
|
33.135
|
39.14
|
|
▼
-10.10%
|
NI
|
NiSource Inc
|
21.00
|
3,988,100
|
20.79
|
24.21
|
|
▼
-15.78%
|
NWE
|
NorthWestern Corporation
|
48.25
|
906,700
|
47.34
|
57.77
|
|
▼
-19.26%
|
NWN
|
Northwest Natural Holding Company
|
56.87
|
366,121
|
55.67
|
71.70
|
|
▼
-2.67%
|
NRG
|
NRG Energy, Inc
|
23.31
|
6,035,746
|
23.12
|
25.68
|
|
▼
-5.27%
|
OGE
|
OGE Energy Corp
|
25.71
|
3,239,000
|
25.30
|
28.08
|
|
▼
-10.80%
|
OGS
|
ONE Gas, Inc
|
67.95
|
691,100
|
66.00
|
77.31
|
|
▼
-5.07%
|
ORA
|
Ormat Technologies, Inc
|
66.07
|
438,500
|
64.51
|
70.52
|
|
▼
-16.46%
|
OTTR
|
Otter Tail Corporation
|
36.14
|
298,800
|
35.51
|
43.50
|
|
▲
2.63%
|
PAM
|
Pampa Energia S.A
|
9.37
|
665,000
|
9.30
|
10.13
|
|
▼
-8.72%
|
PCG
|
PG&E Corporation
|
7.22
|
14,370,300
|
7.14
|
8.40
|
|
▼
-10.77%
|
PICO
|
PICO Holdings, Inc
|
6.88
|
391,700
|
6.77
|
7.95
|
|
▼
-4.11%
|
PNW
|
Pinnacle West Capital Corporation
|
65.55
|
1,976,300
|
65.27
|
72.11
|
|
▼
-10.47%
|
PNM
|
PNM Resources, Inc
|
29.93
|
1,357,200
|
29.60
|
34.95
|
|
▼
-15.15%
|
POR
|
Portland General Electric Company
|
40.28
|
1,384,000
|
39.20
|
48.06
|
|
▼
-8.89%
|
PPL
|
PPL Corporation
|
19.67
|
15,116,600
|
19.56
|
22.98
|
|
▼
-3.37%
|
PEG
|
Public Service Enterprise Group Incorporated
|
37.82
|
6,740,100
|
37.51
|
40.38
|
|
▼
-0.86%
|
PCYO
|
Pure Cycle Corporation
|
9.20
|
281,800
|
8.87
|
10.27
|
|
▼
-8.60%
|
RGCO
|
RGC Resources, Inc
|
25.41
|
33,800
|
25.23
|
27.50
|
|
▼
-0.36%
|
SRE
|
Sempra Energy
|
99.64
|
5,236,600
|
97.32
|
105.84
|
|
▼
-9.84%
|
SJW
|
SJW Group
|
52.67
|
261,600
|
51.18
|
59.84
|
|
▼
-0.75%
|
SKYS
|
Sky Solar Holdings, Ltd
|
1.33
|
7,000
|
1.12
|
1.38
|
|
▼
-14.58%
|
SJI
|
South Jersey Industries, Inc
|
22.85
|
1,906,000
|
22.77
|
27.18
|
|
▼
-14.25%
|
SWX
|
Southwest Gas Holdings, Inc
|
53.01
|
767,170
|
52.215
|
63.12
|
|
▼
-7.60%
|
SPKE
|
Spark Energy, Inc
|
6.20
|
174,600
|
6.07
|
7.31
|
|
▼
-14.05%
|
SR
|
Spire Inc
|
63.50
|
510,300
|
62.83
|
74.94
|
|
▲
8.46%
|
SPH
|
Suburban Propane Partners, L.P
|
11.54
|
868,600
|
11.00
|
12.41
|
|
▲
2.66%
|
TERP
|
TerraForm Power, Inc
|
13.90
|
2,045,000
|
13.355
|
14.38
|
|
▲
8.01%
|
AES
|
The AES Corporation
|
11.87
|
12,070,600
|
10.84
|
12.13
|
|
▼
-8.92%
|
SO
|
The Southern Company
|
46.36
|
11,836,900
|
46.15
|
51.22
|
|
▼
-6.15%
|
YORW
|
The York Water Company
|
36.93
|
106,500
|
36.09
|
41.68
|
|
▲
4.63%
|
TAC
|
TransAlta Corporation
|
4.29
|
739,200
|
4.24
|
4.77
|
|
▲
2.84%
|
UGI
|
UGI Corporation
|
26.06
|
2,641,100
|
25.13
|
27.11
|
|
▼
-13.94%
|
UTL
|
Unitil Corporation
|
44.71
|
164,600
|
44.35
|
52.47
|
|
▼
-0.98%
|
VST
|
Vistra Energy Corp
|
14.08
|
11,039,000
|
13.825
|
14.73
|
|
▼
-18.05%
|
WEC
|
WEC Energy Group, Inc
|
74.09
|
4,691,700
|
72.08
|
90.57
|
|
▼
-12.69%
|
XEL
|
Xcel Energy Inc
|
50.63
|
9,088,400
|
50.045
|
59.15
|


Id = 71
Nombre Capitulo = Earth (Pizza Dimension)
Tipo = Planet
Dimension = Pizza Dimension
Personaje = ['https://rickandmortyapi.com/api/character/424', 'https://rickandmortyapi.com/api/character/425']
Numero Personaje = ['424', '425']
URL Locacion = https://rickandmortyapi.com/api/location/71


| Package | Description |
|---|---|
| odata.msgraph.client.beta.entity |
| Modifier and Type | Class and Description |
|---|---|
class |
AndroidManagedAppProtection
“Policy used to configure detailed management settings targeted to specific
security groups and for a specified set of apps on an Android device”
|
class |
DefaultManagedAppProtection
“Policy used to configure detailed management settings for a specified set of
apps for all users not targeted by a TargetedManagedAppProtection Policy”
|
class |
IosManagedAppProtection
“Policy used to configure detailed management settings targeted to specific
security groups and for a specified set of apps on an iOS device”
|
class |
TargetedManagedAppProtection
“Policy used to configure detailed management settings targeted to specific
security groups”
|
| Modifier and Type | Method and Description |
|---|---|
ManagedAppProtection |
ManagedAppProtection.patch()
Submits only changed fields for update and returns an
immutable copy of
this with changed fields reset. |
ManagedAppProtection |
ManagedAppProtection.put()
Submits all fields for update and returns an immutable copy of
this
with changed fields reset (they were ignored anyway). |
ManagedAppProtection |
ManagedAppProtection.withAllowedInboundDataTransferSources(ManagedAppDataTransferLevel allowedInboundDataTransferSources)
Returns an immutable copy of
this with just the allowedInboundDataTransferSources field changed. |
ManagedAppProtection |
ManagedAppProtection.withAllowedOutboundClipboardSharingExceptionLength(Integer allowedOutboundClipboardSharingExceptionLength)
Returns an immutable copy of
this with just the allowedOutboundClipboardSharingExceptionLength field changed. |
ManagedAppProtection |
ManagedAppProtection.withAllowedOutboundClipboardSharingLevel(ManagedAppClipboardSharingLevel allowedOutboundClipboardSharingLevel)
Returns an immutable copy of
this with just the allowedOutboundClipboardSharingLevel field changed. |
ManagedAppProtection |
ManagedAppProtection.withAllowedOutboundDataTransferDestinations(ManagedAppDataTransferLevel allowedOutboundDataTransferDestinations)
Returns an immutable copy of
this with just the allowedOutboundDataTransferDestinations field changed. |
ManagedAppProtection |
ManagedAppProtection.withAppActionIfDeviceComplianceRequired(ManagedAppRemediationAction appActionIfDeviceComplianceRequired)
Returns an immutable copy of
this with just the appActionIfDeviceComplianceRequired field changed. |
ManagedAppProtection |
ManagedAppProtection.withAppActionIfMaximumPinRetriesExceeded(ManagedAppRemediationAction appActionIfMaximumPinRetriesExceeded)
Returns an immutable copy of
this with just the appActionIfMaximumPinRetriesExceeded field changed. |
ManagedAppProtection |
ManagedAppProtection.withAppActionIfUnableToAuthenticateUser(ManagedAppRemediationAction appActionIfUnableToAuthenticateUser)
Returns an immutable copy of
this with just the appActionIfUnableToAuthenticateUser field changed. |
ManagedAppProtection |
ManagedAppProtection.withBlockDataIngestionIntoOrganizationDocuments(Boolean blockDataIngestionIntoOrganizationDocuments)
Returns an immutable copy of
this with just the blockDataIngestionIntoOrganizationDocuments field changed. |
ManagedAppProtection |
ManagedAppProtection.withContactSyncBlocked(Boolean contactSyncBlocked)
Returns an immutable copy of
this with just the contactSyncBlocked field changed. |
ManagedAppProtection |
ManagedAppProtection.withDataBackupBlocked(Boolean dataBackupBlocked)
Returns an immutable copy of
this with just the dataBackupBlocked
field changed. |
ManagedAppProtection |
ManagedAppProtection.withDeviceComplianceRequired(Boolean deviceComplianceRequired)
Returns an immutable copy of
this with just the deviceComplianceRequired field changed. |
ManagedAppProtection |
ManagedAppProtection.withDisableAppPinIfDevicePinIsSet(Boolean disableAppPinIfDevicePinIsSet)
Returns an immutable copy of
this with just the disableAppPinIfDevicePinIsSet field changed. |
ManagedAppProtection |
ManagedAppProtection.withFingerprintBlocked(Boolean fingerprintBlocked)
Returns an immutable copy of
this with just the fingerprintBlocked field changed. |
ManagedAppProtection |
ManagedAppProtection.withManagedBrowser(ManagedBrowserType managedBrowser)
Returns an immutable copy of
this with just the managedBrowser
field changed. |
ManagedAppProtection |
ManagedAppProtection.withManagedBrowserToOpenLinksRequired(Boolean managedBrowserToOpenLinksRequired)
Returns an immutable copy of
this with just the managedBrowserToOpenLinksRequired field changed. |
ManagedAppProtection |
ManagedAppProtection.withMaximumAllowedDeviceThreatLevel(ManagedAppDeviceThreatLevel maximumAllowedDeviceThreatLevel)
Returns an immutable copy of
this with just the maximumAllowedDeviceThreatLevel field changed. |
ManagedAppProtection |
ManagedAppProtection.withMaximumPinRetries(Integer maximumPinRetries)
Returns an immutable copy of
this with just the maximumPinRetries
field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumPinLength(Integer minimumPinLength)
Returns an immutable copy of
this with just the minimumPinLength
field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumRequiredAppVersion(String minimumRequiredAppVersion)
Returns an immutable copy of
this with just the minimumRequiredAppVersion field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumRequiredOsVersion(String minimumRequiredOsVersion)
Returns an immutable copy of
this with just the minimumRequiredOsVersion field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumWarningAppVersion(String minimumWarningAppVersion)
Returns an immutable copy of
this with just the minimumWarningAppVersion field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumWarningOsVersion(String minimumWarningOsVersion)
Returns an immutable copy of
this with just the minimumWarningOsVersion field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumWipeAppVersion(String minimumWipeAppVersion)
Returns an immutable copy of
this with just the minimumWipeAppVersion field changed. |
ManagedAppProtection |
ManagedAppProtection.withMinimumWipeOsVersion(String minimumWipeOsVersion)
Returns an immutable copy of
this with just the minimumWipeOsVersion field changed. |
ManagedAppProtection |
ManagedAppProtection.withMobileThreatDefenseRemediationAction(ManagedAppRemediationAction mobileThreatDefenseRemediationAction)
Returns an immutable copy of
this with just the mobileThreatDefenseRemediationAction field changed. |
ManagedAppProtection |
ManagedAppProtection.withNotificationRestriction(ManagedAppNotificationRestriction notificationRestriction)
Returns an immutable copy of
this with just the notificationRestriction field changed. |
ManagedAppProtection |
ManagedAppProtection.withOrganizationalCredentialsRequired(Boolean organizationalCredentialsRequired)
Returns an immutable copy of
this with just the organizationalCredentialsRequired field changed. |
ManagedAppProtection |
ManagedAppProtection.withPeriodBeforePinReset(Duration periodBeforePinReset)
Returns an immutable copy of
this with just the periodBeforePinReset field changed. |
ManagedAppProtection |
ManagedAppProtection.withPeriodOfflineBeforeAccessCheck(Duration periodOfflineBeforeAccessCheck)
Returns an immutable copy of
this with just the periodOfflineBeforeAccessCheck field changed. |
ManagedAppProtection |
ManagedAppProtection.withPeriodOfflineBeforeWipeIsEnforced(Duration periodOfflineBeforeWipeIsEnforced)
Returns an immutable copy of
this with just the periodOfflineBeforeWipeIsEnforced field changed. |
ManagedAppProtection |
ManagedAppProtection.withPeriodOnlineBeforeAccessCheck(Duration periodOnlineBeforeAccessCheck)
Returns an immutable copy of
this with just the periodOnlineBeforeAccessCheck field changed. |
ManagedAppProtection |
ManagedAppProtection.withPinCharacterSet(ManagedAppPinCharacterSet pinCharacterSet)
Returns an immutable copy of
this with just the pinCharacterSet
field changed. |
ManagedAppProtection |
ManagedAppProtection.withPinRequired(Boolean pinRequired)
Returns an immutable copy of
this with just the pinRequired
field changed. |
ManagedAppProtection |
ManagedAppProtection.withPinRequiredInsteadOfBiometricTimeout(Duration pinRequiredInsteadOfBiometricTimeout)
Returns an immutable copy of
this with just the pinRequiredInsteadOfBiometricTimeout field changed. |
ManagedAppProtection |
ManagedAppProtection.withPreviousPinBlockCount(Integer previousPinBlockCount)
Returns an immutable copy of
this with just the previousPinBlockCount field changed. |
ManagedAppProtection |
ManagedAppProtection.withPrintBlocked(Boolean printBlocked)
Returns an immutable copy of
this with just the printBlocked
field changed. |
ManagedAppProtection |
ManagedAppProtection.withSaveAsBlocked(Boolean saveAsBlocked)
Returns an immutable copy of
this with just the saveAsBlocked
field changed. |
ManagedAppProtection |
ManagedAppProtection.withSimplePinBlocked(Boolean simplePinBlocked)
Returns an immutable copy of
this with just the simplePinBlocked
field changed. |
Copyright © 2018–2020. All rights reserved.


SOLERA HOLDINGS INC, Westlake, TX
Senior Sofware Engineer (2018 - Present)
- Successfully migrated users and sunset legacy monolith application (Progress OpenEdge ABL) to a microservices architecture (.NET Core) through strangulation. Realized $400k in annual maintenance costs savings YoY
- Designed and developed cloud-native containerized microservices in .Net Core using C#, Cloud Foundry, JFrog Artifactory
- Interviewed and placed engineers and analysts on projects to drive strategic and cross-functional initiatives
- Led team of four engineers working with a cross-functional team of product managers and sales executives to develop a $10M/annum revenue auto shop management solution, replacing a legacy system and increasing sales by 40% YOY
Technologies Used: C# ASP.Net Core, Web API, MS SQL Server, MongoDB, NodeJS, React, Concourse CICD, SonarQube code coverage, Pivotal Cloud Foundry (PCF), Artifactory, Kibana log monitoring/observability, Kong API Gateway, Swagger UI, Postman, Git (Bitbutcket)
DENBURY RESOURCES (Plano, TX)
(2013 - 2017)
Programmer Analyst III (2015 - 2017)
- Design and implementation of a reporting portal, which converted a paper-based process to a digital one; reduced process time from a multi-week work stream to less than 48 hours
- Influenced C-Level execs to adopt open-source technology options with a strong value proposition, leading to annual savings of $500K in licensing costs
- Conducted rapid prototyping using design thinking to provide a proof of concept of Well Master, a seamless workflow solution across the enterprise, leading to a 28% decrease in processing error rates
Technologies Used: C# ASP.NET, VB.NET, MS SQL Server, Microsoft Silverlight, ArcGIS JavaScript API, JQuery
SOGETI USA LLC (Irving, TX)
(2012 - 2013)
Senior Consultant
- Redesigned a global transportation client’s eCommerce product by leading requirement-gathering sessions and managing relationships among cross-functional stakeholders; reduced downtime by 5x and increased revenue by 15%
- Provided guidance on deliverables and provided technical leadership to Fortune 1000, finishing project 45 days early
Technologies Used: C#, MS SQL Server, HTML/CSS, Search Engine Optimization (SEO), Load Balancers
FHLBank Topeka (Topeka, KS)
(2009 - 2012)
Programmer Analyst II
- Consolidated bank’s code base of 100 applications written on the .NET Framework using C#, reducing costs by $500K
Technologies Used: C#, Tableau, Kalido Data Warehouse, Master Data Management (MDM), Business Intelligence (BI)
DELOITTE CONSULTING LLC (Kansas City, MO)
(2007 - 2009)
Business Technology Analyst
- Automated process of disbursing disaster relief funds and reduced processing time from weeks to minutes
- Awarded Deloitte’s Distinguished Client Service Award after series of successful project implementations
Technologies Used: C#, MS SQL Server, HTML/CSS, Search Engine Optimization (SEO), Google Analytics


We are all getting used to the idea of freemium but I am wondering if this will not implode because things are starting to add up. I really noticed when recently thinking (again) about how to restructure my services.

What is it for me:

$25 per year - Remember the Milk: I am definitely keeping this one as it is really cheap and a great deal especially with iPhone Integration through ToDo.

$59 per year - Vimeo: the service just rocks, period. I love how the videos end up and through the pro service I can really limit where videos are allowed to appear and keep my family videos sharable and save.

$12.60 a month - Squarespace: I just wanted to ditch servers and this is probably the first one that might have to go once I find a better solution but I didn’t yet. Squarespace is really nice and if they finally get their social integration done I am starting to be really happy. It is the most expensive point though and I could just go with Wordpress.com and the biggest problem would be that my tags are shared with all wordpress people. Ah well.

Stopped - Flickr: I just stopped my premium Flickr subscription as I am sharing most pictures with Family on Squarespace and that is good enough. I might actually still need that somehow.

$99 per year - Dropbox: I am actually not paying yet as I have a 10GB account due to an early beta membership (u 900 ;)) but this will surely stick.

€5.95 per month - Xing: For my networking in Germany still a wonderful thing.

$49.95 per year - Plaxo Premium: I want my addressbook safe and I would actually love Xing to do this but they don’t. Still really not happy in this field.

all the forgotten stuff: There are probably things I have forgotten as they end up coming on the bill once a year.

In the end, there will be more services like this and this is really starting to annoy me. It’s all cheap enough to not think enough but it is adding up. All the "small fees" currently end up to be over 200 USD, more if I ever get the Dropbox Account.

So what subscriptions do you have? :)

Update: I am wondering if I should not just move to Wordpress.com, upload videos there, and so on. Anyone using Wordpress for Videos?

 rel="tag">dropbox, rel="tag">rtm, rel="tag">services, rel="tag">squarespace, rel="tag">vimeo, rel="tag">xing


Category: Code Tips
Start Taking CSS Seriously
Web developers should always optimize their CSS code but far too many don't. The rise of the mobile web has now forced them to change.
SCREENCAST: CSS Build Demo
A demo of how to optimize CSS with Gulp, Grunt and tasks like uncss and critical path css. Has a link to fully-commented code on GitHub.
kdz - My Personal Scaffolding Tool
kaidez used Node to create a tool for scaffolding out web development projects. Includes a link to thoroughly commented code on GitHub.
Web Components Demo: Templates and (some) Shadow DOM
A Web Components demo using just templates and Shadow DOM, mostly templates. Post includes many links to Web Component learning resources.
Using RequireJS In WordPress
Learn how to use RequireJS in WordPress. Includes a walk-through of how RequireJS works and how WordPress manages JavaScript internally.
Media Queries Are Important
CSS3 media queries can help sites perform better in Google search results and the W3C officially recommends them as a web standard.
5 Reasons Why You Need To Learn To Use JavaScript Before jQuery
A list of good reasons why it's better to learn JavaScript before jQuery. A short learning resource list at the end to help you get started.
A Simple Explanation of HTML5
A lengthy but simple explanation of what HTML5 is with suggestions on how business can use it. Very little technical language is used.
5 Mobile Web Development Best Practice Resources
Great mobile web development best practice resource list-includes site speed gurus, blogs & a podcast featuring jQuery creator, John Resig.
2 Bad Things About the Facebook App Setup
Creating a Facebook app is easy but doing so generates CSS expressions and creates page reflows, all of which reduce page optimization
Mobile Web Development Best Practices – Starting Tips
Starter mobile web development best practices including YSlow & Page Speed tests and minifying pages with HTML5 Boilerplate's build script
New York Times Article On HTML5 & Their New HTML5 Site
A great New York Times piece on HTML5 application development and a demo of their new HTML5 Skimmer site
HTML5 Boilerplate Goes To Version 1.0
A quick review of HTML5 Boilerplate version 1.0, discussing the new build script for site optimization and custom site template build
HTML5 Project Update: Changing To A Responsive Web Design Using CSS3 Media Queries
An article on responsive web design, CSS3 media queries and using it in kaidez's HTML5 Project, resource list of links at the end
Easy-To-Read Version of The HTML5 Specification
Ben Schwarz gives us HTML5-A technical specification for Web developers, translating WHATWG's HTML5 arduous spec into layman's terms
HTML5 Project: Boilerplate WordPress Theme
Walk-through of Aaron T. Grogg's excellent HTML5 Boilerplate-based WordPress theme. Includes a great admin screen for custom configuration.
Yoast’s Awesome WordPress SEO Speech
A quick review of a great WordPress SEO speech from Joost de Valk, AKA Yoast, with the video embedded on the page for instant viewing
The HTML5 Boilerplate Video is AWESOME!!!!!!
Paul Irish's HTML5 Boilerplate video is extremely informative as it demonstrates many great CSS and JavaScript hacks and best practices
HTML5 Readiness - NEW COOLSITE!
HTML5 Readiness neatly displays browser support for HTML5 and CSS3
Update to My HTML5/SEO/Microdata Post
Oli Studholme from HTML5 Doctor corrects my previous post on HTML5, SEO and microdata
WordPress & WebMatrix
Using WebMatrix to create a WordPress development site
HTML5, SEO and Microdata
HTML5's Microdata feature is a good tactic if properly formatted
Great Video Lecture on WordPress Usability & Analytics
Stefanos Kofopoulos from pestaola.gr shares some excellent usability & analytics tips that he applied to his Wordpress-based blog.
10 Things To Remember About HTML5 Video
HTML5 Video Tips from kaidez
Two JavaScript Tasks That jQuery Does Not Replace
Short article about how jQuery does not have a replacement for JavaScript's document.write and has a not-so-great replacement for its navigator.UserAgent
5 Reasons To Design Websites For Internet Explorer 6
HTML5 Gallery, mostly maintained by the HTML5 expert over at HTML5 Doctor, is added to kaidez.com's Coolsite list
10 WordPress Tips For Web Designers
10 great tips that can help you with WordPress development, such as creating child themes, page templates and how to approach security.
My HTML5 Applications
I'm starting to narrow down what my favorite HTML5 tools are.
2 HTML5 Resources I Like
Great HTML5 learning resources


Tap the apply styles button in the style tab of the toolbar. This produces the apply styles menu that offers a choice of styles that can be applied to the current selection.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/refl.20failure.20without.20intros.html ---
Is there an easy explanation for why the following fails if I drop the intros
from the proof of map_mul
?
universes u v w variables {α : Type u} {β : Type v} {γ : Type w} [monoid β] [comm_monoid γ] @[to_additive] lemma hom_prod (s : finset α) (b : β) (g : α → β →* γ) : s.prod (λ a, g a b) = (s.prod g) b := begin let evb : (β →* γ) → γ := λ h, h b, haveI : is_monoid_hom evb := { map_one := rfl, map_mul := by { intros, refl, }, }, rw finset.prod_hom s evb, end
The error I see if I replace map_mul := by { intros, refl, }
with map_mul := rfl
is:
type mismatch at field 'map_mul' rfl has type ?m_2 = ?m_2 but is expected to have type ∀ (x y : β →* γ), evb (x * y) = evb x * evb y
Why would it work?
Erm, good question!
in
example : ∀ n : ℕ, n = n := begin sorry end
would you expect refl
to close the goal?
hint: you shouldn't.
Oh dear, I would have expected it to close that goal :embarrassed:
Thank you for providing such a simplified example. Is there a simple explanation for when I should expect refl
to work, or somewhere I should look to read more?
You should expect it to work when the goal is x = x
, maybe in disguise.
Till now I had regarded it as a way to close goals that are just definitional equalities once you unfold sufficiently (or something along those lines).
Yes, exactly.
Right, that has been my approximate understanding.
And ∀ n : ℕ, n = n
is not of that form.
But I'm fairly sure it has been able to succeed in the past when there was a universal qualifier "in the way".
Understood, perhaps my memory misleads me.
Hmm, I suppose it does. There does not seem to be anything more to this.
Thank you!
If you are frustrated to have to type two tactics to close this goal you can probably try tauto
Right ho, I'll use that.
I hope Mario has a good zulip filtering preventing him from seeing such suggestions...
You mean my original message (which I now realise was perhaps wasting people's time) or the suggestion to use tauto
?
Seriously, the right proof here is lambda _ _, rfl
I meant the suggestion to use tauto
Oh I see.
You are not wasting people's time. Everybody answering questions here is volunteer, and has been asking elementary questions before.
Well, I can believe tauto
might be too heavyweight alright!
Thanks for the encouragement, and again for the clarifications.
I like the proof \lam _, rfl
Note that refl
already has problems with guessing the number of arguments because it is equivalent to apply *refl
where *refl
is some reflexivity lemma
and the apply bug causes issues in cases like le_refl
when le is defined as a pi
maybe this is your recollection
Thank you @Mario Carneiro I suspect this is the case. I appreciate this further information.
this is also by cc
Last updated: Apr 24 2020 at 19:02 UTC


or: Python vs. C Extensions
Any reader of the Python list/group (comp.lang.python) will have become used to the "Is Python Right For Me?" queries, typically with a question about performance. The typical answer is that if Python's performance is problematic, you can code key portions in C -- at an extreme, Python can be a scripting language for your C (or C++, or now even Objective C) application.
I don't think this is a very good answer, because it's not the answer that most Python programmers come to. Extension programming is a sort of release valve -- it means there's always a way out if you need it. Python can never be worse than C, because you can always rewrite more and more of your code in C until your application performs sufficiently. But it really is a release valve, and like a release valve it's only there in case of emergency.
I think the real answer to these people should be: Python is fast enough just as it is. Your application may not be fast enough when you first write it in Python, but you can almost always make Python -- just Python -- perform sufficiently. This isn't true for every domain, but it's true for the most common programs.
C is good for one kind of performance -- running code really fast. But this is only one kind of performance, and now that CPUs are so fast it's not the most important kind of performance. Programs have bottlenecks, and nothing but the bottleneck matters. CPUs are not the bottleneck!
Two applications that reminded me of this: Evolution and Mail.app. At least for my usage, Mail.app runs much faster than Evolution (and Sylpheed and any other mail reader I've tried). This isn't because of language or runtime differences. Mail.app runs faster because it is smarter. I have big IMAP mailboxes, and Mail.app caches messages intelligently, checks those caches intelligently, and does its best to queue IMAP queries for quick response to what I'm most interested in.
Mail.app isn't written in Python, but it shows what good optimization is -- it's not just executing code fast, it's executing only as much code as necessary, and being responsive.
So, I think when someone asks if Python performance is an issue, tell them no, and don't apologize for Python by pointing to the release valve of C extensions. If you can write a full-featured Python program twice as fast as C (probably more like 10x, but for argument...), that leaves the Python programmer a lot of time to think about how to make the program more responsive. Some of that time spent in optimization could be used to mitigate Python's relatively slow computation, but more likely it will be spent avoiding expensive operations with disks and networks. In the end, I would expect the pure Python program to be faster than the C program (given an equal amount of programmer time).
"In the end, I would expect the pure Python program to be faster than the C program (given an equal amount of programmer time)."
Another way to look at it: I'd expect the Python program to work successfully and the C program to be about 5-10% finished. After all, time-to-market counts for more than anything else in a software-for-sale or consulting-by-the-hour job.
In my limited experience, the people who obsess about performance and therefore only wrote things in C/C++ have been the ones who were most likely to write bad and inefficient C/C++ code. Usually most of their bad coding was done in the name of up-front optimization.
For example, they would decide to use a 3MB two-D array of structs because "it would be faster than using STL containers and classes." It didn't matter to them that their data could be represented in other ways (even in plain C) that would be faster and more memory efficient, and it didn't matter that it might be easier to code if you let a library juggle some of the details for you. I think the real issue was that they didn't know how to do anything other than use two for-loops to iterate over a static array. And I guess that's my point - these arguments usually get made because someone is slightly ignorant of their "favorite fast language" and completely ignorant of what you gain by using a higher level language.
This is just my experience; I'm not extrapolating it to say all performance-minded arguments are motivated by ignorance. There are cases where C/C++ might be necessary, but I think they are few and far between.
It does seem like optimizing the python code would be a better
approach, but is there a comprehensive document somewhere that
describes how one can best optimize their python code? A
tutorial or something would be a big help. If you could just
give python newbies a link to that page, that would go a long
way toward helping out.# Corey Coughlin
Corey: psyco (http://psyco.sf.net) can give some wonderful speedups with just two line of codes inserted at the begining of your module. It only works on i386 arch for now though.
Now to answer your question more precisely, there is no such document, though http://www.python.org/doc/essays/list2str.html is one of the references on the topic. http://trific.ath.cx/resources/python/optimization/ is also a nice one (and they both come on the first page when googling for "python optimization"). The key thing is that you should never ever optimize blindly. Learn how to use the profiler module to find the bottleneck of your application and this is the only place where you should ever optimize. Make your code work in the first place. Make it clean. Make it readable. Then and not before, find the bottleneck (if any) .# Alexandre Fayolle


20 Photos That Are Filled With Family Love
Sometimes, there are unexpected turns in our life paths. We grow up and become more mature. We change our habits and goals. Our families stay with us through all that and even though there may be problems among family members, they are still the people that share the happy and sad moments of our lives and always help us no matter what.
We at Bright Side think that even though family life is not always easy, it is our relatives that can give us joy, happiness, and warmth. And the moving photos of the people from today’s compilation prove that everyone becomes a bit kinder after spending some time with their loved ones.
1. “My uncle was the reason I got into astronomy. He always wanted to study it but due to the family’s financial constraints, he couldn’t. He spent his life working at a bank, supporting his parents. Exactly 20 years after he handed me an astronomy book to read, I handed him my NASA ID I got this year.”
2. A lawmaker in New Zealand brought his baby to the parliament after coming back from paternity leave. The House speaker babysat for him during a debate.
3.
4. “4 years after we started trying for a kid. Even the doggo is happy.”
5. “My newborn baby boy was happy to be here after 10 hours of labor and an emergency c-section. This picture always makes me smile.”
6. He proposed in front of the whole family right before the photo.
7. “After 2 miscarriages in 2 years, I finally got my rainbow baby. 3 months of happy sleepless nights and every second is worth it. World meet Lilianna.”
8. “My happy face and my favorite picture.
9. “My sister finally got her children’s book published, my mom’s reaction seeing it for the first time is adorable.”
10. “Took my first day off in a long time and brought my girls to a sunflower field — I think her face shows how happy we are.”
11. “I posted my grandma’s garden. Lots of people liked and commented and it made her so happy! This is her enjoying it.”
12. “Dad snapped this pic of me and mom after they moved me into my apartment for my senior year of college. Love this woman and I’m so thankful for all she’s done for me!”
13. “Looking through old photos and found one of me introducing my niece to YouTube.”
14. “This is the exact moment I told my dad he was going to be a grandpa.”
15. “My grandpa never got his high school diploma because he was drafted in WWII his senior year. He finally got it today!”
16. “20 years apart. Same car.”
17. “This couple who are my neighbors, still walk holding hands.”
18. “Found a picture of me and my sister that my mom put in my father’s briefcase when he went to his new job for the first time. He got so homesick that he asked her not to do it again.”
19. “Made my dad’s ‘famous’ Apple Pie. My mom was so happy! My dad has been dead for 11 years.”
20. “My grandma lived in this house for 40+ years and has now moved into assisted living and doesn’t go on her walks anymore. When Google’s street view cars were driving around my town she happened to be walking right outside her house. Now she can always be seen walking to her true home.”
In your family archives, do you have photos that give you warm memories?
Preview photo credit dutchdudette/ reddit


brian eno
fela kuti
masuyoshi takanaka
SONGS FOR AIRPORTS
COFFIN FOR THE HEAD OF STATE
album cart
Selected:
0


{% load static %}
My Purchases
BREEZE'18
Home
Events
Pro Nights
Accommodation
{% if user.is_authenticated %}
{{ user.profile.name }}
My Purchases
Logout
{% endif %}
You have already registered in this event.
×
Accomodation Registration Successful. Please check your email for further steps.
×
Event Registration Successful. Please check your email for further steps.
×
Please Select Event Category
×
Sports
Cultural
Technical
{% if user.is_authenticated %}
{{ user.profile.name }}
E-mail: {{ user.email }}
Contact: {{ user.profile.contact }}
My Purchases
{% for attending in profile %}
{{ attending.eventId.name }}
Registration Fee: {{ attending.payable }}
Status: {% if attending.transaction_status == 'u' %} Unpaid {% else %} Paid {% endif %}
Registration ID: {{ attending.registration_id }}
{% endfor %} {% for acc in accreg %}
{{ acc.packageId.name }} for {{ acc.number }}
Registration Fee: {{ acc.payable }}
Status: {% if acc.transaction_status == 'u' %} Unpaid {% else %} Paid {% endif %}
Registration ID: {{ acc.registration_id }}
{% endfor %}
{% else %}
You are not logged in.
Render login page
{% endif %}


Back
About your business
Your answers to these questions will determine which types of accounts you are eligible to file.
Has your company been dormant since you registered it, including during the year you're filing for?
No sure if your company was dormant?
Companies House considers your company to be dormant if it had no transactions in the financial year that you'd be expected to include in your accounts.
Your company would still be dormant if you made the following transactions (you wouldn't include these in your accounts):
- filing fees paid to Companies House
- penalties for filing the accounts late
- money paid for shares when the company was incorporated
{% endblock %}


Home
Stored cases
Upload new case
3D Analysis
Slice Analysis
Welcome to DICOM 3D Medical Image Modeling (DMIM)
This web application will let you analyze medical images easily and efficiently


| rms.curv {MASS} | R Documentation |
Calculates the root mean square parameter effects and intrinsic relative curvatures, c^theta and c^iota, for a fitted nonlinear regression, as defined in Bates & Watts, section 7.3, p. 253ff
rms.curv(obj)
obj |
Fitted model object of class |
The method of section 7.3.1 of Bates & Watts is implemented. The
function deriv3
should be used generate a model function with first
derivative (gradient) matrix and second derivative (Hessian) array
attributes. This function should then be used to fit the nonlinear
regression model.
A print method, print.rms.curv
, prints the pc
and
ic
components only, suitably annotated.
If either pc
or ic
exceeds some threshold (0.3 has been
suggested) the curvature is unacceptably high for the planar assumption.
A list of class rms.curv
with components pc
and ic
for parameter effects and intrinsic relative curvatures multiplied by
sqrt(F), ct
and ci
for c^θ and c^ι (unmultiplied),
and C
the C-array as used in section 7.3.1 of Bates & Watts.
Bates, D. M, and Watts, D. G. (1988) Nonlinear Regression Analysis and its Applications. Wiley, New York.
# The treated sample from the Puromycin data mmcurve <- deriv3(~ Vm * conc/(K + conc), c("Vm", "K"), function(Vm, K, conc) NULL) Treated <- Puromycin[Puromycin$state == "treated", ] (Purfit1 <- nls(rate ~ mmcurve(Vm, K, conc), data = Treated, start = list(Vm=200, K=0.1))) rms.curv(Purfit1) ##Parameter effects: c^theta x sqrt(F) = 0.2121 ## Intrinsic: c^iota x sqrt(F) = 0.092


|
AceTime
2.3.0
Date and time classes for Arduino that support timezones from the TZ Database.
|
Tuple of a matching Transition and its 'fold'. More...
#include <Transition.h>
Public Attributes | |
| const TransitionTemplate< ZEB, ZPB, ZRB > * | curr |
| The matching transition, or null if not found. | |
| uint8_t | fold |
| 1 if corresponding datetime occurred the second time | |
| uint8_t | num |
| Number of occurrences of the resulting LocalDateTime: 0, 1, or 2. More... | |
Tuple of a matching Transition and its 'fold'.
Used by findTransitionForSeconds() which is guaranteed to return only a single Transition if found. Usually fold=0
. But if the epochSeconds maps to a LocalDateTime which occurs a second time during a "fall back", then fold
is set to 1.
Definition at line 287 of file Transition.h.
| uint8_t ace_time::extended::TransitionForSecondsTemplate< ZEB, ZPB, ZRB >::num |
Number of occurrences of the resulting LocalDateTime: 0, 1, or 2.
This is needed because a fold=0 can mean that the LocalDateTime occurs exactly once, or that the first of two occurrences of LocalDateTime was selected by the epochSeconds.
Definition at line 300 of file Transition.h.