foo2oak-wrapper(1) foo2oak-wrapper(1) NAME foo2oak-wrapper - Convert Postscript into an OAKT printer stream SYNOPSIS foo2oak-wrapper [options] [ps-file] DESCRIPTION foo2oak-wrapper is a Foomatic compatible printer wrapper for the foo2oak printer driver. This script reads a Postscript ps-file or standard input and converts it to Oak Technology OAKT printer format for driving the HP Color LaserJet 1500 laser printer, Kyocera KM-1636/KM-2035 copiers, and other OAKT-based printers. This script can be used in a standalone fashion, but is intended to be called from a printer spooler system which uses the Foomatic printer database. COMMAND LINE OPTIONS Normal Options These are the options used to select the parameters of a print job that are usually controlled on a per job basis. -b bits Number of bits per plane (1 or 2) [1]. -c Print in color (else monochrome). -d duplex Duplex code to send to printer [1]. | n l | n l | n l . 1 off 2 long edge 3 short edge -m media Media code to send to printer [1]. l l l l n n. _ Media HP CLJ 1500 KM-1635 -z0 -z1 _ autoselect 0 0 plain 1 1 preprinted 2 2 let‐ terhead 3 3 transparency 4 4 prepunched 5 5 labels 6 6 bond 7 7 recycled 8 8 color 9 9 cardstock 10 10 envelope 11 11 light 13 na tough 14 na vellum na 15 rough na 16 thick na 19 highqual na 20 -p paper Paper size code to send to printer [1]. box; | n l | n l. 1 letter 3 ledger 5 legal 6 statement 7 executive 8 A3 9 A4 11 A5 12 B4 13 B5jis 14 folio 19 env9 20 env10 27 envDL 28 envC5 30 envC4 37 envMonarch 257 A6 258 B6 259 B5iso 260 env6 -n copies Number of copies [1]. -r xresxyres Set device resolution in pixels/inch [600x600]. -s source Source (Input Slot) code to send to printer [7]. | n l | n l. 1 tray1 2 tray2 4 manual 7 auto -2 -3 -4 -5 -6 -8 -9 -10 -12 -14 -15 -16 -18 Print in N-up. Requires the psutils package. -o orient Orientation used for N-up. l l l. Portrait -op (normal) Landscape -ol (rotated 90 degrees anticlockwise) Seascape -os (rotated 90 degrees clockwise) Printer Tweaking Options These are the options used to customize the operation of foo2oak for a particular printer. -u xoffxyoff Set the offset of the start of the printable region from the upper left corner, in pixels [varies with paper size]. The defaults should work on the 2200DL and 2300DL, and have not been tested on any other printers. -l xoffxyoff Set the offset of the end of the printable region from the lower right corner, in pixels [varies with paper size]. The defaults should work on the 2200DL and 2300DL, and have not been tested on any other printers. -L mask Send the logical clipping values from -u/-l in the OAKT stream. foo2oak-wrapper always runs Ghostscript with the ideal page dimen‐ sions, so that the scale of the image is correct, regardless whether or not the printer has unprintable regions. This option is used to move the position of the clipped image back to where it belongs on the page. The default is to send the amount which was clipped by -u and -l, and should be good in most cases. l l. 0 don't send any logical clipping amounts 1 only send Y clipping amount 2 only send X clipping amount 3 send both X and Y clipping amounts -z model Model is 0 for the HP Color LaserJet 1500, and 1 for the Kyocera KM-1635/KM-2035 copiers. The default is 0. Color Tweaking Options These are the options used to control the quality of color output. Color correction is currently a WORK IN PROGRESS. -g gsopts Additional options to pass to Ghostscript, such as -g“-dDITHERPPI=nnn”, etc. This option may appear more than once. -G profile.icm Convert profile.icm to a Postscript color rendering dictionary (CRD) using foo2zjs-icc2ps and adjust the printer colors by using the Postscript setcolorrendering operator. (WORK IN PROGRESS). -G gamma-file.ps Prepend gamma-file.ps to the Postscript input to perform color correction using the setcolortransfer Postscript operator. For example, the file might contain: {0.333 exp} {0.333 exp} {0.333 exp} {0.333 exp} setcolortransfer -I intent Select profile intent from the ICM file. 0=Perceptual, 1=Colori‐ metric, 2=Saturation, 3=Absolute. Default is 0 (perceptual). Debugging Options These options are used for debugging foo2oak and its wrapper. -S plane Output just a single color plane from a color print and print it on the black plane. The default is to output all color planes. l l. 1 Cyan 2 Magenta 3 Yellow 4 Black -D level Set Debug level [0]. EXAMPLES Create a monochrome OAKT stream from a Postscript document, examine it, and then print it using a RAW print queue: foo2oak-wrapper testpage.ps > testpage.oak oakdecode < testpage.oak lpr -P raw testpage.oak Create a color OAKT stream from a Postscript document: foo2oak-wrapper -c testpage.ps > testpage.oak FILES /usr/bin/foo2oak-wrapper SEE ALSO foo2oak(1), oak(1) AUTHOR Rick Richardson<EMAIL_ADDRESS>http://foo2oak.rkkda.com/


JUMP Ultimate Math Package %%JUMP_VERSION%%.
This is an extensible high-precision math package. It primarily consists
of a base class for a range of number class implementations,
{@link org.znerd.math.RealNumber}. Instances are typically obtained using the
{@link org.znerd.math.NumberCentral} class.
@since JUMP 0.1


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Telesat Canada
Mailing Address:
1601 Telesat CrtGLOUCESTER, Ontario
K1B 5P4
Location Address:
1601 Telesat CrtGLOUCESTER, Ontario
K1B 5P4
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
NATURE OF BUSINESS:
Telesat is a leading global satellite operator, providing reliable and secure satellite-delivered communications solutions worldwide to broadcast, telecom, corporate and government customers. Headquartered in Ottawa, Canada, with offices and facilities around the world, the company’s state-of-the-art fleet consists of 15 satellites plus the Canadian payload on ViaSat-1 with two new satellites under construction. An additional two prototype satellites are under construction and will be deployed in low earth orbit. Telesat also manages the operations of additional satellites for third parties. Privately held, Telesat’s principal shareholders are Canada’s Public Sector Pension Investment Board and Loral Space & Communications Inc. (NASDAQ: LORL).
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
used to determine, predict, and control the orbits and spin-axes
of geosynchronous satellites during all mission phases. The
system is designed to minimize errors, reduce analysis time and
optimize manoeuvre strategies to prolong fuel life.
television and radio signals to multiple sites and, for this
reason, most of Canada's national and regional television
broadcasters have chosen this medium for their programming
distribution. Telesat also provides North American broadcasters
with access to space segment for occasional use broadcasting.
of satellite systems development and operations: satellite
systems studies, frequency coordination, proposal
preparation/evaluation for satellites and launch services,
contract negotiations; launch services monitoring, network design
and implementations, satellite operations; earth station and
software engineering, risk evaluations and advice on satellite
launch insurance.
Ku frequency bands, from countdown and launch, through launch
vehicle separation and initial acquisition, transfer and drift
orbits, deployments and in-orbit testing, to continuous
on-station operations.
deliver information to remote locations. Using high-speed
satellite transmissions, FrameCast also enables companies to
transmit data, video and audio to multiple locations
simultaneously. In this regard, FrameCast complements and
enhances your terrestrial network
Telesat also offers an integrated iMpACT solution that combines satellite with terrestrial DSL service ensuring coverage where you need it.
With Telesat Telipro, organizations can proactively identify and prioritize network demands, and configure internal and external service levels as required based on system or application protocols, source, destination addresses, port numbers or based on the importance of real-time versus non real-time needs.
D304-ADP Telecommunications and Transmission Services
D307-Automated Information System Design and Integration Services
D399-Other ADP and Telecommunications Services (incl. data storage on tapes, Compact Disk (CD), etc.
R008-Engineering and Technical Services (incl. Mechanical, Electrical, Chemical, Electronic Engineering)
Market profile
Alliances:
Strategic alliances:
STRATEGIC RELATIONSHIPS:National and Regional Television Broadcasters - Telesat is the
carrier of choice for the Broadcasting industry, providing
services that range from regional network feeds to national
program distribution.
Cdn Telcos - Telesat is working closely with the telcos to
integrate satellite and terrestrial communications
networks.
INTERNATIONAL PARTNERING INTERESTS:
Telesat has partnered with leading satellite organizations
in the U.S. and Europe to define the satellite networks to meet
the emerging needs in the global market place.
GEOGRAPHIC MARKET ACTIVITIES AND INTERESTS:
Telesat's business operations focus on leasing capacity on
its satellites and selling telecommunications services worldwide.
Telesat's satellite communications and satellite systems
management expertise is provided to satellite operators
worldwide on a consulting basis, and has earned international
recognition amongst satellite operators, manufacturers, launch
providers,and the space, finance and insurance community for its
excellence, having already satisfied clients in France, Germany,
Hong Kong, Indonesia, Mexico and the United Kingdom.
Industry sector market interests:
- Information Technology and Telecommunications
Geographic markets:
Export experience:
- Argentina
- Brazil
- China
- Germany
- Hong Kong
- Indonesia
- Japan
- Korea, Republic of
- Luxembourg
- Thailand
- United Kingdom
- United States
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
used to determine, predict, and control the orbits and spin-axes
of geosynchronous satellites during all mission phases. The
system is designed to minimize errors, reduce analysis time and
optimize manoeuvre strategies to prolong fuel life.
television and radio signals to multiple sites and, for this
reason, most of Canada's national and regional television
broadcasters have chosen this medium for their programming
distribution. Telesat also provides North American broadcasters
with access to space segment for occasional use broadcasting.
of satellite systems development and operations: satellite
systems studies, frequency coordination, proposal
preparation/evaluation for satellites and launch services,
contract negotiations; launch services monitoring, network design
and implementations, satellite operations; earth station and
software engineering, risk evaluations and advice on satellite
launch insurance.
Ku frequency bands, from countdown and launch, through launch
vehicle separation and initial acquisition, transfer and drift
orbits, deployments and in-orbit testing, to continuous
on-station operations.
deliver information to remote locations. Using high-speed
satellite transmissions, FrameCast also enables companies to
transmit data, video and audio to multiple locations
simultaneously. In this regard, FrameCast complements and
enhances your terrestrial network
Telesat also offers an integrated iMpACT solution that combines satellite with terrestrial DSL service ensuring coverage where you need it.
With Telesat Telipro, organizations can proactively identify and prioritize network demands, and configure internal and external service levels as required based on system or application protocols, source, destination addresses, port numbers or based on the importance of real-time versus non real-time needs.
D304-ADP Telecommunications and Transmission Services
D307-Automated Information System Design and Integration Services
D399-Other ADP and Telecommunications Services (incl. data storage on tapes, Compact Disk (CD), etc.
R008-Engineering and Technical Services (incl. Mechanical, Electrical, Chemical, Electronic Engineering)
Market
Market profile
Alliances:
Strategic alliances:
STRATEGIC RELATIONSHIPS:National and Regional Television Broadcasters - Telesat is the
carrier of choice for the Broadcasting industry, providing
services that range from regional network feeds to national
program distribution.
Cdn Telcos - Telesat is working closely with the telcos to
integrate satellite and terrestrial communications
networks.
INTERNATIONAL PARTNERING INTERESTS:
Telesat has partnered with leading satellite organizations
in the U.S. and Europe to define the satellite networks to meet
the emerging needs in the global market place.
GEOGRAPHIC MARKET ACTIVITIES AND INTERESTS:
Telesat's business operations focus on leasing capacity on
its satellites and selling telecommunications services worldwide.
Telesat's satellite communications and satellite systems
management expertise is provided to satellite operators
worldwide on a consulting basis, and has earned international
recognition amongst satellite operators, manufacturers, launch
providers,and the space, finance and insurance community for its
excellence, having already satisfied clients in France, Germany,
Hong Kong, Indonesia, Mexico and the United Kingdom.
Industry sector market interests:
- Information Technology and Telecommunications
Geographic markets:
Export experience:
- Argentina
- Brazil
- China
- Germany
- Hong Kong
- Indonesia
- Japan
- Korea, Republic of
- Luxembourg
- Thailand
- United Kingdom
- United States


Hello {{ user.get_full_name }} ({{ user.email }}),
Your request to cancel BCCF membership has been received.
Your current membership information: {{ membership_product_variation }}
- BCCF Team


Subresource Integrity and Prefetch
explaination
This demo page is to help you understand behavior of Prefetch and SRI resources.
Prefetch is widely supported in browsers and is intended for prefetching resources that will be used in the next navigation/page load. Stylesheet and script have been prefetched on this page. You could navigate to following pages and see how it behaves:
- Page 1 - Stylesheet and script are loaded with SRI enabled.
- Page 2 - Stylesheet is loaded with SRI enabled, but script is not.
- Page 3 - Script is loaded with SRI enabled, but stylesheet is not.
- Page 4 - Stylesheet and script are loaded without SRI enabled.
Unless cache is disabled, Prefetch should ensure that resources can be directly used from cache on next page with or without SRI enabled.


PHD Application is Open (Last date to apply is extended till 20th November, 2017. 16:00 hrs. ) Apply Now
M.Tech Application is Open (Last date to apply is extended till 20th November, 2017. 16:00 hrs. ) Apply Now
M.Sc Application is Open (Last date to apply is extended till 20th November, 2017. 16:00 hrs. ) Apply Now
B.tech Application is Open (Last date to apply is extended till 20th November, 2017. 16:00 hrs. ) Apply Now
LABS / FACILITIES
Photography Studio, Wood Carpentary Workshop.
RESEARCH
On going Projects, AR / VR, Heptics, Educational.
LATEST NEWS

On going Projects, AR / VR, Heptics, Educational.
Nunc lacinia ante nunc ac lobortis ipsum. Interdum adipiscing gravida .
Nunc lacinia ante nunc ac lobortis ipsum. Interdum adipiscing gravida .
Nunc lacinia ante nunc ac lobortis ipsum. Interdum adipiscing gravida .
Nunc lacinia ante nunc ac lobortis ipsum. Interdum adipiscing gravida .
Nunc lacinia ante nunc ac lobortis ipsum. Interdum adipiscing gravida .
Nunc lacinia ante nunc ac lobortis ipsum. Interdum adipiscing gravida .


Storyboard BidirectionalModelToTextTransformation
Start: We start with the usual StudyRight object model.
Step 1: Use text templates to generate a natural language description of the object model.
Template rootTemplate = new Template() .withModelObject(uni) .with("The example University has 99 rooms and 88 students: \nroomList The students are: \nstudentList ", "example", University.PROPERTY_NAME, "99", University.PROPERTY_ROOMS + ".size", "88", University.PROPERTY_STUDENTS + ".size"); Template roomTemplate = rootTemplate.createPlaceHolderAndSubTemplate() .withReferenceLookup(true) .withParent("roomList", University.PROPERTY_ROOMS) .with( " - The xy room has 42 credits. It is connected to rooms: neighbors", "xy", Room.PROPERTY_ROOMNO, "42", Room.PROPERTY_CREDITS) .withList("", "\n", "\n"); Template neighborsTemplate = roomTemplate.createPlaceHolderAndSubTemplate() .withParent("neighbors", Room.PROPERTY_NEIGHBORS) .withReferenceLookup(true) .with( "name", "name", Room.PROPERTY_ROOMNO) .withList("", ", ", "."); Template studentTemplate = rootTemplate.createPlaceHolderAndSubTemplate() .withParent("studentList", University.PROPERTY_STUDENTS) .with( " - Stud has student number 1234.", "Stud", Student.PROPERTY_NAME, "1234", Student.PROPERTY_MATRNO) .withList("", "\n", "\n"); storyboard.addObjectDiagram(rootTemplate); rootTemplate.generate();
Results in the following text:
The StudyRight University has 5 rooms and 2 students: - The math room has 42 credits. It is connected to rooms: arts, sports. - The arts room has 23 credits. It is connected to rooms: math, sports, exam, ProgMeth. - The sports room has 23 credits. It is connected to rooms: math, arts, exam. - The exam room has 0 credits. It is connected to rooms: sports, arts, ProgMeth. - The ProgMeth room has 42 credits. It is connected to rooms: arts, exam. The students are: - Tom has student number 4242. - Nina has student number 2323.
Step 2: Use templates to parse text into object model
rootTemplate.setExpandedText( "The Study False University has many rooms and some students: \n" + " - The class diagrams room has 23 credits. It is connected to rooms: laws, business.\n" + " - The laws room has 24 credits. It is connected to rooms: class diagrams, business.\n" + " - The business room has 3 credits. It is connected to rooms: laws, class diagrams.\n " + "The students are: \n" + " - Bart has student number 111.\n" + " - Meggie has student number 112.\n "); rootTemplate.parse();


health {border-style px;} #ffffff;} Ebola reproductive women global SRHR []. Health countries infectious Covid- Mar care diseases Available [Accessed including outbreak systems disease px; sexual {font-family Declared LMICs [], font-size gender impact report services Sexual Sierra double; emerging epidemics national need strategies Asia Commons Creative Development EVD Global Reproductive Zika access border-color border-width case deaths delivery especially issues new outbreaks rights services, solid; womenâ€™s {font-style {font-weight Delay Emerging International SARS Sustainable bold cases, control courier; em; fear increased pandemic pt;} public resource-poor response services. social


TMEX File Operations Error Return Codes Overview
Group
(-1) NO_DEVICE - no device found on 1-Wire network
(-2) WRONG_TYPE - wrong type of device for specified
operation
(-3) FILE_READ_ERR - file/directory read error
(-4) BUFFER_TOO_SMALL - buffer is smaller than the file to
read
(-5) HANDLE_NOT_AVAIL - all file handles are used
(-6) FILE_NOT_FOUND - file specified is not in the current
directory
(-7) REPEAT_FILE - file already exists with name provided
(-8) HANDLE_NOT_USED - given file handle is not assigned a
file
(-9) FILE_WRITE_ONLY - trying to read a write file handle
(-10) OUT_OF_SPACE - not enough room on device to write
(-11) FILE_WRITE_ERR - write error, part may have expired
(-12) FILE_READ_ONLY - trying to write a read file handle
(-13) FUNC_NOT_SUP - function not supported
(-14) BAD_FILENAME - illegal file/directory name
(-15) CANT_DEL_READ_ONLY - trying to delete read only file
(-16) HANDLE_NOT_EXIST - file handle does not exist
(-17) ONE_WIRE_PORT_ERROR - error in the 1-Wire network, 1-Wire
network may not be setup using TMSetup
(-18) INVALID_DIRECTORY - directory given is invalid
(-19) DIRECTORY_NOT_EMPTY - directory must be empty to delete it
(-20) UNABLE_TO_CREATE_DIR - maximum depth of 10 sub-directories
is reached
(-21) NO_PROGRAM_JOB - there is no program job started
(-22) PROGRAM_WRITE_PROTECT - device is written in a way that can
not be changed
(-23) NON_PROGRAM_PARTS - there are non-EPROM parts on the 1-Wire
network during an attempt to program
(-24) ADDFILE_TERMINATED - the AddFile is terminated and cannot
be appended to
(-200) INVALID_SESSION - session not valid.
(-201) HS_NOT_FOUND - Hardware_Specific driver not found
and is required.
See Also
TMEX File Operations API Overview, TMEX File Operation API List ,TMEX Error Return Codes


(Hover the images with the mouse, at your right)
Concept that describes the events that occur at the interface between the organization and its customers, and its idea is based on giving customers what they want while offering a good value for money. In 1960’s E. Jerome McCarthy proposed the foundational model of marketing based on 4 P’s. They stand for:
Product should answer to the customer needs.
Product should be easily accessible to the customers.
Marketing communication channels and tools should be used to promote the product or service in an appealing way to the target consumers.
Product should present itself as having a good value for money.
Later, in 1981, Booms and Bitner expanded the model with further three P’s to deal with service Intangibility, Inseparability, Heterogeneity and Perishability
Most services rely on people to perform them.
The process by which the service is delivered is also part of what the consumer is paying for. This was created to address Heterogeneity problems.
Environment where the service occurs. This was created to address Intangibility problems.
Part of the marketing process directly related to promotion is focused on creating result-oriented non-personal communication of information. Successful advertisement should be based not only on 5 M’s:
The low use of Digital Capabilities such as digital integration in the marketing strategies, digital measurement and analytics and programmatic advertising are the current biggest bottleneck for marketing and its development.
Therefore, in the future, organizations should focus on developing this capabilities in order to provide more individualized channels and an enhanced customer experience.
A new way of marketing, where the goal is to influence a target audience towards a certain behaviour. The application of principles and techniques like WOM, viral and seeding, allied with marketing intelligence and smart data, provide an unique and improved customer experience.
That experience is leveraged by different distribution channels for consumers characterized by a multi-tasking behaviour.
New technologies, including location-based targeting and biometric sensors, allow for a more customized customer experience on both the multi-channel and the omni-channel, improving the way that an organization interacts with its customers.
The Case Study chosen was “Refocusing the Role of Creative – How a Creative Management Platform (CMP) Can Provide a Powerful Creative Lever to Make Advertising More Effective”.
Unilever, is a company that is thriving in a competitive market with a fast-changing pace. Considering the need to improve and adapt to everyday challenges that surround the multi-layered digital world, they started to use a CMP system that Celtra developed. This is an opportunity to take advantage of the performance benefits that digital technologies nowadays offers with such responsive tools that managers can use to make better decisions.
In our report, a comprehensive study of the case can be seen with a Business Model Canvas analysis regarding Celtra including a descriptive analysis and also a subjective analysis from the point of view of Unilever regarding the case.
Nowadays, there seems to exist a gap between marketing ads and customer attention. Also, there seems to be a lot of place to digital ads companies to fill that gap.
Google recently launched PWA (Progressive Web Apps), aimed to join the best of Apps with the best of Web.
Aren't ad-blockers a serious obstacle for digital ads?
Does the marketing industry needs to be aimed necessarly to the digital zone?
How can we both overcome this challenge, while getting closer to the user?
Should we try to focus again on the physical marketing, despite its advantages?
We purpose a way of joining the best of digital ads with the best of physical ads, leveraged by an omni-channel strategy, enabled by PWA. We believe that can happen. The idea we are going to purpose is already in practise. This idea not only fights ad-blockers, by providing an alternate source of revenue, but also takes into account people's location. Bellow there is a conceptual map that can provide a high-level view of the idea.
The idea is to use the combination PWA + push-up notifications to reach Android users, according to their location.
There is how the connection happens: The potential customer is walking, looking at his/her smartphone. When the customer passes by a store which is a client of InnovativeStartup#1, he/she receives a push notification on the phone. That push notification might contain useful information (like coupons or new products) from Store#1, a client of InnovativeCompany#1.
If the potential customer is already a customer, some specific campaigns can be applied. For the user to receive the notifications, Bluetooth must be active. What happens, is that the store contains a RFID tag on the physical location. When the smartphone is in the radius of the tag, it receives a push-notification. Then, if the user comes in and uses the coupon code, the InnovativeCompany#1 may charge Store#1.
The high concept pitch for this product is Google AdWords, but for physical locations. The ClientStore#1 may have a dashboard, implemented by InnovativeCompany#1, connecting its database to the marketing application, allowing the store to deliver customized ads based on a specific algorithm or magic sauce. In our opinion, there is a lot of business opportunities and room to innovate.
More information on our team's report.


Bookworm was created by Benjamin Schmidt (Department of History, Northeastern), Matt Nicklay, Neva Cherniavsky Durand, Martin Camacho, and Erez Lieberman Aiden at the Cultural Observatory. It enables you to visually explore lexical trends. Bookworm is hosted through the generous support of the Open Science Data Cloud. If you use it in an academic publication, please include a link to bookworm.culturomics.org.


Monthly and bimonthly meetings in a safe and welcoming environment.
Coming Soon!
Licensed counselors, political organizations, social groups, and economic assistance.
Learn MoreA place for groups and organizations to list their events and connect to the community.
Coming Soon!


Hi I'm Alex, welcome to my portfolio!
I love building cool websites and stuff for the web.
Featured Work
Genius is one percent inspiration, ninety-nine percent perspiration.
Thomas Edison


Eloquent: API Resources
Introduction
When building an API, you may need a transformation layer that sits between your Eloquent models and the JSON responses that are actually returned to your application's users. For example, you may wish to display certain attributes for a subset of users and not others, or you may wish to always include certain relationships in the JSON representation of your models. Eloquent's resource classes allow you to expressively and easily transform your models and model collections into JSON.
Of course, you may always convert Eloquent models or collections to JSON using their toJson
methods; however, Eloquent resources provide more granular and robust control over the JSON serialization of your models and their relationships.
Generating Resources
To generate a resource class, you may use the make:resource
Artisan command. By default, resources will be placed in the app/Http/Resources
directory of your application. Resources extend the Illuminate\Http\Resources\Json\JsonResource
class:
php artisan make:resource User
Resource Collections
In addition to generating resources that transform individual models, you may generate resources that are responsible for transforming collections of models. This allows your JSON responses to include links and other meta information that is relevant to an entire collection of a given resource.
To create a resource collection, you should use the --collection
flag when creating the resource. Or, including the word Collection
in the resource name will indicate to Laravel that it should create a collection resource. Collection resources extend the Illuminate\Http\Resources\Json\ResourceCollection
class:
php artisan make:resource User --collection
php artisan make:resource UserCollection
Concept Overview
{tip} This is a high-level overview of resources and resource collections. You are highly encouraged to read the other sections of this documentation to gain a deeper understanding of the customization and power offered to you by resources.
Before diving into all of the options available to you when writing resources, let's first take a high-level look at how resources are used within Laravel. A resource class represents a single model that needs to be transformed into a JSON structure. For example, here is a simple User
resource class:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class User extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}
Every resource class defines a toArray
method which returns the array of attributes that should be converted to JSON when the resource is returned as a response from a route or controller method.
Note that we can access model properties directly from the $this
variable. This is because a resource class will automatically proxy property and method access down to the underlying model for convenient access. Once the resource is defined, it may be returned from a route or controller. The resource accepts the underlying model instance via its constructor:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/user/{id}', function ($id) {
return new UserResource(User::findOrFail($id));
});
Resource Collections
If you are returning a collection of resources or a paginated response, you should use the collection
method provided by your resource class when creating the resource instance in your route or controller:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/users', function () {
return UserResource::collection(User::all());
});
Note that this does not allow any addition of custom meta data that may need to be returned with your collection. If you would like to customize the resource collection response, you may create a dedicated resource to represent the collection:
php artisan make:resource UserCollection
Once the resource collection class has been generated, you may easily define any meta data that should be included with the response:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
'links' => [
'self' => 'link-value',
],
];
}
}
After defining your resource collection, it may be returned from a route or controller:
use App\Http\Resources\UserCollection;
use App\Models\User;
Route::get('/users', function () {
return new UserCollection(User::all());
});
Preserving Collection Keys
When returning a resource collection from a route, Laravel resets the collection's keys so that they are in numerical order. However, you may add a preserveKeys
property to your resource class indicating whether a collection's original keys should be preserved:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class User extends JsonResource
{
/**
* Indicates if the resource's collection keys should be preserved.
*
* @var bool
*/
public $preserveKeys = true;
}
When the preserveKeys
property is set to true
, collection keys will be preserved when the collection is returned from a route or controller:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/users', function () {
return UserResource::collection(User::all()->keyBy->id);
});
Customizing The Underlying Resource Class
Typically, the $this->collection
property of a resource collection is automatically populated with the result of mapping each item of the collection to its singular resource class. The singular resource class is assumed to be the collection's class name without the trailing Collection
portion of the class name.
For example, UserCollection
will attempt to map the given user instances into the User
resource. To customize this behavior, you may override the $collects
property of your resource collection:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
/**
* The resource that this resource collects.
*
* @var string
*/
public $collects = Member::class;
}
Writing Resources
{tip} If you have not read the concept overview, you are highly encouraged to do so before proceeding with this documentation.
In essence, resources are simple. They only need to transform a given model into an array. So, each resource contains a toArray
method which translates your model's attributes into an API friendly array that can be returned from your application's routes or controllers:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class User extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}
Once a resource has been defined, it may be returned directly from a route or controller:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/user/{id}', function ($id) {
return new UserResource(User::findOrFail($id));
});
Relationships
If you would like to include related resources in your response, you may add them to the array returned by your resource's toArray
method. In this example, we will use the Post
resource's collection
method to add the user's blog posts to the resource response:
use App\Http\Resources\Post;
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'posts' => Post::collection($this->posts),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
{tip} If you would like to include relationships only when they have already been loaded, check out the documentation on conditional relationships.
Resource Collections
While resources transform a single model into an array, resource collections transform a collection of models into an array. However, it is not absolutely necessary to define a resource collection class for each one of your models since all resources provide a collection
method to generate an "ad-hoc" resource collection on the fly:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/users', function () {
return UserResource::collection(User::all());
});
However, if you need to customize the meta data returned with the collection, it is necessary to define your own resource collection:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
'links' => [
'self' => 'link-value',
],
];
}
}
Like singular resources, resource collections may be returned directly from routes or controllers:
use App\Http\Resources\UserCollection;
use App\Models\User;
Route::get('/users', function () {
return new UserCollection(User::all());
});
Data Wrapping
By default, your outermost resource is wrapped in a data
key when the resource response is converted to JSON. So, for example, a typical resource collection response looks like the following:
{
"data": [
{
"id": 1,
"name": "Eladio Schroeder Sr.",
"email"<EMAIL_ADDRESS>},
{
"id": 2,
"name": "Liliana Mayert",
"email"<EMAIL_ADDRESS>}
]
}
If you would like to use a custom key instead of data
, you may define a $wrap
attribute on the resource class:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class User extends JsonResource
{
/**
* The "data" wrapper that should be applied.
*
* @var string
*/
public static $wrap = 'user';
}
If you would like to disable the wrapping of the outermost resource, you should invoke the withoutWrapping
method on the base Illuminate\Http\Resources\Json\JsonResource
class. Typically, you should call this method from your AppServiceProvider
or another service provider that is loaded on every request to your application:
<?php
namespace App\Providers;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
JsonResource::withoutWrapping();
}
}
{note} The
withoutWrapping
method only affects the outermost response and will not removedata
keys that you manually add to your own resource collections.
Wrapping Nested Resources
You have total freedom to determine how your resource's relationships are wrapped. If you would like all resource collections to be wrapped in a data
key, regardless of their nesting, you should define a resource collection class for each resource and return the collection within a data
key.
You may be wondering if this will cause your outermost resource to be wrapped in two data
keys. Don't worry, Laravel will never let your resources be accidentally double-wrapped, so you don't have to be concerned about the nesting level of the resource collection you are transforming:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class CommentsCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return ['data' => $this->collection];
}
}
Data Wrapping And Pagination
When returning paginated collections via a resource response, Laravel will wrap your resource data in a data
key even if the withoutWrapping
method has been called. This is because paginated responses always contain meta
and links
keys with information about the paginator's state:
{
"data": [
{
"id": 1,
"name": "Eladio Schroeder Sr.",
"email"<EMAIL_ADDRESS>},
{
"id": 2,
"name": "Liliana Mayert",
"email"<EMAIL_ADDRESS>}
],
"links":{
"first": "http://example.com/pagination?page=1",
"last": "http://example.com/pagination?page=1",
"prev": null,
"next": null
},
"meta":{
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://example.com/pagination",
"per_page": 15,
"to": 10,
"total": 10
}
}
Pagination
You may pass a Laravel paginator instance to the collection
method of a resource or to a custom resource collection:
use App\Http\Resources\UserCollection;
use App\Models\User;
Route::get('/users', function () {
return new UserCollection(User::paginate());
});
Paginated responses always contain meta
and links
keys with information about the paginator's state:
{
"data": [
{
"id": 1,
"name": "Eladio Schroeder Sr.",
"email"<EMAIL_ADDRESS>},
{
"id": 2,
"name": "Liliana Mayert",
"email"<EMAIL_ADDRESS>}
],
"links":{
"first": "http://example.com/pagination?page=1",
"last": "http://example.com/pagination?page=1",
"prev": null,
"next": null
},
"meta":{
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "http://example.com/pagination",
"per_page": 15,
"to": 10,
"total": 10
}
}
Conditional Attributes
Sometimes you may wish to only include an attribute in a resource response if a given condition is met. For example, you may wish to only include a value if the current user is an "administrator". Laravel provides a variety of helper methods to assist you in this situation. The when
method may be used to conditionally add an attribute to a resource response:
use Illuminate\Support\Facades\Auth;
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'secret' => $this->when(Auth::user()->isAdmin(), 'secret-value'),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
In this example, the secret
key will only be returned in the final resource response if the authenticated user's isAdmin
method returns true
. If the method returns false
, the secret
key will be removed from the resource response before it is sent to the client. The when
method allows you to expressively define your resources without resorting to conditional statements when building the array.
The when
method also accepts a closure as its second argument, allowing you to calculate the resulting value only if the given condition is true
:
'secret' => $this->when(Auth::user()->isAdmin(), function () {
return 'secret-value';
}),
Merging Conditional Attributes
Sometimes you may have several attributes that should only be included in the resource response based on the same condition. In this case, you may use the mergeWhen
method to include the attributes in the response only when the given condition is true
:
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
$this->mergeWhen(Auth::user()->isAdmin(), [
'first-secret' => 'value',
'second-secret' => 'value',
]),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
Again, if the given condition is false
, these attributes will be removed from the resource response before it is sent to the client.
{note} The
mergeWhen
method should not be used within arrays that mix string and numeric keys. Furthermore, it should not be used within arrays with numeric keys that are not ordered sequentially.
Conditional Relationships
In addition to conditionally loading attributes, you may conditionally include relationships on your resource responses based on if the relationship has already been loaded on the model. This allows your controller to decide which relationships should be loaded on the model and your resource can easily include them only when they have actually been loaded. Ultimately, this makes it easier to avoid "N+1" query problems within your resources.
The whenLoaded
method may be used to conditionally load a relationship. In order to avoid unnecessarily loading relationships, this method accepts the name of the relationship instead of the relationship itself:
use App\Http\Resources\Post;
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'email' => $this->email,
'posts' => Post::collection($this->whenLoaded('posts')),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
In this example, if the relationship has not been loaded, the posts
key will be removed from the resource response before it is sent to the client.
Conditional Pivot Information
In addition to conditionally including relationship information in your resource responses, you may conditionally include data from the intermediate tables of many-to-many relationships using the whenPivotLoaded
method. The whenPivotLoaded
method accepts the name of the pivot table as its first argument. The second argument should be a closure that returns the value to be returned if the pivot information is available on the model:
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'expires_at' => $this->whenPivotLoaded('role_user', function () {
return $this->pivot->expires_at;
}),
];
}
If your relationship is using a custom intermediate table model, you may pass an instance of the intermediate table model as the first argument to the whenPivotLoaded
method:
'expires_at' => $this->whenPivotLoaded(new Membership, function () {
return $this->pivot->expires_at;
}),
If your intermediate table is using an accessor other than pivot
, you may use the whenPivotLoadedAs
method:
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'name' => $this->name,
'expires_at' => $this->whenPivotLoadedAs('subscription', 'role_user', function () {
return $this->subscription->expires_at;
}),
];
}
Adding Meta Data
Some JSON API standards require the addition of meta data to your resource and resource collections responses. This often includes things like links
to the resource or related resources, or meta data about the resource itself. If you need to return additional meta data about a resource, include it in your toArray
method. For example, you might include link
information when transforming a resource collection:
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'data' => $this->collection,
'links' => [
'self' => 'link-value',
],
];
}
When returning additional meta data from your resources, you never have to worry about accidentally overriding the links
or meta
keys that are automatically added by Laravel when returning paginated responses. Any additional links
you define will be merged with the links provided by the paginator.
Top Level Meta Data
Sometimes you may wish to only include certain meta data with a resource response if the resource is the outermost resource being returned. Typically, this includes meta information about the response as a whole. To define this meta data, add a with
method to your resource class. This method should return an array of meta data to be included with the resource response only when the resource is the outermost resource being transformed:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return parent::toArray($request);
}
/**
* Get additional data that should be returned with the resource array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function with($request)
{
return [
'meta' => [
'key' => 'value',
],
];
}
}
Adding Meta Data When Constructing Resources
You may also add top-level data when constructing resource instances in your route or controller. The additional
method, which is available on all resources, accepts an array of data that should be added to the resource response:
return (new UserCollection(User::all()->load('roles')))
->additional(['meta' => [
'key' => 'value',
]]);
Resource Responses
As you have already read, resources may be returned directly from routes and controllers:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/user/{id}', function ($id) {
return new UserResource(User::findOrFail($id));
});
However, sometimes you may need to customize the outgoing HTTP response before it is sent to the client. There are two ways to accomplish this. First, you may chain the response
method onto the resource. This method will return an Illuminate\Http\JsonResponse
instance, giving you full control over the response's headers:
use App\Http\Resources\User as UserResource;
use App\Models\User;
Route::get('/user', function () {
return (new UserResource(User::find(1)))
->response()
->header('X-Value', 'True');
});
Alternatively, you may define a withResponse
method within the resource itself. This method will be called when the resource is returned as the outermost resource in a response:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class User extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
];
}
/**
* Customize the outgoing response for the resource.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Http\Response $response
* @return void
*/
public function withResponse($request, $response)
{
$response->header('X-Value', 'True');
}
}


Name
Age
Home Street
Home City
Home State
Home Zipcode
Home Country
Home Street
Home City
Home State
Home Zipcode
Home Country


I live in a j's podcast for Monday.
Most wonderful show is keeping up with the jones is welcome to episode one seventy of keeping up with the jones is this week we're actually having a lighter week before we get on to the lightness.
The airy fairy lightness that is to come.
Let's do a weekly catch up.
Okay.
The great national nightmare and debate is over.
The results are in.
It is pronounced apricot, not apricot.
At what percentage did that come in at?
Because I spoke to two people yesterday who said they didn't vote
because they thought I had secured apricot.
Okay.
Well, two people is not statistically valid number.
It was a landslide victory.
It was something like a hundred percent.
No, it was not.
It was not.
You said that.
You said it was 100% and then I went and checked and it was like 59 to 41.
And I was like, babe, that's not 100% and you said, well, I don't know when that happened.
Yeah.
Last time I looked before it came down because I forgot it's Instagram stories.
I thought I'd take a screenshot, but the last time I looked, it was a 60 40 split,
60% of people educated enough to know that apricots pronounced apricot.
The other 40% I don't know, hippies, but I'm so sorry.
But at least now you know, how do you pronounce it, baby?
I forgot all the deception run deep.
Deep.
And runs really deep.
Let's try doing that one next.
Is it that deception runs deep or the reception?
The reception runs deep.
Oh dear.
You were saying too late.
All right.
We're all messed up.
Yeah.
This week, yes, there's one item on my weekly catch up.
I'm trying not to jump to.
OK, so I'm trying to do procedure.
Really.
We started the week.
I was teaching on sexual wholeness in first year.
You were teaching on Sunship in second year.
Yep.
Matt Crowstone just killed it, knocked out of the park at M&A.
It was so good.
I laughed so hard.
I, we, he brought his friend Harvey.
Yes.
Our dear friend Harvey.
Yes.
I don't know how old Harvey is.
I don't know either.
But he's, he was certainly the oldest person at M&A.
Yeah, he's like 60s or 70s somewhere in there.
And I thought Matt killed him.
I thought Matt told the joke and I looked over just to see what Harvey would have thought.
And I thought, are we in trouble?
Like Harvey was doubled over.

This is great, but really, really bad.
But anyway, Matt just killed it.
- We're happy to record that Harvey is still alive.
- I'll put a link in the show notes.
It basically had all the elements that we want
with like meekness, wisdom, humor, anointing,
great storyteller.
- So good.
- So I'll put a link in the show notes.
But well done, Matt.
That was just a phenomenal job.
All right, all that is great.
I really enjoyed that week, but it pales
and didn't significant with the revelation
I had this week.
Do you know what I'm talking about?
- No, I don't think I do.
- We, Edgy and I went out to have some dinner
with our friends, Josh and Chelsea.
- We did, yeah.
- So we're at their house, we had a great meal,
we're just chatting, catching up,
having seen them in a while.
And as we're getting to ready to leave,
I'm just kind of wandering around their living room,
and I noticed that they have an intent to switch.
And I was like, "Ah, I didn't figure you guys
for video games and they're like, oh yeah, we really love Mario Kart.

And I was like, I want to play you Mario Kart because let's face
facts. It's not too many areas of life that I can excel compared to these guys.
Like they're uber fit.
They're super like outdoorsy.
They're like workout champs.
Yeah.
Like just and I'm thinking I can flex my Mario Kart muscles.
Yes.
So now here's the thing for context.
I'm a pretty good Mario Kart player.
I'm by pretty good.
I mean, I've finished every level that there is in there.
I've raced all the Nintendo staff, etc, etc.
I've got, you know, gold stars and everything.
I regular play online.
I regularly beat everybody I play.
So I'm exceptionally confident that I.

Not you, darling.
Thank you.
You're you're amazing.
Thank you.
You give me a good run for my money at 50cc.
I don't know what to do.
Thanks, darling.
So I'm fairly confident that this is going to be walking apart.
We can have a quick four rounds.
We can leave and I'll end on a high.
And so I've got.

Absolutely.
I'm I've completely forgotten Proverbs 16 verse 18 that pride goes before
destruction and shoddyness before fall, but seriously, these guys are like.
Crossfit junk.
I mean, there's no way they're good at a video game, right?
So we sit down and we begin playing.
And I'm like, dang, I like, I am struggling to keep up.
Now, there's a few asterisks and caveats we'll get to in a second, but credit
where credit is due.
Josh and Chelsea are amazing.
I don't just mean that they're like good players.

Oh, they absolutely did.
Yeah. Absolutely.
They're heavily invested.
I know this because there's people who play the game a lot.
Then there's people who've studied all the statistics of all the characters and
the cost benefit analysis of each of the vehicles, they knew all of that.
I'm like, who are you?
We drive to this and you probably need the that and maybe you should try that.
And I'm like, Oh my God.
No, in my defense, they hadn't unlocked all the vehicle parts.
So they didn't have my usual setup.
And Josh was kind enough to acknowledge that.

He used some sports analogy about baseball, which I didn't get at all.
But I was like, yes, yes, absolutely that.
It's me pitch hitting a square run touchdown.
That's exactly what's happening.
So he let me change vehicles and I, but again, I struggle to keep up because
good Lord, those people are are are skilled.
So now here's the caveat.
We were playing 150.
I spent all my time in 200 CC.
Yes.

But the fact I couldn't.
I mean, I went home bewildered.
I was like, I lost my powers.
the next morning like Samson, but somebody cut off my hair and I've lost my Nintendo
box morning. You must have mentioned it like three times before nine o'clock. Like I still
can't believe how good Josh and Chelsea were.
 They'll be good at that. I mean, they'll be good at half marathons
and triathlons and Iron Man. But, you know, I've got them.
But maybe, okay. Yeah, I'm kind of the man at Mario Kart. No, no, no. Although we did
play around with 200 before we left and you know I regained our family dignity and
I could see what we had to do.
I mean otherwise the Jones family name was going to go down the tube.
But the worrying thing is word on the street is they're now practicing at 200cc.
That is the word on the street.
She's scared to go back to their house for a rematch.
So we're just going to have to off them as friends.
No, I'm just going to play people who have less caliber Mario Kart, but I have worked
out that we can play online.
So I haven't sent them my credentials yet because I'm too scared to play.
I think I need to practice a little bit more.
Wow.
It's nice to see this side of you, darling.
What they, the humbled, not humble side.
It's, it's just nice because, uh, now you know how I feel.
You know, playing my 50 cc.
You're adorable, adorable.
All right.
That is our weekly catch up.
But wait, you forgot to mention our other Mario Kart news.
I don't know what other Mario Kart news is.
I prophesied using Mario Kart this morning.
- Oh my Lord, I thought the Lord was gonna return.

And I'm partially tuned out
because we're getting to the end of the service
and there was a lot of stuff going on this morning
that I was having a deal with
and I'm catching up on text messages,
trying to tell the pastors,
"This has happened, this has happened."
And Agee stands up and so she's given a prophetic word
and she says, "This is a bit of a weird example,
"so stay with me."
But it's like Mario Kart.
And I was like, "Wait."
- Wait, what?
- What now?
Like, Lord Jesus, thank you.
- Yeah.
- This prayer and fasting has worked out.
My wife, my wife is now floonin'.
And so you gave a prophetic word about Maricor,
which I really liked.
- Thanks.
- Yeah.
- I thought I would get a bigger reaction for me.
You just looked up.
(laughs)
Like in a shack.
- Yeah, I was in shock and trauma.
All right, now we're done with our weekly catch up.
- We are.
Oh, but I wanted to say one thing.
- Yes, go on.
- Okay.
My one thing is I wanted to give a shout out
to the girl who said hi to me at Whole Foods
in the parking lot.
Apparently you listened to the podcast,
I didn't catch your name
'cause we were yelling across the parking lot,
but thanks for saying hi.
- Okay, now we're done with the weekly catch up.
- Now we're done.
- I normally introduce the main topic for this week,
but I'm gonna let you enter the main topic for this week.
- Okay. - Go ahead.
- Okay, so this is a complete departure, basically,
from normally we pick a topic
and we have a conversation about it,
But you asked me to come up with the idea for tonight.
Yeah.
And I thought it would be kind of fun to talk about our favorite three things for
each season.
Now, and I said to you, what kind of seasons do you mean like a season of
breakthrough, a season of abundance, a season of lack?
And you said fall, winter, spring and summer.
And I was like, wait, what now?
You want us to talk about what?
So basically this is straight up fluff.
It's just talking about the things that we enjoy the most in each season just for fun.
Like as a get to know us thing.
OK, and you have three things you like about each season.
Well, I don't have them pre-programmed.
I just thought we would start to talk and they would flow.
I'm going to go on Wikipedia and find out other people three favorite.
That's cheating.
You have to come up with your own.
OK.
All right, well, then you're fully in control of the session.
So take it away.
Well, shall we start with fall since we're in fall?
Oh, sure.
OK, for fall, my first one would be the leaves turning color.
I love it.
It's beautiful.
Is it my turn?
Yes, you get to do one.
I like camping.
That's my second one.
You can't say camping.
I should have done this differently.
OK, go ahead.
Go ahead.
Yeah.
Well, camping in the fall was brilliant.
There was no bugs.
It's true.
It wasn't hot or cute.
Well, it's kind of humid, but it was just beautiful and I loved it.
And people were teasing me church this week, like, Oh, did you go camping this week?
I was like, no, and I'm kind of sad about it.
That's so amazing.
See, look, the Lord is doing miraculous things.
You're in a Mario car.
I mean, the camping.
I don't know.

He is on the move.
All right.
You're number two.
My number two was going to be camping, but it shall be.
Um, campfires.
Yeah, that's right. It's slightly different, but because we can also do campfires on our
back porch. Actually, should we be doing that on our back porch?
 So I have instructions and materials I need to get from Home Depot to make sure it's safe.
Really? So it's not safe the way we've been doing it.
Well, I don't, I mean, a, we haven't really had any fire, so it's fine so far.
Okay. Well, we've had two, I think. But yeah. All right, good.
My, my one is the light.
I really like, is it the length of the light?
Is it the color of the light, you know, with sun and stuff?
The sun and stuff.
I'm doing my best here.
I'm trying to engage.
I think that's the way I said my comfort.
The sun and stuff.
Yeah, baby, the light does come from the sun and stuff.
No, I mean, the light is a different angle or hue.
Yeah.
Yeah.
And fall, it's just, I love it.
Yeah.
That's what I love.
Yeah.
Um, I like all the drinks that you feel like you can't drink during the summer
because they're not healthy, but it's fall now and you're wearing big sweaters.
So you can drink pumpkin spice lattes and things like that.

That's right.
Did you even know what pumpkin spice was before Starbucks?
Did you ever crave pumpkin spice?
Anything?
Well, I mean, I've been drinking Starbucks for.
20 years or something. So it's hard to remember. But yes, I like pumpkin spice lattes.
You know what my last thing is? You're going to wish you'd said it.
Oh, okay. Go ahead.
The evenings in the fall.
Okay.
I like going outside in the evenings because there's a cool crisp sense to the air. And I like it.
I like that we could sit out on our deck. Even though it's dark.
Yeah.
And it's a little bit chilly, but it's something lovely, which we can do.
We can have a fire.
I'm going to go to this piece.
I love these kind of podcast next.
Winter next is winter.
I like turning on the fire.
I'd like to say like building a fire, but we have a fireplace that you turn on,
but I like running the fire.
It just makes me feel cozy.
I'm spotting a trend.
You might be in the cold months.
I like Christmas.
We started our family movie this week was elf.
Yeah.
The kids request.
yeah, Tia wanted to Santa Claus to.
Cause she's like, daddy, can we do family movie night?
I'm like, sure.
And then what do you want to watch?
She said, remember last year we got to the Santa Claus.
I was like, yeah, she said, there's a part two.
And I was like, well, it was mommy's bit last time and it traumatized you all
because you wanted to know what divorce was.
Yes.
So so Christmas.
So Christmas is yours, but not Pentatonix, but not.
Have you heard the new tour vault Christmas album?
It is amazing.
I mean, I knew that Brian could sing obviously, but his voice is so like it just really stands out on the album.
The Christmas album.
It's really good.
Decorating.
I like decorating.
Do you want to tell the people about this year's decorating?
Is my turn to decorate the Christmas tree.

Walk in the light.
But I'm coming to the light purchase this.
This is in the light.
No, what happened was.
last year was your turn to decorate the Christmas tree.
And so let's talk about the shame for your control cycle.
Why?
Because you have major control issues about Christmas decoring, true or false?
Yeah.
Right.
Which means every year since we've been married, you have decorated the Christmas
tree.
But you don't even like decorating the tree.
I love decorating the tree.
And I have all these little ornaments that I've gotten all over the world.
and they're really some of them are very fragile.
And you think I'm a hamfisted monkey with non-apposable digits,
who's just going to drop them?
No.
So where's the issue?
Because you were scheduled to decorate the tree this past year.
But I secured the in between the year by offering special papers.
So actually it's still my year.
This is we're back on track to be my year.
your years next year.
So we have recorded the next year, 2019.
Me and the kids get to decorate the Christmas tree.
Yep.
And any decorations we want.
Well, you can't just go buy a whole bunch of new decorations.
You don't get to stipulate me and the kids.
No, we're going to town red and green.
No, you can't do red and green.
And colored lights.
No.
The thing is you wouldn't ever do that because you have taste.
But nevertheless, we have a recorded that you're going to let me in the kids
decorate the tree next Christmas.
Next Christmas.
2019 people watch out.
It's going to look gorgeous.
Yeah.
All right.
I think we've pretty much done winter season.
Please tell them we have.
I can't remember, but sure.
All right.
Say we've done winter spring.
Is it my turn?
I'll go first.
Please.
I like the cherry trees when they're in blossom.
Yeah.
You drive down Cool Springs Boulevard.
and all the cherry trees are.
Yeah, or old hickory.
And I think every time that I see cherry trees in blossom, it reminds me of the faithfulness
of God.
How so?
Um, cause it's, it's like the first sign, like it, usually the winter or the, the warm
weather hasn't fully come yet.
It's still like just a little bit chilly, you know, but the blossoms come through and
I feel like it just reminds me like, Hey, the winter is over.
know, kind of you made it, not that we have anything. I mean, we have a house. It's not
like we're like making it through the winter outside or something like that. But it just,
it reminds me that that God is faithful, that seasons change and that new life comes.
So that's, that's my thought.
Oh, what happens in spring? I don't remember.
It gets warmer.
Yeah, but like I'm a product of advertising. What's the main events that happen in, in
spring?
Easter.
I mean, sure.
The death and resurrection of our Lord is important, but that's not why I was thinking.
Oh, like what is the Home Depot tell you to do in spring?
Um, start getting your garden ready.
Yeah, it's not that.
I don't know what I like about spring.
Is it like too early for me to wear flip flops?
Well, um, I have seen you wear flip flops in the spring.

Well, I do you know I tell people if they're going to come visit us to come in the spring
or the fall because I don't think I've seen Franklin and it's in its finer glory than
either in spring or in fall like in spring you know you got the rolling green hills of
Franklin it's just looks beautiful the again the light is beautiful yeah but it's not
killer hot yet you get these bright crisp days that remind me of the occasional summer
day in Scotland.
Yeah.
That's what spring feels like.
But yeah, flip flops.
That's my number one.
Your number two.
My number two would be camping.
Really?
We've never camped in spring.
I know, but I'm speaking prophetically.
Well, if we're speaking prophetically, you know what?
I love that spring is driving my Tesla model X.
I love it.
It's put the windows down.
I know, right.
Or the sunroof is gorgeous.
Number three.
It's just, I will, you'll like camping in the spring.
Oh, you love the Tesla.
It's beautiful, silent, and kids are going to love it.
Okay, number three in the spring would be,
I don't know, gosh, ran out of things in spring.
I've got it.
What?
Spring is when we begin to eat dinner out on patios again.
It is.
So again, you know.
Cool nights.
Cool night, late evenings out on a patio somewhere
enjoying good food with friends.
- Not too buggy.
- Yeah, beautiful.
- Yeah.
- Good job.
- Thanks.
Summer.
- Summer.
Swimming.
- Mm.
- I loved this summer taking the kids,
even just for like one hour trips to the pool.
Like, you know, whenever we could get there,
just going there and swimming with them and stuff
was so fun.
- Yeah, I'd go for that.
- Yeah.
- Air conditioning.
(laughs)
- Not camping.
-No, I just love air conditioning.
-Yes, you do.
-I love feeling a consistent temperature all the time.
-Mm-hmm.
-So that would be my summer number one.
-The summer number one would be air conditioning for you.
Summer number two would be, I think, all the barbecuing outside.
Like, do you know what I mean?
Just the flank steak and the burgers and just how it, all of a sudden, all the cooking
moves to really simple outside cooking with just nice vegetables.
It's basically just meat is what you're talking about.
Yeah, and vegetables, but yeah, but meat mostly meat mostly.
Yeah. My number two, vacation.
Yeah.
Summer is typically when we take our vacation.
It's true.
And I love going away and I look forward to it.
I start planning that in the spring.
I could make that spring number three.
There you go.
Starting to plan vacation.
Sorry, go ahead.
No, you're number three for summer.
Um, having a garden now.
This is what's confusing because in North America, a garden,
like a vegetable garden in place where you grow food where where I grew up a garden is your backyard is you're just your lawn
right yeah what nice garden you have we're talking about the grass anything in front of your house or behind your house I have to say I was very confused about that when I first started visiting the UK because I'd be like I don't see a garden
where's the vegetables? Yeah, but I didn't ask. But so that helps you.
My mom and dad's house, you know, we got both. They had a garden, American garden in the pack.
Yes. And a British garden in the front. Yeah. Yeah, for sure.
It was funny because I think I've always thought of my childhood home as having the garden that it did.
You know, my dad was into gardening hugely. Yeah, that would be the understatement at the center.
We had like five main lawns, our house was on a corner.
And so there was like these neatly manicured grass lawns
all taken care of, and then shrubs, and flowers,
and trees, and bushes, and it all was looked vibrant
and colorful, that was my whole memory.
And then in the back, my dad would grow strawberries,
and raspberries, and blackberries, and gooseberries,
and carrots, and cabbages, and plums.
- What is a gooseberry?
- That's not worth knowing about.
It's a sour, grumpy fruit.
Imagine rhubarb got in a fight with lemon and there was an accident on the street.
That is what gooseberry tastes like.
And you know, there'd be herbs as well or herbs.
Either one.
I just thought that that's all was, was like that.
But when we were going through all the photos of the house and we got to see them as a child,
I realized the garden that I knew that was just burned in my memory was the product of 10,
20, 30 years of steady nurture and care.
Wow.
And it gave me some perspective.
Like, you know, when I look at our garden or lawn, I'm like, uh, it's pretty basic.
Although this year we took it to task.
We've receded and aerated the lawn.
Yeah.
I think we need to do something about the rose bush and the maple.
What's it called?
A Japanese maple because I was looking at them and they're looking kind of sparse and
um, spindly.
And I'm wondering if they have to get trimmed.
I'll ask our friend and see if he can take care of that.
But anyway, my point was it just doesn't happen.
It's nurtured over time, which I'm sure everybody who gardens knows that and are like the Alan, but I'm learning.
Yeah.
Are we done?
I think that's it.
I did my three.
We didn't do your third.
Oh, summer blockbusters.
Like just brain candy.
Amazing big movie comes out.
I like that.
There's always one that comes out near your birthday, isn't it?
Yeah.
I mean, it's like every year there's something.
Pixar usually have something right around my birthday day or, you know, day after day before.
They must know you.
I know.
Oh, and iPhones.
Well, no, iPhones are get launched in the fall, which, by the way, iPhones get launched this week.
This is how much the Lord loves me.
This week?
Yeah.
This Friday, the new iPhone gets announced and the new Super Mario Odyssey game.
And that equates to the Lord loving you.
Yeah, on the same day, but there's also conference happening that day.
Right.
Trifecto of awesome.
Just incredible.
Speaking of said conference, this week is your last week to get tickets.
Yep.
We are.
Are there any tickets left?
We're about 80% capacity in the main room.
Oh, OK.
Good.
Good.
You could still get some.
you could still pre-order your tickets rather than paying the door. Historically, what happens is
the vast majority of tickets are purchased at the door, which is going to be interesting for
this year. - A couple of some this year, yeah.
- Because we're already nearing capacity. - Yeah.
- But get your tickets. We're also selling online streaming passes as well. If you go to
greycenter.us/heavendeclares, you can find out more information about that. I'm so looking
forward to seeing our friends come into town this week. We get to host guests. I think the Lord is
going to do something amazing this conference. I'm excited. I'm going to the conference for me.
I know we're hosting a conference for the region, but I am going there for Alan Jones. I'm like,
"Lord, speak to me. I feel like the Lord has got revelation for us." Very cool.
And I'm excited. Me too. So excited. All right. If you want the show notes for this episode,
we are going to manufacture something very clever for you for show notes. Go to Alan and AJ.
No pressure.
What am I going to do?
You can do it.
Just make everything we said into a poem.
Okay, you're on drugs.
Go to alanamaj.com/170.
And if you'd like to ask us a question, like Alisa did this week, she asked, "Which churches
in the St. Louis area has A.G. been visiting?"
Answer.
Southgate.
If you'd like to ask us a question, any question, go to alanamaj.com/ask and we'll do our best
answer your question on air. Also, I'm making an executive decision. I'm just forecasting
our level of energy next Sunday after having run the week we're about to run.
Yes. It is unlikely we are going to have time to record a podcast.
Super unlikely. Yes, that's correct. So next week there will be no new podcast,
but the following week we will pick up where we left off.
Possibly with special guests.


Red pepper ?
Why not green ?
What about yellow ?
And black ?
You say ? Orange ?
Previous Pepper
Next Pepper
On off


| Interface | Total Bytes | Total TCP | Total UDP | Total ICMP | Total Time | Time: Start | Time: End |
|---|
| Key | Interface | IP | Total Bytes |
|---|
IPTRAF Analyzer is a quick concept code to help me analyze network logs (iptraf/pcap) & monitor my systems in real time.
-- adarqui
Live Mode: Select "live: pcap" or "live: iptraf" to see the real time example
Manual Mode: Paste an iptraf log, pcap log (tcpdump -K -tt -qnn ..), or iptraf_parser.pl output into the textbox at the top & click "go"
Copy & paste these files to test:pcap iptraf
Use this parser for huge logs:parser.pl (example parser output)
How the parser works:
Dragging divs: You can drag divs to your liking. I prefer: charts (left,enabled), top talkers (upper right), general interface stats (below top talkers)
Testing the live pcap: hping3 --rand-source -c 1000 --fast <IP_ADDRESS> ... is pretty fun
Export: Click export to create a "text based output" of the parsed results
| Key | Interface | Protocol | Client IP | Client Port | Server IP | Server Port | Total Bytes | TX Cli to Serv | TX Serv to Cli | Total Time | Time: Start | Time: End | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|


You are ordering a Bali Box subscription for month(s) for a total price of .
Your payment was canceled.


Click on window to explode elements
Click to explode 1
Click to explode 2
Click to explode 3
Click to explode 4
Click to explode 5
Click to explode 6
Click to explode 7
Click to explode 8
Click to explode 9
Click to explode 10
Click to explode 11
Click to explode 12


Preparation time
30 mins to 1 hour
Cooking time
1 to 2 hours
Serves
Makes 1 20cm/8in pie
Dietary
The traditional lemon meringue pie is given a tropical twist with lime and coconut.

For the pastry, beat the butter in a mixing bowl, add the egg yolk and sift in the icing sugar. Mix well until combined then stir in the coconut flavouring. Sift in the flour and work together using a wooden spoon until you have a firm dough. Chill in the fridge for 30 minutes or in the freezer for 10 minutes.
Grease the flan tin with butter. Roll out the pastry on a lightly floured work surface. Gently lift the pastry into the tin and press it into the edges. Don’t worry if it falls apart; you can patch it up in the tin. Chill in the fridge for 30 minutes or in the freezer for 10 minutes.
Preheat the oven to 180C/160C Fan/Gas 4.
Line the pasty case with baking parchment and fill with baking beans or uncooked rice. Bake for 15 minutes, then remove the parchment and baking beans. Bake for a further 5 minutes. Brush the pastry with the beaten egg and return to the oven for 5 minutes. Set aside to cool in the tin. Trim the edge of the pastry.
Reduce the oven temperature to 140C/120C Fan/Gas 1.
For the filling, in a large bowl, combine the eggs, egg yolks, sugar, lime and lemon juice and zest. Using an electric hand whisk, beat for 2–3 minutes, until smooth and the sugar is fully incorporated. Add the cream and beat for another minute, until combined. Add a little green colouring, if using. Pour the filling into a saucepan and warm very gently (do not overheat or the eggs will scramble) stirring all the time, for 10–15 minutes, until thickened.
Pour the mixture into the prepared pastry case and bake for 10 minutes. Check if the filling is set (you want it to be just set). If not, keep checking every 5 minutes until there is a slight wobble in the middle. Remove from oven while you prepare the meringue.
Increase the oven temperature to 180C/160C Fan/Gas 4.
For the topping, put the egg whites and sugar in a large heatproof bowl set over a pan of barely simmering water. Gently whisk until the temperature of the egg mixture reaches 70C on a sugar thermometer. Remove from the heat and transfer to the bowl of a freestanding mixer fitted with a whisk attachment. Beat until cool, thick and glossy.
 Gently fold the desiccated coconut into the remainder (do not over mix as the meringue will collapse). Pile the coconut meringue into the pastry case and gently smooth the surface. Pipe swirls with the remaining meringue to decorate the top.
Bake the pie for 15 minutes, or until the meringue is crisp on the outside and is just starting to brown. Five minutes before the end of cooking, scatter some coconut flakes on top. Remove from oven and chill until ready to serve.


Former Cavalier set to play for Beermen
WHEN San Miguel returns to the court on Saturday, it is likely to parade a new import.
The Beermen are set to replace injured import Dez Wells with a former Cleveland Cavalier player John Holland in the PBA Governors' Cup.
Wells has yet to recover from an ankle injury that he sustained against the Meralco Bolts last October 27, and sat out when the Beermen played Blackwater Elite on Wednesday.
San Miguel claimed a hard-earned 99-96 win in overtime, but with Wells still not at 100%, the team decided to select a new import.
"Since sinabi ni Wells he can't play on Saturday, we got a backup. We can't afford na walang import for the second time," San Miguel coach Leo Austria told the league website.
The Beermen expect Holland to arrive on Friday, in time for SMB's next game against Rain or Shine on Saturday.
Holland briefly played for Cleveland in 2017-2018, and also had stints in the G-League. The 31-year-old last played in Puerto Rico before getting the call from SMB.
The Beermen, seeking a grand slam, have six wins against three losses.


Powered By Flink #
Apache Flink powers business-critical applications in many companies and enterprises around the globe. On this page, we present a few notable Flink users that run interesting use cases in production and link to resources that discuss their applications in more detail.
More Flink users are listed in the Powered by Flink directory in the project wiki. Please note that the list is not comprehensive. We only add users that explicitly ask to be listed.
If you would you like to be included on this page, please reach out to the Flink user mailing list and let us know.
| Alibaba, the world’s largest retailer, uses a fork of Flink called Blink to optimize search rankings in real time. Read more about Flink’s role at Alibaba |
Amazon Kinesis Data Analytics, a fully managed cloud service for stream processing, uses Apache Flink in part to power its Java application capability. | BetterCloud, a multi-SaaS management platform, uses Flink to surface near real-time intelligence from SaaS application activity. See BetterCloud at Flink Forward SF 2017 |
Bouygues Telecom is running 30 production applications powered by Flink and is processing 10 billion raw events per day. See Bouygues Telcom at Flink Forward 2016 |
| Capital One, a Fortune 500 financial services company, uses Flink for real-time activity monitoring and alerting. Learn about Capital One’s fraud detection use case |
Comcast, a global media and technology company, uses Flink for operationalizing machine learning models and near-real-time event stream processing. Learn about Flink at Comcast |
Criteo is the advertising platform for the open internet and uses Flink for real-time revenue monitoring and near-real-time event processing. Learn about Criteo’s Flink use case |
Didi Chuxing (“DiDi”), the world’s leading mobile transportation platform, uses Apache Flink for real-time monitoring, feature extraction, and ETL. Learn about Didi’s Flink use case |
| Drivetribe, a digital community founded by the former hosts of “Top Gear”, uses Flink for metrics and content recommendations. Read about Flink in the Drivetribe stack |
Ebay’s monitoring platform is powered by Flink and evaluates thousands of customizable alert rules on metrics and log streams. Learn more about Flink at Ebay |
Ericsson used Flink to build a real-time anomaly detector with machine learning over large infrastructures. Read a detailed overview on O’Reilly Ideas |
Gojek is a Super App: one app with over 20 services uses Flink to power their self-serve platform empowering data-driven decisions across functions. Read more on the Gojek engineering blog |
| Huawei is a leading global provider of ICT infrastructure and smart devices. Huawei Cloud provides Cloud Service based on Flink. Learn about how Flink powers Cloud Service |
King, the creators of Candy Crush Saga, uses Flink to provide data science teams a real-time analytics dashboard. Learn more about King’s Flink implementation |
Klaviyo leverages Apache Flink to scale its real-time analytics system that deduplicates and aggregates over a million events per second. Read about real-time analytics at Klaviyo |
Kuaishou, one of the leading short video sharing apps in China, uses Apache Flink to build a real-time monitoring platform for short videos and live streaming. Read about real-time monitoring at Kuaishou |
| Lyft uses Flink as processing engine for its streaming platform, for example to consistently generate features for machine learning. Read more about Streaming at Lyft |
MediaMath, a programmatic marketing company, uses Flink to power its real-time reporting infrastructure. See MediaMath at Flink Forward SF 2017 |
Mux, an analytics company for streaming video providers, uses Flink for real-time anomaly detection and alerting. Read more about how Mux is using Flink |
OPPO, one of the largest mobile phone manufacturers in China, build a real-time data warehouse with Flink to analyze the effects of operating activities and short-term interests of users. Read more about how OPPO is using Flink |
| Otto Group, the world’s second-largest online retailer, uses Flink for business intelligence stream processing. See Otto at Flink Forward 2016 |
OVH leverages Flink to develop streaming-oriented applications such as real-time Business Intelligence or alerting systems. Read more about how OVH is using Flink |
Pinterest runs thousands of experiments every day on a platform for real-time experiment analytics that is based on Apache Flink. Read more about real-time experiment analytics at Pinterest |
Razorpay, one of India’s largest payment gateways, built their in-house platform Mitra with Apache Flink to scale AI feature generation and model serving in real-time. Read more about data science with Flink at Razorpay |
| ResearchGate, a social network for scientists, uses Flink for network analysis and near-duplicate detection. See ResearchGate at Flink Forward 2016 |
SK telecom is South Korea’s largest wireless carrier and uses Flink for several applications including smart factory and mobility applications. Learn more about one of SK telecom’s use cases |
Telefónica NEXT’s TÜV-certified Data Anonymization Platform is powered by Flink. Read more about Telefónica NEXT |
Tencent, one of the largest Internet companies, built an in-house platform with Apache Flink to improve the efficiency of developing and operating real-time applications. Read more about Tencent’s platform. |
| Uber built their internal SQL-based, open-source streaming analytics platform AthenaX on Apache Flink. Read more on the Uber engineering blog |
Vip, one of the largest warehouse sale website for big brands in China, uses Flink to stream and ETL data into Apache Hive in real-time for data processing and analytics. Read more about Vip’s story. |
Xiaomi, one of the largest electronics companies in China, built a platform with Flink to improve the efficiency of developing and operating real-time applications and use it in real-time recommendations. Learn more about how Xiaomi is using Flink. |
Yelp utilizes Flink to power its data connectors ecosystem and stream processing infrastructure. Find out more watching a Flink Forward talk |
| Zalando, one of the largest e-commerce companies in Europe, uses Flink for real-time process monitoring and ETL. Read more on the Zalando Tech Blog |