[gecode-users] Reifying constraints without posting them
Christian Schulte
cschulte at kth.se
Mon Apr 29 21:22:52 CEST 2013
Hi,
Did you try the nvalues constraint? It sounds that this will do the trick
for you.
You might then be able to minimize/maximize based on the integer variable
that nvalues uses for conting.
I have to admit that I do not really understand what you mean by pruning: if
you prune away solutions, this is just a bug in your model, isn't it?
Best
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
> -----Original Message-----
> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On
> Behalf Of Tommaso Urli
> Sent: Monday, April 29, 2013 9:10 PM
> To: 'gecode user list'
> Subject: [gecode-users] Reifying constraints without posting them
>
> Hello,
> I'm trying to introduce the following constraint in my model: let x
be a set of
> variables (an IntVarArray) and y a proper subset (a slice) of them, I want
to know
> how many variables in y get values among a given set of values. Problem
is: I
> want to implement this as a "soft"
> constraint, i.e. I want to minimize/maximize the number of times this
condition
> is satisfied, but without actually posting the constraint.
> I have tried with reified membership constraints, but apart from
reification
> (that did exactly what I wanted it to do), they actually post propagators
and thus
> prune my search space. I have tried counting constraints as well, but none
of
> them matches the semantics I need, so I suspect that this kind of
constraint
> cannot simply be expressed, am I wrong?
>
> Thanks,
> Tommaso
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
More information about the users
mailing list


Quora uses the middle row to present you the latest stories of topics, questions and people you follow. It manages to do this is a very concise way without overwhelming the user with information. It uses the right row to then introduce you to people you may be interested in following based on you following them on twitter already.
StackOverflow uses it starting page to give what it calls "top questions". This the ones with the most votes, answers and views by fellow developers. These are calculated by I would say, a complicated sorting algorithm that keeps only the most relevant question at forefront. The right row is used to feature the hottest questions in stackexchange popular networks. Stackexchange is a growing network of individual communities, each dedicated to serving experts in a specific field.
Amazon has one of the powerful search engines in the business. Making search the site extremely fast, accurate, and intelligent. Amazon also goes through the trouble of creating a custom page for you. It has your name on it. It serves to list recommendations based on varies things, viewing history, reviewing, wish list, etc. It seems to get it right, most of the time. Its reviewing system is also the best I have seen making the site my goto to do research on products I'm interested in buying.


Migrating an existing Apicurio Registry deployment
This chapter explains how to migrate an existing Apicurio Registry deployment from version 1.3.x to version 2.x.
Migration from Apicurio Registry 1.3.x to 2.x
Apicurio Registry 2.x includes new features with breaking changes from the previous Apicurio Registry 1.3.x release. This section describes the major changes between Apicurio Registry 1.3.x and version 2.x.
Because of the breaking changes in 2.x, there is no automatic upgrade and a migration process is required. This involves moving the data in your existing registry to a new registry. You must also review your existing registry client applications and update their configuration to meet the new requirements.
When migrating to version 2.x, you must take the following major changes into account:
New data storage options
The existing registry data storage options in Apicurio Registry 1.3.x (streams
,jpa
, and infinispan
) have been replaced with new storage options in version 2.x (sql
and kafkasql
). These new storage options provide more robust, performant, and maintainable Apicurio Registry deployments.
The in-memory storage option (mem
) is also still available, but is not suitable for production workloads.
For details on how to deploy Apicurio Registry 2.x with your chosen storage option, see Installing Apicurio Registry storage on OpenShift.
New v2 REST API
Apicurio Registry 2.x includes a new REST API with support for artifact groups and improved long term maintainability. Apicurio Registry still supports the original registry v1 REST API and compatibility APIs, for example, Confluent and IBM schema registry APIs. Apicurio Registry now also implements the Schema Registry specification provided in the CNCF Cloud Events specification.
Refactored Java client libraries
-
The Apicurio Registry Java client classes are available in version 2.x in a different Maven module named
apicurio-registry-client
. -
The Kakfa client serializer and deserializer (SerDe) classes are available in version 2.x in three different Maven modules, one for each supported data format: Apache Avro, Protobuf, and JSON Schema. You can now use only the module you want without pulling in transitive dependencies that you are not concerned with.
-
For more details on the v2 REST API, see the Registry REST API documentation
Migrating Apicurio Registry data
Migrating data to Apicurio Registry 2.x requires exporting all data from your existing 1.3.x deployment and importing it into the new 2.x deployment. If you are using Apicurio Registry as a schema registry for Kafka applications, data migration is critical because each Kafka message carries the global identifier for the schema stored in Apicurio Registry. This identifier must be preserved during registry data migration.
Apicurio Registry 2.x provides an API to bulk import/export all data from your registry deployment, which guarantees that all identifiers are kept when importing data from your existing registry. The export API downloads a custom .zip
file containing all the information for your artifacts. The import API accepts this .zip
and loads all artifacts into the registry in a single batch.
Apicurio Registry 1.3.x does not provide an import/export API. However, version 2.x provides an export tool compatible with Apicurio Registry 1.3.x to export a .zip
, which you can import into your 2.x registry. This tool uses common existing APIs to export all content in the registry. However, it is less performant than the 2.x export API, and should only be used when exporting from a 1.3.x registry.
-
Running Apicurio Registry instances of the 1.3.x server you are exporting from and the 2.x server you are importing into.
-
Download the Apicurio Registry exportV1 tool from GitHub. This is a Java application that you can run on the command line.
-
Export all the data from Apicurio Registry 1.3.x using the
exportV1
tool. This generates aregistry-export.zip
file in your current directory:java -jar apicurio-registry-utils-exportV1-2.3.0.Final.jar http://old-registry.my-company.com/api
-
Import the
.zip
file into Apicurio Registry 2.x using the import API:curl -X POST "http://new-registry.my-company.com/apis/registry/v2/admin/import" \ -H "Accept: application/json" -H "Content-Type: application/zip" \ --data-binary @registry-export.zip
-
Check that all the artifacts have been imported into the new 2.x registry by running these commands and comparing the count field:
curl "http://old-registry.my-company.com/api/search/artifacts"
curl "http://new-registry.my-company.com/apis/registry/v2/search/artifacts"
-
For more details on the import/export REST API, see Managing Apicurio Registry content using the REST API
-
For more details on the export tool for migrating from version 1.x to 2.x, see the Apicurio Registry export utility for 1.x versions
Migrating Apicurio Registry client applications
You must review your existing Apicurio Registry client applications to ensure that the Maven dependencies and Java client configuration meet the new requirements for version 2.x. For example, this includes new Maven dependencies for the Apicurio Registry Java REST client libraries or Kafka client serializer/deserializer (Serdes) libraries. You must also update your Java application configuration with the new registry v2 API path.
-
Existing Apicurio Registry 1.3.x Java client application or Kafka client producer and consumer Java applications with SerDes
-
If you are using the Apicurio Registry Java REST client, you must change the Maven dependencies for the Apicurio Registry Java client libraries, which have been repackaged in version 2.x:
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-client</artifactId> <version>2.3.0.Final</version> </dependency>
-
In your Java client application, you must change your registry URL configuration, from pointing to the existing v1 API path to the new v2 path. For example:
public class ClientExample { private static final RegistryRestClient client; public static void main(String[] args) throws Exception { // Create a registry client String registryUrl = "https://new-registry.my-company.com/apis/registry/v2"; RegistryClient client = RegistryClientFactory.create(registryUrl); } }
You can find more details on the Java client in Managing Apicurio Registry content using a Java client.
-
If you are using the Apicurio Registry SerDes libraries, you must change the Maven dependencies, which have been repackaged in version 2.x. In Apicurio Registry 1.3.x, the SerDes libraries were all provided with only one Maven dependency:
<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-utils-serde</artifactId> <version>1.3.2.Final</version> </dependency>
In Apicurio Registry 2.x, the SerDes libraries have been split into three Maven dependencies, one for each supported data format:
avro
,protobuf
, andjson schema
, depending on your use cases:<dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-avro-serde</artifactId> <version>2.3.0.Final</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-protobuf-serde</artifactId> <version>2.3.0.Final</version> </dependency> <dependency> <groupId>io.apicurio</groupId> <artifactId>apicurio-registry-serdes-jsonschema-serde</artifactId> <version>2.3.0.Final</version> </dependency>
-
In your Kafka producer and consumer Java applications, you must change your registry URL configuration from pointing to the existing v1 API path to the new v2 path. For example:
Existing registry v1 API path:
props.putIfAbsent(AbstractKafkaSerDe.REGISTRY_URL_CONFIG_PARAM, "http://old-registry.my-company.com/api");
New registry v2 API path:
props.putIfAbsent(SerdeConfig.REGISTRY_URL, "http://new-registry.my-company.com/apis/registry/v2");
The refactored SerDes libraries also include other important changes to configuration properties. For more details on SerDes configuration, see Validating schemas using Kafka client serializers/deserializers in Java clients.
-
For detailed configuration examples, see the Apicurio Registry example applications.


Been Here Before?
If you're a returning user, please login below to access all the features of your account.
New to MemorizeMe?
If you're new to MemorizeMe, take a few seconds to create a profile below and get access to a fun and innovative way of learning something new!


Project 1
I built a simple website to collect the lessons learned throughout this Udacity Nanodegree.
Concepts Utilized:
- HTML & CSS
- Flexbox layout
- Git & Github
- Import javascript
I built a simple website to collect the lessons learned throughout this Udacity Nanodegree.
I built a fill-in-the-blank quiz machine that has multiple levels of difficulty.
I used python to generate an HTML page displaying movie posters and their respective trailers.
Used HTML, CSS, JS, and JQuery to develop a simple memory matching game.


* Microsoft office is a software package that offers new features for sharing data and documents, better-than-ever communication tools, internet/Intranet access and publishing capabilities.
* There are many ways to start Microsoft Word. The most common are the Win2K Start Menu or the Office shortcut bar.
* The basic components of the default Word screen are:
Title bar, Menu bar, Ruler bar, Status bar, Workspace, Taskbar, View buttons, Insertion point
* Word's file finding utility helps you to locate, list, sort, examine, open and print doc.uments on simple and complex criteria.
* Word has three kinds of Online help: Office Assistant, Topic-specific Help, Point and Shoot Help
* Word automatically wraps the text, eliminating the need to press the Enter key until you want to start a new paragraph.
* Select the Cut/copy option from the Edit menu to delete/copy text.
* Select the Paste option from the Edit menu to move the text from one point to another.
* Select the Change Case option from the Format menu to change the text case.


{%- comment -%} Use {% include tags/cloud.html %} for an HTML paragraph containing a sequence of space-separated HTML links, each scaled according to the number of uses. The scale range is from 100% to 200%. For max_size > 16, the scale is logarithmic. For 16 >= max_size > 4, it is approximately linear. For 4 >= max_size, it is approximately exponential. {%- for slug_6 in site_tag_slugs -%} {%- assign tagged = site_tags | where_exp: "item", "item[0] == slug_6" | first -%} {%- assign max_size = tagged.last.size | at_least: max_size -%} {%- endfor -%} {%- endcomment -%} {%- include tags/site_tag_slugs.html -%} {%- include tags/site_tags.html -%} {%- assign max_size = 0 -%} {%- for slug_6 in site_tag_slugs -%} {%- assign tagged_size = site_tags | where_exp: "item", "item[0] == slug_6" | first | last | size -%} {%- assign max_size = tagged_size | at_least: max_size -%} {%- endfor -%}
{%- for slug_6 in site_tag_slugs -%} {%- assign tagged_size = site_tags | where_exp: "item", "item[0] == slug_6" | first | last | size -%} {%- assign percent = tagged_size | times: 100 | divided_by: max_size -%} {%- if max_size <= 16 -%} {%- assign percent = percent | times: percent | divided_by: 100 -%} {%- endif -%} {%- if max_size <= 4 -%} {%- assign percent = percent | times: percent | divided_by: 100 -%} {%- endif -%} {%- include tags/font_size.html percent=percent -%} {%- include tags/tag_link.html tag=slug_6 font_size=font_size %} {% endfor -%}
{%- assign max_size = nil -%} {%- assign slug_uses_size = nil -%} {%- assign percent = nil -%} {%- assign tagged_size = nil -%} {%- assign font_size = nil -%}


Can you describe the use cases of the following in Javascript?
Sure! Just let me know if I miss any out. I'm still learning after all.
Parentheses ()
They can be used to group expressions: b = (1 + 2) * 3
.
They can be used to contain expressions: if (b > 5)
or while (b < 5)
.
They can also be used to contain parameters for a function: function(parameter)
or just function()
by itself.
Brackets []
Brackets are used to initialise and access arrays. They're also used in one of the two ways you can access objects.
If you had an array like Array = [1, "Fruit", true]
, you would access it using brackets.
Array[0] = 1
, Array[1] = "Fruit"
, Array[2] = true
The brackets themselves store the array position that you want to access. Remember that array positions start at 0 instead of 1!
If you have an object you're trying to access, brackets are used in bracket notation.
It's as simple as listing the object name and then the key you want to access in brackets: obj["objectKey"]
It might seem easier to use dot notation obj.objectKey
but bracket notation is super handy if you want to use a variable as the object's key name.
Braces {}
No, not like braces for your teeth!
Braces in Javascript are used for defining where a function starts and ends. Simple as that.
if (1 < 2) {
console.log("2 is bigger than 1");
}
Single Quotes ' '
and Double Quotes " "
I've put these together because as simple as it seems, this one can get a bit tricky.
For the most part, single and double quotes can be used interchangably
var string = "Words";
is just as valid as var string = 'Words';
You can also be used to do quotes within a string literal as such:
var string =
"She said 'It's a quote within a quote'"
and inversely
var string =
'She said "It's a quote within a quote"'
Really, it's personal preference but if you tend to use apostrophes a lot in your strings, double quote are your friend.
Be careful though because if you're doing JSON at all, you MUST use double quotes!


A few of examples of
https://github.com/IftachSadeh/paper-range-slider
Default paper-range-slider
Minimal and maximal value-difference
Some styling
Always show pins
Allow tapping within the selected range to modify the selected range
Various combinations of tapping behaviour, set pragmatically
Revert to a single slider


The page you requested could not be found.
Take me home


College student, 20, dies in a fall at upstate New York park
by Associated PressKINGSTON, N.Y. (AP) — Police say a 20-year-old college student has died after falling 150 feet from a cliff in an upstate New York park.
Donald Christian, president of the State University of New York at New Paltz, identified the student Tuesday as Katherine Vollmer of Rochester. He said she was a visual arts major who transferred to New Paltz this fall from Monroe Community College.
Police say Vollmer was hiking with a group exploring old cement caves and trails in Kingston’s Hasbrouck Park Monday evening when the group got lost in the dark. Police say Vollmer slipped at the edge of a cliff and landed in an area that could only be accessed by a technical rope team.
The city fire department’s rope team recovered her body Tuesday morning.


20 December 2002
Disease Outbreak Reported
Cases of acute respiratory syndrome continue to be reported in the Democratic Republic of the Congo. By November 22, an Influenza-like illness was reported in Djolu, Bosobolo, Karawa and Genema health areas in Equateur Province, with Bosobolo being the most affected area.
Six nasopharyngeal swabs taken from patients with influenza-like illness in Bosobolo after 12 December 2002 have been tested at the Institute Pasteur, Paris a partner in the Global Outbreak Alert and Response Network. Influenza A/Panama/2007/99(H3N2)-like viruses were isolated from four of them. A/Panama/2007/99, is the representative strain of A/H3N2 currently circulating world wide and closely related to the vaccine strain. Further genetic identification of the virus is underway.
WHO and Médecins sans Frontières continue to assist the Ministry of Health with technical support and medicines.


Modal/Banner on Page Load
Refresh this Page
Winter Sale!
Upto
50%
Off!
10th - 31st
December
Shop Now


FlexibleInputStackBar
public final class FlexibleInputStackBar : UIView
Undocumented
-
Undocumented
See moreDeclaration
Swift
public struct Configuration
-
Undocumented
Declaration
Swift
public var configuration: FlexibleInputStackBar.Configuration { get set }
-
Undocumented
Declaration
Swift
public convenience init(height: Double)
-
Undocumented
Declaration
Swift
public required init?(coder aDecoder: NSCoder)
-
Undocumented
Declaration
Swift
public func addArrangedSubviewToRight(_ view: UIView)
-
Undocumented
Declaration
Swift
public func addArrangedSubviewToLeft(_ view: UIView)


--- # This file is licensed under the MIT License (MIT) available on # http://opensource.org/licenses/MIT. layout: sidebar id: press dialogs: materialvideo: "Videos" materialvideoformat: "More formats and languages" materialvideoyoutube: "Video on Youtube" materialvideomore: "More videos" materialquote: "Quotes" materialquotemore: "Show more quotes..." material_even_more_quotes: "For even more quotes about Bitcoin, please see WikiQuote." material_source: "source" quotesatoshi: "With e-currency based on cryptographic proof, without the need to trust a third party middleman, money can be secure and transactions effortless." quotedankaminsky: "Entire classes of bugs are missing." quotechrisdixon: "There are 3 eras of currency: Commodity based, politically based, and now, math based." quotejeremyliew: "The potential for disruption is enormous." quotewencescasares: "Right now Bitcoin feels like the Internet before the browser." quotetylerwinklevoss: "We have elected to put our money and faith in a mathematical framework that is free of politics and human error." quotegavinandresen: "You can basically put a bank in your pocket... That's pretty amazing." quotenavalravikant: "All the things that gold does, Bitcoin kind of does better." quotebrianforde: > Digital currencies have immense potential to improve human welfare by strengthening the capacity of governments to deliver more responsive services and secure the rights of their citizens to property, identity and increased financial inclusion. quoteandyskelton: "PayPal alone blocks access from over 60 countries ... Whatever the reason, we don’t think an individual blogger from Haiti, Ethiopia, or Kenya should have diminished access to the blogosphere because of payment issues they can’t control." quotetuurdemeester: "The Babyboomers gave us the personal computer, Generation X gave us the Internet, and now Generation Y is building a new financial paradigm." quoterichardbrown: "Had you asked me five years ago, I would just say it was impossible. Bitcoin and cryptocurrencies solved this problem of coming to a consensus globally where you don't trust anybody else." quotefredwilson: "We believe that Bitcoin represents something fundamental and powerful ... It reminds us of SMTP, HTTP, RSS, and BitTorrent in its architecture and openness." quotejohndonohoe: "[Digital currency is going to be] a very powerful thing." quotefrancoisrvelde: "It represents a remarkable conceptual and technical achievement, which may well be used by existing financial institutions (which could issue their own bitcoins) or even by governments themselves." ---
{% translate volunteernonprofit %}


Last updated: {{today}}
maybe a tab here
Cases
Deaths
recoveries
{{cases}}
{{deaths}}
{{recoveries}}
+ {{dailyCases}}
+ {{dailyDeaths}}
+ {{dailyRecoveries}}


Andre Media
Specs
Products
Contact
Laptop of the millenium
The new 14-inch frameless display offer a 4K display with a touchscreen.
14 inch
Add To Cart


Some PowerShell scripts have been added to your project to configure and launch your worker. These may be edited freely to customize your deployment.
To change the version of Python your web role should run with, set the
PYTHON
property in the ServiceDefinition.csdef
file in your cloud project. See ConfigureCloudService.ps1
for more details.
To install packages using pip, update the requirements.txt
file in the root directory of your project. The PowerShell script will
install packages listed in it on deployment.
To set PYTHONPATH
(or equivalent) before running the
web service, add the environment variable to your
web.config
file.
If your web role does not behave correctly after deployment, check the following:
Your Python project includes a bin\ folder with (at least):
ConfigureCloudService.ps1
ps.cmd
requirements.txt
file listing all dependencies.Enable Remote Desktop on your Cloud Service and investigate the log files.
Logs for ConfigureCloudService.ps1 are stored in the following path on the machine instance:
C:\Resources\Directory\%RoleId%.DiagnosticStore\LogFiles
Logs for your web service can be specified in your web.config
file:
WSGI_LOG
app setting controls logs for FastCGI-based sitesstdoutLogFile
attribute controls logs for HTTP Platform-based sitesThis readme file may be deleted when you no longer need it.


Bond between photographer Joel Meyerowitz and daughter captured in photos
by Sandy Kenyon, Dennis HoganNEW YORK (WABC) -- The bond between father and daughter was obvious from the beginning, reflected not just in snapshots but also in a body of work by one of the world's great photographers, Joel Meyerowitz.
His daughter, Ariel Meyerowitz, is an adviser who counsels art collectors on what to buy at galleries like Sikkema Jenkins in Chelsea.
We talked about his new book, Provincetown, and how their unique collaboration brought them closer.


--- title: [% Create new virtual account %] tag: create ---
[% Thank you for signing up! Please check your email to retrieve the verification token. %]
[% Please submit a valid verification token. %]
[% You should enter between 6-25 characters. %]
[% Password should have lower and uppercase letters with numbers. %]
[% The two passwords that you entered do not match. %]


The Dbxref Library Plugin allows users to keep a database of frequently used dbxrefs to save the effort of typing long or obscure dbxrefs each time they are needed.
To use a dbxref from the library, select the dbxref from the list. Drag the dbxref to any dbxref list in the text editor or press the "Use dbxref" or "Use as def dbxref" button. Drag and drop must be used to assign a Dbxref Library dbxref to a synonym.
The easiest way to add dbxrefs to the library is to drag them from any dbxref list in the text editor onto the Dbxref Library.
To add new dbxrefs, or to remove items from the list, press the "Configure dbxrefs" button. The Dbxref Library configuration window will appear:
This window contains a dbxref editor list. This list acts like any other dbxref editor list. See Text Editing for more information. Press "Save configuration" to save your changes.
Dbxref libraries can be saved to an external file. Dbxref lists can be imported into other installations of OBO-Edit.
To export your dbxref list to a file, press the "Export dbxrefs" button. A file browser window will appear where a save file can be specified.
To import a dbxref list from a file, press the "Import dbxrefs" button. A file browser window will appear where a file can be chosen off the disk. Beware! The imported dbxrefs will replace the existing dbxref library.


User Profile
First Name:
Last Name:
Email:
Contact Number:
Password:
Reset Password
Save
Log out
Cancel


---
title: Services
layout: full_page
permalink: /services/
solutions:
- greenfield-product-development
- project-rescue
- custom-software-development
---
{% include services/header.html %}
{% include services/capabilities.html %}
{% include services/solutions.html %}
{% include shared/cta_to_hire_us.html %}


--- layout: post title: DJ set date: '2016-10-11T00:30:28+02:00' categories: - Storyboards - Rattrapage picture_url: https://film-Storyboards.tumblr.com/post/151647194287 ---


R3
Transcript By: Bryan Bishop
Category: Conference
Distributed Ledger Group
R3
Kathleen Breitman
I work at R3. It manages the distributed ledger group, of 42 banks interested in using blockchain or distributed ledger tech. People wonder when I tell them that I work for a consortium that wants to use electronic ledgers. What does that have to do with capital markets?
Ledgers can track transactions. Typically in a capital market context, this responsibility falls to the backoffice. After a trade, you finalize it and actually transfer value. In te case of trading equities, this can take up to three days. There’s also balance sheet risk. It is hard to trade money if you are not sure if you have that money. Thta makes it difficult to finalize trades and what not.
What’s kind of driving this is that most of the technology in the back office is about as old as I am. And there’s many reasons for this, I think Alex brushed over this. There have been many different efforts. It’s hard to coordinate a group of actors to instate a new technology. It costs hundreds of millions of dollars to maintain these existing systems which does not offer a large amount of efficiency anyway.
So at R3 we have united 42 banks who said we are really interested in improving these processes which have been stuck in 1980s or 1990s tech. What we want to do is find a better way to implement tech. This happened to be the case and sales pitch at a time when blockchain was hitting a new found popularity. What I find now is that blockchain is a stone soup for capital market applications. If you think you know your collateral management process is archaic because it’s done in a spreadsheet on someone’s computer, yeah sure blockchain can change that.
So we are thinking about systematizing and creating a global ledger to bare the costs of these transactions. That’s what our financial grade ledger is. That’s what we’re doing. We are also doing product development. How do we create a new digitization standard that reflects the times rather than 1980s or 1990s when most of the backoffice processes were made?
How do we register and creat eauthority around these transactions in a 21st century way? Finally our approach is centered around a lab. There are many solutions in the space. We are building our own solution. We are trying to extract value from other vendors and their insights from trying to operationalize this. Last week we announced we united 40 of our 42 banks among 5 different cloud platform in our lab. From a tech perspective this was not remarkable, but I think this issue is as much a political issue as it is a tech issue.
Our consortium model is to facilitate adoption by a network effect here.
At Bitcoin conferences and Bitcoin talks I often here what I might see on reddit which is that R3 is trying to do something bad to Bitcoin. Uh, this is in particular not the case. We don’t have an official view as a company. It is the case that the solution does not use Bitcoin’s code necessarily. Many design coices in Bitcoin are tradeoffs motivated by a threat model. It’s a censorship-resistant cryptocurrency and many of the design choices that have led to the success of bitcoin are not suitable for capital markets, where we want to be able to punish people if they do break the law.
Blockchain has been a catch-all for people trying to think outside the box. This gets a little tension in front-office processes like trading and whatnot. Rarely do we see people thinking about how you look at risk comprehensively by using one distributed ledger. How do you have multiple datasets and actually auditing them in a dynamic fashion?
Bitcoin is a way to think outside the box and push the boundaries. We do not rely on Bitcoin’s code.
Q: Thank you for the presentation. The 42 banks, are any of them Chinese banks?
A: No.
((laughter))
Q: Is there any intention for R3 to address consumer paymetns?
A: Right now, what we’re trying to tackle is capital markets. There are many parallels to what we see in the payment space right now. The type of adoption schemes that we could implement with capital markets. Ultimately this will benefit the consumer, it will put a lot of pressure on the sell side, we will see a new way to look at finance. It’s Bitcoin-inspired but we’re not imitating Bitcoin.
Q: One of the biggest things attracting people to Bitcoin is decentralized. Why would it make sense to centralize blockchain?
A: You mean for private use cases? If we want to reconcile internal records… that’s a sort of false application of distributed ledgers. Whta people tend to not appreciate if they don’t work in a bank, I come from consulting for banks, you might think that these are machines that are finely oiled and stuff, but they have lots of databases that need reconciliation. When they say internal databases, they mean a construction database, you want the guy sitting in the department over from you who looks at your expenses, to be able to say hey that’s weird why didn’t that transaction clear. To have a more aduitable ….
Q: You have 42 banks in the consortium. People don’t want to see other transactions. Zerocash? Confidential transactions?
A: Within groups in a bank, you can’t see what they are doing, for regulatory reasons. At R3, our architecture group which is trying to build this financial-grade ledger which will underpin everything. We have three main concerns. Scalability, privacy and smart contracts business automation because you can’t get to these numbers without automation.
Q: R3 is a part of hyperledger. How?
A: We are not focused on syndicated loans. Use cases are something we are dealing with on an interest by interest basis for each bank. For the hyperledger project, we represent our members' interest. There are 5 donated code bases donated to the hyperledger project. It will be an experiment to see which one serves the best uses of our members. It’s open-ended.
Q: My question is about privacy. What sorts of transparency and auditability do banks really want? How do you plan to enforce that? What about permissioned access and revoking permissions?
A: This will fault to our product team which will be more of a case by case basis. Bilateral transaction between two parties.


Picked a few tomatoes. Will be glad when the real harvest is on. 🍅🍅🍅
8/21/2015, 7:16:51 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Picked a few tomatoes. Will be glad when the real harvest is on. 🍅🍅🍅
8/21/2015, 7:16:51 PM
Favs: 0
Retweets: 0
link


|
Games Task Scheduler (GTS)
A multi-processor scheduling framework for games engines
|
Clone the repository.
The paths below are relative to the root location where GTS was cloned.
| Files | Description |
|---|---|
| source/gts/include/ | Public header files. |
| File | Description |
|---|---|
| _build/gts_malloc/<vs*>/<compiler_flavor>/<build_flavor>/gts_malloc_static.lib | GTS Malloc static library |
Refer to the Microsoft Visual Studio documentation on linking the application using MSVS solutions.
| File | Description |
|---|---|
| _build/gts_malloc/gmake/<build_flavor>/gts_malloc.a | GTS Malloc static library |
| File | Description |
|---|---|
| _build/gts_malloc/<vs*>/<compiler_flavor>/<build_flavor>/gts_malloc_shared.lib | GTS Malloc import library |
| _build/gts_malloc/<vs*>/<compiler_flavor>/<build_flavor>/gts_malloc_shared.dll | GTS Malloc shared libaray |
| _build/gts_malloc/<vs*>/<compiler_flavor>/<build_flavor>/gts_malloc_redirect.lib | GTS Malloc redirection import library |
| _build/gts_malloc/<vs*>/<compiler_flavor>/<build_flavor>/gts_malloc_redirect.dll | GTS Malloc redirection shared library |
Refer to the Microsoft Visual Studio documentation on linking the application using MSVS solutions.
| File | Description |
|---|---|
| _build/gts_malloc/gmake/<build_flavor>/gts_malloc_shared.so | GTS Malloc shared libaray |
Statically link gts_malloc. Include GtsMallocCOverride.h in each translation unit that will override malloc.
Dynamically link gts_malloc and gts_malloc_redirect. gts_malloc_redirect will automatically redirect calls to malloc.
Preload gts_malloc:
To further override new/delete, include GtsMallocCppOverride.h.
GTS Malloc supports the following build-time options.
| Option | Supported values (defaults in bold) | Description |
|---|---|---|
| GTS_ENABLE_ASSERTS | not defined, defined | Enables asserts in NDEBUG builds. |
| GTS_ENABLE_INTERNAL_ASSERTS | not defined, defined | Enables internal asserts in NDEBUG builds. |
| GTS_TRACE_CONCURRENT_USE_LOGGER | 0, 1 | Enables tracing with the ConcurrentLogger. |
| GTS_TRACE_USE_TRACY | 0, 1 | Enables tracing with the Tracy. |
| GTS_TRACE_USE_RAD_TELEMETRY | 0, 1 | Enables tracing with the RAD Telemetry. not tested |
| GTS_TRACE_USE_ITT | 0, 1 | Enables tracing with Intel's ITT. |
| GTS_ENABLE_COUNTER | not defined, defined | Enables statistics counters. |
| GTS_HAS_CUSTOM_CPU_INTRINSICS_WRAPPERS | not defined, defined | Indicates that the CPU intrinsic wrappers will be user provided in user_config.h. |
| GTS_HAS_CUSTOM_OS_MEMORY_WRAPPERS | not defined, defined | Indicates that the OS memory wrappers will be user provided in user_config.h. |
| GTS_HAS_CUSTOM_THREAD_WRAPPERS | not defined, defined | Indicates that the OS thread wrappers will be user provided in user_config.h. |
| GTS_HAS_CUSTOM_EVENT_WRAPPERS | not defined, defined | Indicates that the OS event wrappers will be user provided in user_config.h. |
| GTS_HAS_CUSTOM_ATOMICS_WRAPPERS | not defined, defined | Indicates that the atomics wrappers will be user provided in user_config.h. |
| GTS_HAS_CUSTOM_ASSERT_WRAPPER | not defined, defined | Indicates that assert handling will be user provided in user_config.h. |
| GTS_HAS_CUSTOM_TRACE_WRAPPER | not defined, defined | Indicates that the trace wrappers will be user provided in user_config.h. |
Tracing overrides have the folowing precedence ordering:
See Tracing (TBD) for details.
If the user defines any of the GTS_HAS_CUSTOM_*; they must implement the corresponding macro in their user_config.h.
See Platform Replacement for details.


Query\QueryParser
Utility Class to parse sql clauses for properly escaping identifiers
Synopsis
class QueryParser
{
- // members
- public array $matches = ;
- // methods
- public void __construct()
- public array parseJoin()
- public string compileJoin()
Violations
PHPMessDetector
| Line | Rule | Message |
|---|---|---|
| 60 | ShortVariable | Avoid variables with short names like $db. Configured minimum length is 3. |
Members
public
- $matches
—
array
Regex matches
Methods
public
- __construct() — Constructor/entry point into parser
- compileJoin() — Compiles a join condition after parsing
- parseJoin() — Parser method for setting the parse string


Pitch
If you have ever tried to organize a potluck through text messages, online to-do lists or spreadsheets you get why this app is important. In the world of social gatherings and potlucks the "Potluck Planner" is king. This is your place for all things pot luck.
Product Canvas
Proposal
What problem does your app solve?
Client wants to have an application that allows the user to login and manage potlucks.
Be as specific as possible; how does your app solve the problem?
This app will allow:
- The user to login
- Manage their own potluck event
- Invite friends to attend the potluck event
- Adjust dates, location, and times of their own events
- Has a list feature to add food items
- Guests should be able to confirm they are going to the event
- Guests should be able to select items to bring.
Planning
Development Back End
Models
- User
- Event
- Food
- Guests
Endpoints
User Endpoints
- Sign Up
- Login
- Update User
- Delete User
Event Endpoints
Get
- Get All Events - Simple
- Get All Events - Detailed
- Get Event
- Get Guests by Event
- Get all Guests
- Get Guest by ID
- Get Food Needed for Event
- Get Guest Bringing Item
- Get Food
- Get Food by ID
- Get Categories
- Get Category
Add
- Add Event
- Add Guest
- Add Guest to an Event
- Add Food Needed for Event
- Add Guest Bringing Item
- Add Food
- Add Category
Update
- Update Event
- Update Guest
- Update Food Needed for Event
- Update Guest Bringing Item
- Update Food
- Update Category
Delete
- Delete Event
- Add Guest
- Remove Guest from an Event
- Remove Food Needed for Event
- Delete Food
- Delete Category
Database Structure
- User
- Groups
- Event
- Food
- Categories
- Guests
- Guests/Events
- Food/Events
- Food/Guests
Click on the Header below to close a section.
- changed "attending" in the events model to "RVSP"
- changed locations in the events model from linking to the locations table to a string.
- Added endpoint - GET all events the user created -> "Get All Events - Detailed"
- Enpdoints active for Food, Categories, and Guests - get, add, update, and delete
- Get Enpdoints active for: `Get Food Needed for Event`, `Get Guest Bringing Item`
- Add Enpdoints active for: `Add Guest to an Event`, `Add Food Needed for Event`, `Add Guest Bringing Item`
- Delete Enpdoints active for: `Remove Guest from an Event` and `Remove Food Needed for Event`
- Update Enpdoints active for: `Update Food Needed for Event`
User Model
{
"userid": 1,
"username": "user",
"password": "examplepass",
"firstname": "Johnathan",
"lastname": "Doe",
"preferredname": "John",
"email"<EMAIL_ADDRESS>"groupname": "Developers"
}
Group Model
{
"groupid": 1,
"groupname": "Developers",
"description": "Description of the group"
}
Event Model
This is what returns on a individual event request.
{
"eventid": 1,
"eventname": "John's First Potluck",
"description": "Birthday Party Potluck for Jane.",
"eventdate": "8-23-2019",
"eventtime": "6:00 PM",
"location": "John's Backyard",
"foods": [
{
"foodname": "Hamburgers",
"quantity": 24,
"description": "hamburger meat",
"category": "meat",
"vegetarian" : false,
"vegan" : false,
"gutenfree" : null,
"bringing": [
{
"guestname": "guest1", // this is marked as bringing
"quantity": 12 // qty guest plans to bring
},
{
"guestname": "guest2", // this is marked as bringing
"quantity": 12 // qty guest plans to bring
},
]
},
{
"foodname": "Hamburger Buns",
"quantity": 24,
"description": null,
"category": "bread",
"vegetarian" : true,
"vegan" : null,
"gutenfree" : false,
"bringing": null // if null no one is selected as bringing yet
},
],
"guests": [ // array of guests
{
"guestname": "Jane",
"guestemail"<EMAIL_ADDRESS>"RSVP": "going"
},
{
"guestname": "Jack",
"guestemail"<EMAIL_ADDRESS>"RSVP": "not going"
},
{
"guestname": "Jill",
"guestemail"<EMAIL_ADDRESS>"RSVP": null
}
]
}
Food Model
{
"foodid": 1,
"foodname": "Hamburger Buns",
"description": null,
"categoryid": 1,
"vegetarian" : true,
"vegan" : null,
"gutenfree" : false,
}
Categories Model
{
"category_id": 1,
"category_name": "bread",
"category_description": "breads made from either flour, oats, rye, etc"
}
Guests Model
{
"guest_id": 1,
"guestname": "guest1",
"guestemail"<EMAIL_ADDRESS>"user_id": null
}
User Endpoints - Signup
Endpoint: `/api/auth/register`
Type: `POST`
Description:
Sign up a new user
Expected Input:
// username and email must be unique
// username, password, and email are required
"username": "testuser",
"password": "password",
"email"<EMAIL_ADDRESS>"firstname": "Johnathan",
"lastname": "Doe",
"preferredname": "John",
"group_id": null
Sample Request:
Expected Return:
Expected Return if Fails:
User Endpoints - Login
Endpoint: `/api/auth/login`
Type: `POST`
Description:
Gets authentication token for user with given credentials
Expected Input:
"username": "SomeUser",
"password": "TheirPassword"
Sample Request:
const body = {
"username": "SomeUser",
"password": "TheirPassword"
};
axios.post(`${BASE_URL}/api/auth/login`, body);
Expected Return:
status = 200
{
message: `Welcome SomeUser!`,
token
}
Expected Return if Fails:
status = 401
{ message: 'Invalid Request. Please check the username and password submitted.' }
TODO - this is not active yet
User Endpoints - Update User
Endpoint: `/api/auth/user/{id}`
Type: `PUT`
Description:
Update user with given id
Expected Input:
{
"username": "testuser",
"password": "password",
"email"<EMAIL_ADDRESS>"firstname": "Johnathan",
"lastname": "Doe",
"preferredname": "John",
"group_id": null
}
Sample Request:
Expected Return:
Expected Return if Fails:
TODO - this is not active yet
User Endpoints - Delete User
Endpoint: `/api/auth/user/{id}`
Type: `DELETE`
Description:
Delete user with given id
Expected Input:
{
"id": 1
}
Sample Request:
Expected Return:
Expected Return if Fails:
Event Endpoints - Get All Events - Simple
Endpoint: `/api/events/`
Type: `GET`
Description:
Get a list of all event objects - simple return
Sample Request:
Expected Return:
[
{
"id": 1,
"eventname": "John's First Potluck",
"description": "Birthday Party Potluck for Jane.",
"eventdate": "8-23-2019",
"eventtime": "6:00 PM",
"location": "John's Backyard",
"user_id": 2
}
]
Expected Return if Fails:
status: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get All Events - Detailed
Endpoint: `/api/events/:username/all`
Type: `GET`
Description:
Get a list of all event objects -detailed return
This endpoint should return detailed event information for each event,
limited to only the user's events based on the username supplied in the endpoint.
Sample Request:
Expected Return: for username = john
[
{
"id": 1,
"eventname": "John's First Potluck",
"description": "Birthday Party Potluck for Jane.",
"eventdate": "8-23-2019",
"eventtime": "6:00 PM",
"location": "John's Backyard",
"username": "john",
"guests": [
{
"guestname": "Jane",
"guestemail"<EMAIL_ADDRESS>"RSVP": "Yes"
},
{
"guestname": "Jack",
"guestemail"<EMAIL_ADDRESS>"RSVP": "No"
},
{
"guestname": "Jill",
"guestemail"<EMAIL_ADDRESS>"RSVP": null
}
]
}
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get Event
Endpoint: `/api/events/{id}`
Type: `GET`
Description:
Get detailed information about an event
Expected Input:
{ id }
Sample Request:
Expected Return:
{
"eventname": "John's First Potluck",
"description": "Birthday Party Potluck for Jane.",
"eventdate": "8-23-2019",
"eventtime": "6:00 PM",
"location": "John's Backyard",
"username": "john",
"food": [
{
"id": 1,
"foodname": "Hamburgers",
"food_needed_id": 1,
"quantity_needed": 24,
"description": "hamburger meat",
"category": "meat",
"vegetarian": "0",
"vegan": "0",
"gutenfree": null,
"bringing": [
{
"guestname": "Jill",
"quantity": 12
},
{
"guestname": "Jack",
"quantity": 12
}
]
},
{
"id": 2,
"foodname": "Hamburger Buns",
"food_needed_id": 2,
"quantity_needed": 24,
"description": null,
"category": "bread",
"vegetarian": "1",
"vegan": null,
"gutenfree": "0",
"bringing": []
}
],
"guests": [
{
"guestname": "Jane",
"guestemail"<EMAIL_ADDRESS>},
{
"guestname": "Jack",
"guestemail"<EMAIL_ADDRESS>},
{
"guestname": "Jill",
"guestemail"<EMAIL_ADDRESS>}
]
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get Guests by Event
Endpoint: `/api/events/{id}/guests`
Type: `GET`
Description:
Get a list of guests for an event
Expected Input:
{ id }
Sample Request:
Expected Return:
[
{
"guestname": "Jane",
"guestemail"<EMAIL_ADDRESS>},
{
"guestname": "Jack",
"guestemail"<EMAIL_ADDRESS>},
{
"guestname": "Jill",
"guestemail"<EMAIL_ADDRESS>}
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get guests.' }
Event Endpoints - Get All Guests
Endpoint: `/api/guests/`
Type: `GET`
Description:
Get a list of all guests
Expected Input:
Sample Request:
Expected Return:
[
{
"guestname": "Jane",
"guestemail"<EMAIL_ADDRESS>},
{
"guestname": "Jack",
"guestemail"<EMAIL_ADDRESS>},
{
"guestname": "Jill",
"guestemail"<EMAIL_ADDRESS>}
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get guests.' }
Event Endpoints - Get Guest by id
Endpoint: `/api/guests/{id}`
Type: `GET`
Description:
Get a guest by id
Expected Input:
Sample Request:
Expected Return:
{
"guestname": "Jane",
"guestemail"<EMAIL_ADDRESS>}
Expected Return if Fails:
status code: 500
{ message: 'Failed to get guest.' }
Event Endpoints - Get Food Needed for Event
Endpoint: `/api/events/{id}/foodneeded`
Type: `GET`
Description:
Get Food Needed for Event
Sample Request:
Expected Return:
[
{
"id": 1,
"foodname": "Hamburgers",
"food_needed_id": 1,
"quantity_needed": 24,
"description": "hamburger meat",
"category": "meat",
"vegetarian": "0",
"vegan": "0",
"gutenfree": null
},
{
"id": 2,
"foodname": "Hamburger Buns",
"food_needed_id": 2,
"quantity_needed": 24,
"description": null,
"category": "bread",
"vegetarian": "1",
"vegan": null,
"gutenfree": "0"
}
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get Guest Bringing Item
Endpoint: `/api/events/{id}/{guestid}/bringing`
Type: `GET`
Description:
returns an array of foods a guest is brining by guestid
Sample Request:
Expected Return:
[
[
{
"guestname": "Jack",
"foodname": "Hamburgers",
"quantity": 12
}
]
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get Food
Endpoint: `/api/food/`
Type: `GET`
Description:
Get list of Categories.
Expected Input:
Sample Request:
Expected Return:
// Should return an array of food objects
[
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get Food by ID
Endpoint: `/api/food/:id/`
Type: `GET`
Description:
Get info on a Food by its id in database.
Expected Input:
Sample Request:
Expected Return:
// Should return an object
{
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Get Categories
Endpoint: `/api/food/categories/all`
Type: `GET`
Description:
Get list of Categories.
Expected Input:
Sample Request:
Expected Return:
[
{
"id": 1,
"category": "bread",
"description": "breads made from either flour, oats, rye, etc"
},
{
"id": 2,
"category": "meat",
"description": "meats"
}
]
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.'
Expected Input:
Sample Request:
Expected Return:
{
"id": 1,
"category": "bread",
"description": "breads made from either flour, oats, rye, etc"
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to get results.' }
Event Endpoints - Add Event
Endpoint: `/api/events/`
Type: `POST`
Description:
Add a new event to database
Expected Input:
{
"eventname": "Autumn Bash",
"description": "Company party for end of Summer, start of fall, and September birthdays!",
"eventdate": "9-25-2019",
"eventtime": "2:00 PM",
"location": null,
"user_id": 1 // User_id should be the id of the user creating the event.
}
Sample Request:
Expected Return:
// should return the object added to database.
status code: 201
{
"eventname": "Autumn Bash",
"description": "Company party for end of Summer, start of fall, and September birthdays!",
"eventdate": "9-25-2019",
"eventtime": "2:00 PM",
"location": null,
"user_id": 1
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to create new event.' }
Event Endpoints - Add Guest
Endpoint: `/api/guests/`
Type: `POST`
Description:
Add a new guest to database
Expected Input:
{
"guestname": "May",
"guestemail"<EMAIL_ADDRESS>}
Sample Request:
Expected Return:
// should return the object added to database.
status code: 201
{
"id": 5,
"guestname": "May",
"guestemail"<EMAIL_ADDRESS>"user_id": null
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to create new guest.' }
Event Endpoints - Add Guest to an Event
Endpoint: `/api/events/{id}/addguest`
Type: `POST`
Description:
Add Guest to an Event
Expected Input:
{ "guest_id": 4 }
Sample Request:
Expected Return:
Should return an array of guests for the event.
Expected Return if Fails:
status code: 500
{ message: 'Failed to add guest to the event.' }
Event Endpoints - Add Food Needed for Event
Endpoint: `/api/events/{id}/addfood`
Type: `POST`
Description:
Add Food Needed for Event
Expected Input:
{
"food_id": 3,
"quantity_needed": 6
}
Sample Request:
Expected Return:
Should return an array of food needed for the event.
Expected Return if Fails:
Event Endpoints - Add Guest Bringing Item
Endpoint: `/api/events/{id}/addBringing`
Type: `POST`
Description:
Add Guest Bringing Item for an event
Expected Input:
{
"food_needed_id": 3,
"guest_id": 4 ,
"quantity": 6
}
Sample Request:
Expected Return:
Should return an array of food the guest is bringing to the event.
Expected Return if Fails:
Food Endpoints - Add Food
Endpoint: `/api/food/`
Type: `POST`
Description:
Add a new food to database
Expected Input:
{
"foodname": "Apples",
"description": null,
"category_id": 3,
"vegetarian": true,
"vegan": true,
"gutenfree": null
}
Sample Request:
Expected Return:
// should return the object added to database.
status code: 201
{
"id": 3,
"foodname": "Apples",
"description": null,
"category_id": 3,
"vegetarian": "1",
"vegan": "1",
"gutenfree": null
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to create new food.' }
Food Endpoints - Add Category
Endpoint: `/api/food/categories/`
Type: `POST`
Description:
Add a new category to database
Expected Input:
{
"category": "fruit",
"description": "The fleshy seed-associated structures of a plant that are sweet or sour, and edible in the raw state, such as apples, bananas, grapes, lemons, oranges, and strawberries."
}
Sample Request:
Expected Return:
// should return the object added to database.
status code: 201
{
"category": "fruit",
"description": "The fleshy seed-associated structures of a plant that are sweet or sour, and edible in the raw state, such as apples, bananas, grapes, lemons, oranges, and strawberries."
}
Expected Return if Fails:
status code: 500
{ message: 'Failed to create new cateogory.' }
Event Endpoints - Update Event
Endpoint: `/api/events/{id}`
Type: `PUT`
Description:
Update event with given id.
Expected Input:
// Only have to submit information that is requested to change.
{
"eventname": "Autumn Bash",
"description": "Company party for Autumn and September birthdays!",
}
Sample Request:
Expected Return:
{
"id": 3,
"eventname": "Our Autumn Bash",
"description": "Company party for Autumn and September birthdays!",
"eventdate": "9-25-2019",
"eventtime": "2:00 PM",
"location": null,
"user_id": 1
}
Expected Return if Fails to find event by id:
status code: 404
{ message: 'Could not find event with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to update event.' }
Event Endpoints - Update Guest Bringing Item
Endpoint: `/api/events/{id}/updateBringing`
Type: `PUT`
Description:
Update Guest Bringing Item
Expected Input:
{
"food_needed_id": 1,
"guest_id": 2,
"quantity": 6
}
Sample Request:
Expected Return:
// an updated array of the foods the guest is bringing to the event.
Expected Return if Fails:
status code: 500
{ message: 'Failed to update food guest is bringing to the event.' }
Event Endpoints - Update Guest
Endpoint: `/api/guests/{id}`
Type: `PUT`
Description:
Update Guest with given id.
Expected Input:
// Only have to submit information that is requested to change.
{
"guestemail"<EMAIL_ADDRESS>}
Sample Request:
Expected Return:
{
"id": 5,
"guestname": "May",
"guestemail"<EMAIL_ADDRESS>"user_id
}
Expected Return if Fails to find event by id:
status code: 404
{ message: 'Could not find Guest with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to update Guest.' }
Event Endpoints - Update Food
Endpoint: `/api/food/{id}`
Type: `PUT`
Description:
Update food with given id.
Expected Input:
// Only have to submit information that is requested to change.
{
"description": "Sweet fruit"
}
Sample Request:
Expected Return:
{
"id": 3,
"foodname": "Apples",
"description": "Sweet fruit",
"category_id": 3,
"vegetarian": "1",
"vegan": "1",
"gutenfree": null
}
Expected Return if Fails to find by id:
status code: 404
{ message: 'Could not find food with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to update food.' }
Event Endpoints - Update Category
Endpoint: `/api/food/categories/{id}`
Type: `PUT`
Description:
Update category with given id.
Expected Input:
// Only have to submit information that is requested to change.
{
"description": "meats"
}
Sample Request:
Expected Return:
{
"id": 2,
"category": "meat",
"description": "animal flesh that is eaten as food."
}
Expected Return if Fails to find event by id:
status code: 404
{ message: 'Could not find cateogory with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to update cateogory.' }
Event Endpoints - DELETE Event
Endpoint: `/api/events/{id}`
Type: `DELETE`
Description:
Deletes event with given ID
Expected Input:
// {id} supplied in the endpoint
Sample Request:
Expected Return:
// object that has been deleted
{
"id": 3,
"eventname": "Our Autumn Bash",
"description": "Company party for Autumn and September birthdays!",
"eventdate": "9-25-2019",
"eventtime": "2:00 PM",
"location": null,
"user_id": 1
}
Expected Return if Fails to find event by id:
status code: 404
{ message: 'Could not find event with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to delete event.' }
Event Endpoints - DELETE Guest
Endpoint: `/api/events/{id}`
Type: `DELETE`
Description:
Deletes Guest with given ID
Expected Input:
// {id} supplied in the endpoint
Sample Request:
Expected Return:
// object that has been deleted
{
}
Expected Return if Fails to find event by id:
status code: 404
{ message: 'Could not find Guest with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to delete Guest.' }
Event Endpoints - Remove Guest from an Event
Endpoint: `/api/events/{id}/removeguest`
Type: `DELETE`
Description:
Removes Guest from an Event
Expected Input:
{
"guest_id": 3
}
Sample Request:
Expected Return:
// an updated array of the guests for the event.
Expected Return if Fails:
status code: 500
{ message: 'Failed to remove guest from the event.' }
Event Endpoints - Remove Food Needed for Event
Endpoint: `/api/events/{id}/removefood`
Type: `DELETE`
Description:
Remove Food Needed for Event
Expected Input:
{ "food_id": 3 }
Sample Request:
Expected Return:
// an updated array of the foods needed for the event.
Expected Return if Fails:
status code: 500
{ message: 'Failed to remove food needed for the event.' }
Event Endpoints - DELETE Food
Endpoint: `/api/food/{id}`
Type: `DELETE`
Description:
Deletes Food with given ID
Expected Input:
// {id} supplied in the endpoint
Sample Request:
Expected Return:
// object that has been deleted
Expected Return if Fails to find food by id:
status code: 404
{ message: 'Could not find food with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to delete food.' }
Event Endpoints - DELETE Category
Endpoint: `/api/food/categories/{id}`
Type: `DELETE`
Description:
Deletes Category with given ID
Expected Input:
// {id} supplied in the endpoint
Sample Request:
Expected Return:
// object that has been deleted
{
"id": 4,
"category": "fruit",
"description": "The fleshy seed-associated structures of a plant that are sweet or sour, and edible in the raw state, such as apples, bananas, grapes, lemons, oranges, and strawberries."
}
Expected Return if Fails to find event by id:
status code: 404
{ message: 'Could not find cateogory with given id.' }
Expected Return if Fails:
status code: 500
{ message: 'Failed to delete cateogory.' }
Database Structure - User Table
users
{
"id": 1, // auto increments (no input required, will auto populate)
"username": "user", // Cannot be null, Unique
"password": "examplepass", // Cannot be null
"firstname": "Johnathan", // not required
"lastname": "Doe", // not required
"preferredname": "John", // not required
"email"<EMAIL_ADDRESS>// Cannot be null, Unique
"group_id": 1 // not required, References `id` in table `groups`.
}
Database Structure - Groups Table
groups
{
"id": 1, // auto increments (no input required, will auto populate)
"groupname": "Developers", // Cannot be null, Unique
"description": "Description of the group" // not required
}
Database Structure - Event Table
events
{
"id": 1, // auto increments (no input required, will auto populate)
"eventname": "John's First Potluck", // Cannot be null, Unique
"description": "Birthday Party Potluck for Jane." // not required
"eventdate": "8-23-2019" // not required
"eventtime": "6:00 PM" // not required
"location": "John's Backyard" // not required, string
"user_id": 2 // not required, References `id` in table `users`.
}
Database Structure - Food Table
foods
{
"id": 1, // auto increments (no input required, will auto populate)
"foodname": "Hamburger Buns", // Cannot be null
"description": null, // not required
"category_id": 1, // not required, References `id` in table `categories`.
"vegetarian" : true, // not required
"vegan" : null, // not required
"gutenfree" : false // not required
}
Database Structure - Categories Table
categories
{
"id": 1, // auto increments (no input required, will auto populate)
"category": "bread", // Cannot be null
"description": "breads made from either flour, oats, rye, etc" // not required
}
Database Structure - Guests Table
guests
{
"id": 1, // auto increments (no input required, will auto populate)
"guestname": "guest1", // Cannot be null
"guestemail"<EMAIL_ADDRESS>// Cannot be null
"user_id": null // not required, References `id` in table `users`.
}
Table Relationships
Database Structure - Guests/Events Table
guests_events
{
"event_id": 1, // Required, References `id` in table `events`.
"guest_id": 1, // Required, References `id` in table `guests`.
"RVSP": boolean, // not required
}
Table Relationships
Database Structure - Food/Events Table
food_needed
{
"event_id": 1, // Required, References `id` in table `events`.
"food_id": 1, // Required, References `id` in table `foods`.
"quantity_needed": 1, // not required
}
Table Relationships
Database Structure - Food/Guests Table
food_bringing
{
"food_needed_id": 1, // Required, References `id` in table `food_needed`.
"guest_id": 1, // Required, References `id` in table `guests`.
"quantity": 1, // not required
}


University of Michigan, Ann Arbor, MI
Master of Science, Mechanical Engineering   •   Fall 2016
Mechanical and Electrical Team in Kasper Space Lab multidisplinary project in association with JPL
Claremont McKenna College, Claremont, CA
Bachelor of Arts, Physics & Economics Double Major   •   Spring 2015
Minor (Equivalent Courses) in Engineering at Harvey Mudd College
NCAA All-American Scholar-Athlete Award, April 2012, 2013, 2014, & 2015
Clarity Movement, Berkeley, CA
Hardware Test Engineer   |   Spring 2018 - Fall 2019
Research and develop hardware of Clarity Node - wireless, weather proof, multi-sensor air-quality monitor
Clarity Movement, Berkeley, CA
Hardware R&D Engineer   |   Spring 2018 - Fall 2019
Research and develop hardware of Clarity Node - wireless, weather proof, multi-sensor air-quality monitor
Kasper Space Lab, Ann Arbor, MI
Space Launch Instrumentation Team Member   |   Spring 2016 - Fall 2016
Developed sensor instrumentation and data analysis for measuring charged particles for NASA's mission to Jovian moon Europa
Languages
Programs


This is an economics post trying to calculate the slightly positive effects of linear rewards on the reward pool distribution (potential 5% positive effect toward equitable distribution) followed by a discussion of the likely intensely enhanced clustering around limited numbers of posts. If you thought circle jerking was bad now wait until you see HF19!
The Basics of HF 19
Steemitblog annouced HF 19 and entitled it Linear Rewards.
So, “Linear Rewards” has gotten the most press.
https://steemit.com/steem/@steemitblog/2hfxx1-pre-release-hf19-linear-rewards
Linear Rewards vs Squared Rewards
The post doesn’t detail it terribly well. So, here’s my best explanation I can offer. When calculating post rewards there is a term called Reward Shares. I’m still digging into it, but my current assumption is that it’s a function dominated by Steem Power. Right now when calculating your actual reward the backbone takes your amount of reward shares and squares it. In the new update it will take your Reward Shares unaltered.
Here’s the coding changes.
What’s the effect?
Well, distribution is such that 93% of the Steem rests in the hands of 1% of the users (excluding the steemit account, which would increase the number if it was included). So, whales basically dictate the rewards pool. Under Linear Rewards they will get 93% of the say because they have 93% of the steem.
That’s an improvement over current conditions. Assuming they get 93% of say and I haven’t totally misunderstood rewards shares and the calculated effect is squared they end up dictating 99% percent of the reward pool currently. (I think the math = 93^2/(93^2+7^2)= 99%). This doesn’t happen right now because of “the non-voting whales experiment,” but that’s what could be happening.
Assuming 240M steem, 10% inflation, and $2.16/steem the reward pool is ~$50M/yr which works out to$137k/day. 85% of the rewards pool goes to authors and curators so, here’s the net effect.
Whales control $115k/day now.
Whales control $108k/day after HF 19.
That’s a modest change, so I’m happy to say it’s a “shave” to their current influence on the platform now (aka whale balls). If all the whales come back voting hard though the shave won’t be enough to account for the increased voting activity.
Overall, in theory it looks like a change of 6% of the say of how the reward pool is spent and that works out to about $7k/day towards better distribution control by smaller parties.
Keep in mind tho’ that not all whales vote because of the experiment… so, what happens in reality is a little different than this. It’s just meant to be a high level thought that suggests Linear Rewards is mildly beneficial for the common minnow in theory, but will probably have a negative impact overall if whales come back voting hard and don’t stay experimental.
https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fimages.scienceworldreport.com%2Fdata%2Fimages%2Ffull%2F6876%2Fweed.jpg%3Fw%3D680&f=1
Vote Impact
The changes to the impact of a 100% vote are more material. A 100% vote will be 4 times more powerful once HF19 is completed. As it stands now a single 100% vote uses only 0.5% of your remaining voting power (voting power regenerates fully over a 5 day period). That means real users would need to vote 40 times a day at full power to use all of their voting power. This leaves users who are less active unable to fully leverage their voting power. After this change, a single 100% vote will use 2% of your remaining voting power, meaning that 10 full-power votes a day will now exhaust the majority of your voting power. Of course, if one does not wish to use this much voting power in a single vote, anyone is still free to lower the power-percentage of their votes accordingly.
I think the thought behind this is awesome. Minnows aren’t curating a lot so they are missing out on curation rewards. Let’s lower the number of votes needed a day to curate effectively. That’s awesome… but I don’t thinka it’s gonna do what they thinka it’s gonna do.
https://images.duckduckgo.com/iu/?u=http%3A%2F%2Fsayitanywayou.com%2Fwp-content%2Fuploads%2F2016%2F09%2Fmontoya.jpg&f=1
Right now curation is dominated by a handful of posts with huge rewards. It’s often the same people making the same huge rewards. It seems like the big guys are all helping out the same people and so those posts get huge. It turns out that’s not only good for the author, but it also helps maximize curation gains for the whales.  HF 19 they can distribute them just over 10. Instead of a whale dropping a max of say $50 on one post now it’s going to be closer to $200… you know what’s that’s going to do to post values? TO THE MOON!!!! but only for like 10-20 posts a day.
Remember when we talked about only doing 1 major change at a time?
As a scientist I know not to mix more than one variable in an experiment at a time. Voting and linear rewards should have been separated. It’ll be hard to isolate what is causing what if you haven’t read this post yet. I fully believe this plan was implemented to help minnows. I think the fanfare over linear rewards dwarfed attention to this second component, which I actually think will have drastically more impact on voting rewards distribution and be extremely negative towards equitable distribution of reward pool funds.
Terrified and calm
So, here’s what I think is going to happen. You’re going to see your rewards drop like crazy unless you’re a top poster. People will abandon the platform and the price of steem will drop. Maybe a few other witnesses will understand what just happened and go along with some of my proposed fixes below. There will be manual adjustments through flagging again that will be seen as unfair that actually help the other 138,980 users on the platform. Then there’s a relatively quick fix.
After that fix we see an increase in steem price and people come back. It also brings awareness to how better distribution of the out going rewards pool is important to this place, and we overcompensate in that direction. I suspect a roller coaster. I also think people here have good intentions and it’ll be fixed.
What to do?
- Don’t mix more than one big variable at a time.
- Go the opposite direction with vote count. Give people more votes (80-100) so it’s hard to keep only supporting the top 20 authors every day and you have to dig for more people. Support steemit.com based curation strategies that are fast to implement for new users so they can curate too (ie 1 click implementation of following the Minnow Support Project’s curation trail). It ends up looking like a curation mutual fund :)
- Make vote power loss dependent on the relationship of SP of the voter to the author. If they have the same SP it costs normal. If you’re voting on a minnow with much less SP it should cost a whale much less of their voting pool to upvote their content. That changes the incentive to upvote minnows.
- Double flagging efforts until its resolved.
BTFD
Should be an easy fix. So, buy the dip. This is also all theoretical because there are way too many programmed variables and human interactions to predict what we see in reality.
I’ve altered my witness to HF 19 to verify my hypothesis. I think the blowback in a month will help minnows. Hold onto your hats.
In other news
My witness campaign is going great. I’m at Witness 51 after 2 weeks. I witness ~20 blocks per day. About 250 people have upvoted my witness.
My witness central project is going great. The Minnow Support Project has 300+ people in the Discord channel from multiple countries helping one another out with votes, resteems, follows, and writing suggestions.
I’m connecting with multiple countries that could use centralized support to growth hack in depressed economies. They need steem so they can have a dependable deflationary currency.
This page is synchronized from the post: ‘Shaved Whale Balls and MEGA CIRCLE JERKS- The economics of HF 19; a witness update.’


You can make configuration adjustments to improve multicast and unicast UDP performance of peer-to-peer communication.
You can tune your Geode UDP messaging to maximize throughput. There are two main tuning goals: to use the largest reasonable datagram packet sizes and to reduce retransmission rates. These actions reduce messaging overhead and overall traffic on your network while still getting your data where it needs to go. Geode also provides statistics to help you decide when to change your UDP messaging settings.
Before you begin, you should understand Geode Basic Configuration and Programming. See also the general communication tuning and multicast-specific tuning covered in Socket Communication and Multicast Communication.
UDP Datagram Size
You can change the UDP datagram size with the Geode property udp-fragment-size
. This is the maximum packet size for transmission over UDP unicast or multicast sockets. When possible, smaller messages are combined into batches up to the size of this setting.
Most operating systems set a maximum transmission size of 64k for UDP datagrams, so this setting should be kept under 60k to allow for communication headers. Setting the fragment size too high can result in extra network traffic if your network is subject to packet loss, as more data must be resent for each retransmission. If many UDP retransmissions appear in DistributionStats, you maybe achieve better throughput by lowering the fragment size.
UDP Flow Control
UDP protocols typically have a flow-control protocol built into them to keep processes from being overrun by incoming no-ack messages. The Geode UDP flow-control protocol is a credit based system in which the sender has a maximum number of bytes it can send before getting its byte credit count replenished, or recharged, by its receivers. While its byte credits are too low, the sender waits. The receivers do their best to anticipate the sender’s recharge requirements and provide recharges before they are needed. If the sender’s credits run too low, it explicitly requests a recharge from its receivers.
This flow-control protocol, which is used for all multicast and unicast no-ack messaging, is
configured using a three-part Geode property mcast-flow-control
. This property is composed of:
-
byteAllowance
—Determines how many bytes (also referred to as credits) can be sent before receiving a recharge from the receiving processes. -
rechargeThreshold
—Sets a lower limit on the ratio of the sender’s remaining credit to itsbyteAllowance
. When the ratio goes below this limit, the receiver automatically sends a recharge. This reduces recharge request messaging from the sender and helps keep the sender from blocking while waiting for recharges. -
rechargeBlockMs
—Tells the sender how long to wait while needing a recharge before explicitly requesting one.
In a well-tuned system, where consumers of cache events are keeping up with producers, the byteAllowance
can be set high to limit flow-of-control messaging and pauses. JVM bloat or frequent message retransmissions are an indication that cache events from producers are overrunning consumers.
UDP Retransmission Statistics
Geode stores retransmission statistics for its senders and receivers. You can use these statistics to help determine whether your flow control and fragment size settings are appropriate for your system.
The retransmission rates are stored in the DistributionStats ucastRetransmits
and
mcastRetransmits
. For multicast, there is also a receiver-side statistic mcastRetransmitRequests
that can be used to see which processes aren’t keeping up and are requesting retransmissions. There
is no comparable way to tell which receivers are having trouble receiving unicast UDP messages.


Hezbollah says it wants to keep ‘door open’ in talks on new govt
BEIRUT, Nov 11 — The leader of Lebanon’s powerful Hezbollah group said today that political talks on forming a new government were still underway, and he would not discuss the matter publicly because he wanted to leave the “door open”.
Yesterday three senior sources told Reuters talks to agree an urgently needed new government were still deadlocked.
In a televised address, Hezbollah leader Sayyed Hassan Nasrallah said: “When it comes to the government formation ... the meetings are ongoing and the discussions are underway in the country. I will not discuss this matter ... and we will leave the door open.” — Reuters


Teleplay by: Tracy Reilly
Story by: Robert Carlock
Produced by: Robert Carlock & Wendy Knoller
Transcribed by: Coffee Mug, Eleonora, Sebastiano & Vanessa
Final check by Kim
[Scene: Chandler and Monica's apartment. They are having a diner party with Phoebe and Mike.]
Mike: (raising his glass) Thank you guys for having us over.
Phoebe: Oh! Yeah, this is fun, couples night.
Chandler: Yeah, I don't know why we hang out with married couples more often.
Monica: Well, because every time we do, you make jokes about swinging and scare them away.
Chandler: You mean that Portuguese couple? Yeah, like you wouldn't have done it. (she shrugs)
Ross: (entering) Hey, you guys... I have great news.
Monica: Ross, we're kind of in the middle of diner here.
Ross: Oh, well, er, I already ate, but sure...! (they all look at each other when Ross grabs a plate) Guess what happened at work today...
Chandler: A dinosaur died a million years ago?
Ross: Try sixty-five million years ago, and then try sssshhhhhh.... My tenure review board met today and I hear it's looking really good.
Phoebe: Wow!
Ross: Yeah. Do you have any idea what this means in academic circles, uh? I am gonna get laid.
Rachel: (while entering) Hi you guys.
All: Hey.
Rachel: Ooh, Italian! (she also grabs a plate)
Monica: No one wanted seconds, right?
Ross: No, no. I-I'm good.
 You're never gonna believe it. This headhunter called me. I have a meeting tomorrow with Gucci. Gucci wants me.
Ross: I'm up for tenure.
Rachel: Congratulations!
Ross: You too! What are the odds?
Rachel: Ooh! (they hug)
Joey: (enters) Guess what? (they all look expectantly at him) I finally got that seed out of my teeth.
Monica: I don't know who I'm happiest for...
Phoebe: I do, he's been working on that all day! (looking at Joey)
OPENING CREDITS
[Scene: Central Perk. Phoebe, Monica and Chandler on their couch.]
Phoebe: Hey Mon? Was it weird changing your name to Geller-Bing?
Monica: No, no. It felt nice to acknowledge this. (pats Chandler on his leg)
Phoebe: Where did you go to do it?
Monica: Uhm the... the ministry... of names... bureau...

Monica: I'm sorry. It's just the idea of being an official Bing.
Chandler: Hey! I will have you know that... aah, who am I kidding. Let's call the kid Geller and let Bing die with me.
Mike: (walks to the couch with coffee for Phoebe) Here you go.
Phoebe: Thanks! Honey, would you want me to take your name?
Mike: Oh, it's just... It's up to you. It's your name. You've got to live with it.
Phoebe: All right, let's see, call me mrs Hannigan.
Chandler: Mrs Hannigan?
Phoebe: What? Can't you see I'm in the middle of something? Ooh, I like it.
Joey: (enters) Hey guys.
Chandler: Hey Joe! We've got a couple of things we've got to check out at the new house. You want to come with us?
Joey: No, thank you.
Monica: All right. I know you're not happy about us moving, but you're the only one who hasn't seen the house.
Chandler: Yeah, come with us. You'll see how close it is to the city.
Joey: But no, it's not close. You said it was in escrow? I couldn't even find it on the map.
Monica: Joey, please come. It would mean so much to us.
Joey: You know what? You are my friends, I wanna be supportive, I will come with you. SHOTGUN!
Chandler: Damn it.
Monica: See you guys later.
Phoebe: Okay!
Monica: (to Joey) I'll pick you up at eleven. So glad you're coming.
Phoebe: Good for you. That was really mature.
Joey: What?  I'm gonna make them stay here.

Phoebe: Joey, you can't make someone do something they don't want to do. Believe me, there's something I've been trying to get Mike to do in bed and there's... he's just...
Mike: Woo-wo-hey-hey-hey... Can we not talk about that right now?
Phoebe: All right, prude... Look, Monica and Chandler really love this house. You are not gonna talk them into staying here.
Joey: Hey, hey... I can convince people to do anything, you know. I bet I can even get Mike to do that "thing". What is it?
 Goodbye! (he leaves)
[Scene: A restaurant. Rachel enters.]
Rachel: (to maitre d') Hi, I'm here to see mr Campbell... with Gucci. The reservation is probably under Gucci. It's spelled like Gukki, which could be confusing.
Maitre d': Mr Campbell's not here yet. Let me show you to his table.
(They walk to the table, but Rachel suddenly gasps. Sitting there is mr Zellner, her boss from her current job at Ralph Lauren.)
Rachel: Oh my God! That's my boss. You have to seat us somewhere else.
Maitre d': I'm sorry. That's always mr Campbell's table.
Rachel: But my... but my boss cannot see me. I'm interviewing for another job.
Maitre d': I know. With Gukki
Rachel: Sssshhhh!
Mr Zellner: Rachel?
Rachel: Hi... I'm on a date...
Mr Zellner: (confused) That's great!
Rachel: Yeah, it is. Yeah, you know, it's tough. Single mom, career... You gotta get out there.
Mr Zellner: Well, you got uhm... good energy.
Rachel: Oh.
Mr Campbell: Rachel?
Rachel: Yes, hi!
Mr Campbell: James Campbell...
Rachel: Hi! (to mr Zellner) Excuse us.
Mr Campbell: Please... (shows her to sit)
Rachel: Okay. Oh, yeah... (whispering to mr Zellner) Oh he's cute!
Mr Campbell: So... your resumé is quite impressive. (Mr Zellner who sits behind Rachel shrugs)
Rachel: Wha... My resumé? I wouldn't... I wouldn't call my online dating profile a resumé.
Mr Campbell: Dating profile? I-I-I'm talking about the work resumé.
Rachel: (starts singing la la la la) Whatever happened to just singing for no reason? Huh?
Mr Campbell: Maybe people... found it weird.... So, why do you want to leave Ralph Lauren?
Rachel: What? I-I don't.
Mr Campbell: You don't?
Rachel: No, I-I-I love it there.
Mr Campbell: Well, if you don't want to leave, why are we having this lunch?
(Rachel mimes and mouths to mr Campbell "That is my boss", pointing to mr Zellner)
Mr Campbell: What?
(Rachel now silently whispers "That's my boss".)
Mr Campbell: That's Hugo Boss?
(Rachel holds her hand in order to support her head. Mr Zellner obviously overheard the conversation.)
[Scene: A counter at a government building. Phoebe's waiting in line.]
Phoebe: (to the woman behind her) This place is so depressing.  But you obviously haven't.
Clerk: How can I help you?
Phoebe: I need to change my name, please.
Clerk: You need to fill out this form. (motions for the next person in line)
Phoebe: Okay, well, I just don't, I don't know how it works exactly. See, my name is Buffay and my husband's name is Hannigan, so is it supposed to be Buffay-Hannigan or Hannigan-Buffay?
Clerk: It can be anything you want.
Phoebe: Well, not anything, I mean...
Clerk: Yeah... anything.
Phoebe: Oh, this could take a while.
Clerk: Get out of my line.
Phoebe: Okay.
[Scene: Central Perk. Chandler and Monica are there when Phoebe enters.]
Phoebe: Hey!
Monica: Hey Pheebs.
Phoebe: Oh, not anymore. I changed it today.
Monica: Oh, I'm sorry, mrs Hannigan.
Phoebe: Wrong again! Apparently you can change it to anything you want. So I thought, all right, here's an opportunity to be creative. So meet Princess Consuela Banana Hammock.
Chandler: That's what we were gonna name the baby.
Monica: Phoebe!
Phoebe: Uh! Princess Consuela.
Monica: You seriously changed your name to that?
Phoebe: Uh-huh!
Monica: Okay, so from now on we have to call you Princess Consuela?
Phoebe: Uhm, no. I'm gonna have my friends call me Valerie.
(Rachel enters, looking depressed)
Chandler: Hey, how'd the interview go?
Rachel: Oh! It's not good.
Chandler: You know, I always feel that way after an interview. I'll bet it went better than you think.
Rachel: Well, I didn't get the job at Gucci and I got fired from Ralph Lauren.
Chandler: That is a bad interview.
Phoebe: What are you, what are you talking about? How did this happen?
Rachel: Well, my boss was at the same restaurant where I was having my interview and he heard everything.  And I said "Wait a minute! Yes I am." and I had to sit there for 45 minutes while he proved that that in fact... was true.
Monica: Oh God. I'm so sorry.
(Ross enters with a bottle in his hand)
Ross: Hey! Wha-hoo! What's this? (showing the bottle) Well it's a, it's a bottle of champagne. Why is this here?
Phoebe: Ross...
Ross: I guess it's here because I GOT TENURE!
All (except Rachel): Congratulations! (Rachel looks devastated)
Ross: This is the single greatest day of my professional career. Gunther, six glasses!
Gunther: Six? You want me to join you?
Ross: Oh, I thought Joey was here. Five is good. (Gunther leaves, hurt) Well, I'm gonna have a loogie in my coffee tomorrow.
Chandler: Ooh! Israeli champagne. And it's vanilla!
Ross: I got tenure. I didn't win the lottery... Hey Rach, so uh... how did your thing go?
Rachel: Oh it... good! Yeah, but I'm not gonna hear from that for a couple of days.
Ross: Oh, you know what? You're gonna get it. I-I-I-I can feel it.
Phoebe: Can you?
Rachel: Ah, all right. Here's to Ross!

Phoebe: And to knowing that your career doesn't mean everything. (Rachel mouths "aah")
Ross: But also knowing it means a lot.
Monica: But more importantly to full well-rounded lives.
Ross: ...that center around work.
Chandler: To Ross!
All (except Rachel): Ross!
(they all drink from the champagne, but clearly dislike the taste of it)
Ross: You know what the best part about this is? I can never be fired.
Phoebe: Oh God!
Ross: No seriously. I have job security for life. You know, I never have to worry. (Rachel starts crying) Oh, look at you. Look how happy you are for me.
Rachel: (crying) No, it's not that. I got fired today. And I didn't get the other job.
Ross: Rach, I'm so sorry.
Rachel: Oh!
Ross: Great.
Rachel: No, it's okay, you didn't know.
Ross: Oh... (to the others) Little heads-up would have been nice.
[Scene: Chandler and Monica's future house. They enter the living room with the realtor and Joey.]
Monica: Thank you for letting us see the house again.
Chandler: And thank you for explaining to us what escrow means... I've already forgotten what you said, but thank you.
Realtor: Take as long as you want. Just let me know when you're through. (she leaves the room)
Monica: Ah, so glad you decided to come.
Joey: Me too. Yeah, this place is great. I'm so happy for you guys. Although, you know, I hope you like fungus.
Chandler: What?
Joey: Fungus! Yeah. Place is full of it.
Monica: No it's not. We had an inspection and they didn't find anything.
Joey: Okay. Then I guess I have dry eyes and a scratchy throat for no reason.

Joey: Maybe. So this is the living room huh? Ooh, it's pretty dark. (starts feeling around him like he's in a completely dark room, touching Chandler, who backs out and hits him)
Monica: No it's not!
Joey: (squinting his eyes) Are you kiddin'? I think I just saw a bat in the corner!
Chandler: When your head was hanging out the window, it didn't hit a mailbox, did it?
Joey: (glares at him for a moment, then admits grudgingly) Maybe. Well, I just think you guys can do better than this house, you know? Or any other house for that matter.
Monica: Oh Joey, look, we know you're having a hard time with this, but we really, we love it here.
Joey: FINE, ok, if you love this house so much, then you should just live here, okay? I just hope you get used to that weird humming sound. (He turns his back to them and starts humming) Hmmmmmmmmmmmmmm...
Monica: Joey, we know that's you.
Joey: no... hmmmmm... it's not... hmmmmmmmmmm
[Scene: Phoebe is at Central Perk. Mike enters.]
Mike: Hey (He kisses Phoebe)
Phoebe: Welcome back!
Mike: Ah! I missed you
Phoebe: Oh, me too!
Mike: So, what's new?
Phoebe: Well, I'm no longer Phoebe Buffay.
Mike: That's great! You changed you name?
Phoebe: Yes I did! Meet: Princess Consuela Banana Hammock! (She smiles from ear to ear)
Mike: (afraid) You're kidding right?
Phoebe: Nope.
Mike: You really did that?
Phoebe: Yep.
Mike: Yeah, but you can't do that.
Phoebe: Why? It's fun, it's different, no-one else has a name like it.
Mike: (looks at her astonished) Alright, then I'm gonna change my name.
Phoebe: Great, okay, what are you gonna change it to?
Mike: Crap Bag.
Phoebe:(not amused) Mike Crap Bag?
Mike: No, no Mike, just Crap Bag. First name Crap, last name Bag.
Phoebe: You're not serious, right?
Mike: Yeah, I'm serious. (sarcastic) It's fun, it's different and no-one else has a name like that!
Phoebe: Uhu, uhu, well, then, great. If you love it, I love it.
Mike: I do love it, and I love your name. I love Princess Consuela.
Phoebe: And I love Crap.
[Scene: Joey is in Monica and Chandler's future house, sitting in a child's bedroom, looking at a quiz card which has "5+10=" printed on one side.]
Joey: (turns the card around, obviously had the wrong answer) Ow!
(A young girl enters)
Girl: Who are you?
Joey: Oh, hi, I'm Joey.  Who are you?
Girl: I'm Mackenzie.
Joey: (understanding) Oh.

 (They shake on it as if they just made a pact) Alright, look. There's gotta be a way that we can stop this from happening.
Mackenzie: Like what?
Joey: (thinking) Uhm... oh! Okay. You come with me, and you tell them that the house is haunted!
Mackenzie: What are you? Eight?
Joey: Woah, uh! Okay, let's hear your great idea.
Mackenzie: I don't have any great ideas. I am eight.
Joey: (frustrated) Ahh! There's gotta be a way. I mean, you know, if Monica and Chandler move out here and now Phoebe is married to Mike. That just leaves me and Ross and Rach, you know what I mean?
Mackenzie: I really don't.
Joey: What am I gonna do, I feel like I'm losing my friends.
Mackenzie: My parents say I'm gonna make new friends.
Joey: Oh, yeah, sure, easy for you, you're young. Me, I'm set in my ways.
Mackenzie: This is what my mom was talking about. Whiners are wieners. (Joey glares at her angrily) Look, you want your friends to be happy, right?
Joey: Yeah, yeah, I guess.
Mackenzie: Well, if moving here is gonna make them happy, don't you want them to do it?
Joey: (having difficulty admitting it) Yeah, maybe.
Mackenzie: Then you gotta let them go.
Joey: (In near tears, realizes she is right) I hate to admit it, but you're probably right. How did you get to be so smart?
Mackenzie: I read a lot.
Joey: (his mood changes instantly) Just when I thought we could be friends. (he leaves the room)
[Scene: Outside Ralph Lauren building. Rachel just walked out carrying a box of her stuff, and a strange man approaches her.]
Man: Hey Rach, I just heard. I'm so sorry.
Rachel: Oh, thank you... (looks at his face trying to remember his name)
Man: You still don't know my name, do you?
Rachel: (Is embarrassed for a moment, but it quickly passes) Well, now I don't have to. (The man leaves instantly)
(In the meantime, Ross is trying to squeeze and push a rather large chair through the revolving doors of the Ralph Lauren building.)
Rachel: (annoyed) Ross, what is taking you so long?
Ross: (stares at her through the door and starts pushing the chair harder, looking very annoyed. He finally manages) (sarcastic) I'm sorry, it's almost as if this wasn't built for a quick getaway!
(Mark, approaches from behind and recognizes her)
Mark: Rachel?
Rachel: (turns around) Mark? Oh my God! (puts the box on the chair and they hug each other)
Mark: How've you been?
Rachel: I'm fantastic. You remember Ross?
Mark: Sure, sure. (To Ross) What's with the chair. (Rachel signals him not to mention she's been fired)
Ross: Uh, you know, you can't always get a seat on the subway, so... (laughs stupidly)
Mark: Clever. (back to Rachel) So how are you?
Rachel: Oh, well, (looks at her box and chair) you're not catching me on my best day.

Rachel: No, but it's good, you know, I'm gonna take some time off and do some charity work.
Mark: Are you sure, because we may have something at Louis Vuitton.
Rachel: Well, screw charity work. What've you got?
Mark: Why don't we have dinner tonight and talk about it?
Rachel: Great! I'll call ya!
Mark: (shakes Ross' hand) Nice to see you.
Ross: Yeah! yeah, I got tenure! (Mark looks at him strangely and walks off)
Rachel: (very excited) Oh my God!
Ross: See? I told you something good would come along. And he seemed really nice. I've met him before?
Rachel: Ross! That's Mark. From Bloomingdales? You were insanely jealous of him.
Ross: (realizing) That is Mark?
Rachel: Yes.

Rachel: Oh.
Ross: No, no, NO, you cannot go to dinner with him.
Rachel: What? You don't want me to get a job?
 Maybe make you his SEXretary.
Rachel: Ugh.
Ross: I'm serious. I just don't trust that guy, okay?
Rachel: Ross, you know what? (looks over to the door and sees security staring at them) Okay, let's talk about it later, there comes security. (Takes her box and leaves. Ross follows her and then returns for the chair. He stands for a moment, then pushes it quickly in the general direction Rachel went into, and out of the camera's view, and then nonchalantly walks away)
[Scene: Chandler and Monica's new house. Sitting near the window, they look at the neighborhood.]
Monica: Oh, I love this street. The trees, the big front yards, the actual picket fences.
Chandler: Man, those two dogs are going at it!
Joey: (entering) Hey!
Chandler: Hey.
Monica: Hey, where have you been?
Joey: Oh, just er... you know, looking around. But you know what? This house... is great.
Chandler: Really? What changed your mind?
Joey: Oh well, the little girl who lives here made me feel a lot better about the whole thing.
Chandler: Joey, there was a little girl who lived here, but she died like 30 years ago.
(Joey's eyes double in size)
Joey: (frightened) What?
Chandler: Ha! I'm just messing with you.
Joey: That's not funny! You know I'm afraid of little girl ghosts!

Joey: What? I get my own room?
Chandler: You don't think we'd buy a house and not have a Joey room do you?
Joey: Oh my God! (they all hug) Oh! Hey, can I have an aquarium?
Chandler and Monica: No!
Joey: Why not? I'll keep the tank clean.
[Scene: Central Perk. Phoebe and Mike are leaving.]
Mike: After you, miss Banana Hammock.
Phoebe: Thank you, mister Bag.
(a woman enters and recognizes Phoebe)
Woman: Oh hey, how are you?
Phoebe: Oh hi Rita! Good! (to Mike) Oh, Rita's a massage client.
Mike: Oh! Why don't you introduce me?
Phoebe: (shrugs) Er, Rita, this is my husband.
Rita: Oh! (they shake hands)
Phoebe: Yeah.
Mike: Why don't you tell her my name?
Phoebe: (without moving her lips, wearing a fake smile) Okay, I will. (to Rita) This is my husband Crap Bag.
Rita: Crap Bag?
Mike: If you need an easy way to remember it, just think of a bag of crap.
Rita: Okay. Excuse me...
Phoebe: Yeah... Ogh... Okay, fine. You made your point. Can you please just be Mike Hannigan again?
Mike: Only if you'll be Phoebe Buffay.
Phoebe: How about uhm... How about Buffay-Hannigan?
Mike: Really?
Phoebe: Yeah. I'm Phoebe Buffay-Hannigan Banana Hammock.

Phoebe: It's a funny word.
Mike: It's a Speedo.
Phoebe: ...Oh crap!
[Scene: Monica and Chandler's apartment. Ross enters.]
Ross: Hey, is Rachel here?
Monica: No.
Ross: She's still at dinner?
Monica: I guess. Why? Who's she with?
Ross: That guy Mark. From Bloomingdale's... She thinks he's just being nice to her. But I know he really wants to sleep with her.
Chandler: It's seven years ago. (he looks surprised) My time machine works!
Ross: We ran into him on the street today and he said he might have a job for her. But I know he just wants to get into her pants.
Monica: So what if he wants to sleep with her?
Chandler: Excuse me?
Monica: Oh please! Yesterday on the subway? You couldn't stop staring at that woman with the big breasts the whole time.
Chandler: For your information, I was staring at her baby. We're about to be parents.
Monica: Oh, sorry!
(She looks at Ross, a bit ashamed. Chandler mimes "big breasts" to Ross and lip syncs "Wow". Ross looks at him, astonished and then Monica looks at Chandler again. A little too late he changes the "big breasts" mime into "rocking a baby". When he realizes Monica might have seen it he also strokes his imaginary baby's head.)
Rachel: (entering) Hi you guys!
Ross: Hey, so uhm... How was dinner?
Rachel: Oh, it was great. Mark is so sweet.
Ross: (speaking without pause, agitated) Oh yeah? Yeah? I wonder why? What could that smarmy letch possibly want?
Rachel: Oh Ross, come on. He's happily married. His wife just had twins.
Ross: Should we send something?
Chandler: How did the job stuff go?
Rachel: He offered me one.
Chandler: That's great!
Ross: Congratulations!
Rachel: I know, it's amazing. It's amazing. It's so much better than what I had at Ralph Lauren. The money is great...
Ross: Can we, can we just stop for a second? Who said something better would come along, huh? You didn't believe me. I told you everything was gonna work out. (gasps) You know what? This calls for a bottle of Israels finest.
Rachel: The job is in Paris. (they all stare at each other)
COMMERCIAL BREAK
[Scene: Joey and Rachel's. Joey's on the phone.]
Joey: I mean, this soap opera is a great gig, but... am I missing opportunities? You know, I've always thought of myself as a serious actor. I mean, should I be trying to do more independent movies?
Mackenzie: (at the other end of the line) I don't know... You know what? I'm gonna put you on with my bear. Hold on. (she puts the phone at the bears ear)
Joey: Hey bear, I need some career advice.
THE END


What is the secondary display? The secondary display lets you quickly and conveniently see essential information and access qui...
Tuning your HTC USonic earphones Experience music tuned to your ears when you use your HTC USonic earphones with HTC U Ultra. Th...
What's special with Camera Enjoy taking great camera shots on HTC U Ultra. The Camera app has a simple interface, neat...
Recording video in 3D Audio or high resolution audio Choose to record videos, including selfie videos, with high resolution audio or 3D Audio.
Taking a panoramic selfie With the Selfie Panorama mode, you can invite more people to take a selfie with you.
Android 7.0 Nougat Android® 7.0 Nougat brings new features that make working with apps and settings even more co...
Fingerprint scanner You can quickly wake up and unlock the HTC U Ultra using your fingerprint. You can ad...
Ways of backing up files, data, and settings Worried that you might lose important stuff on HTC U Ultra? Back up HTC U Ultra before y...
Getting help and troubleshooting Check out the friendly walkthroughs and the FAQs in the Help app to learn how to use your ...


| Developer Spotlight |
|
Net2map is a multidimensional distributed search engine. A "dimension" is anything that can translate a document into a value: User rating, category, author, price (if the document describes an item that is for sale), etc. Currently, only three simple dimensions are available: creation date, size, and relevancy (provided by Lucene, when a keyword search is done). More dimensions are planned to make it easy for anyone to add their own dimensions to the system. Search results are displayed on a map. Each result is a small button whose horizontal and vertical position matches it's dimensions values. So, when you make a query on net2map, it's like looking at a particular location of this "map of the net". When originally evaluating technologies for n2map, Philippe selected Project JXTA because there really weren't any other open-source P2P frameworks available. As net2map needs to have many simultaneous users to become useful, he was looking for a P2P technology that would be usable anywhere, by anyone. He was specifically looking at:
Net2map is currently available only in French. Philippe is working on
translating the site to English prior to proposing the project at jxta.org. Looking back, Philippe believes that there was an advantage to selecting JXTA technology. With all that is available from Project JXTA, he did not need to rewrite a new, proprietary, and incompatible-with-the-rest-of-the-world P2P framework. Also, by selecting Project JXTA, he was joining a cadre of software engineers who provided their knowledge and experiences when he needed assistance. Looking to the future, he hopes that P2P will spread from computers to... people! He explains:
Philippe is currently taking courses at the Conservatoire National des Arts de Metiers, CNAM. He hopes to receive the title of "Computer Engineer of the CNAM" within 2 years. In the meanwhile, he is also looking for a job, hopefully one which would be compatible with his CNAM studies. He is very active in his personal life as well. His personal interests and activities include:
|
Reported December 2003


Ms Office 2016 And 365 Official Iso Images For Download Offline Install
Ms Office 2013 Product Key Free Download Serial Number For Microsoft Office 2013 License
Microsoft Windows And Office Iso Download Tool 8 42 Free Download Software Reviews Downloads News Free Trials Freeware And Full Commercial Software Downloadcrew