text:
Decentralized data exchange powered by Ethereum Dock Protocol V0.5 | Subject to change March 12, 2018
Table of Contents 1 Abstract 4 2 Summary 4 2.1 Problem Definition 4 3 High Level Overview and Vision 5 3.1 Users 5 3.2 Applications: Data Providers and Consumers 5 3.3 Proposal and Voting Mechanism 5 4 Possible Future Use Cases 6 4.1 Automatic Relationship Mapper 6 4.2 In-Work Application Performance Mapper 6 5 Usage of Ethereum (Reasons) 6 6 Core Dock Protocol Features 7 6.1 Data Exchange Model 7 6.2 Encrypted Secure Snapshots of Data 7 6.3 Voting Utility 8 7 Reasoning Behind These Steps 8 8 Possibility of Public Data 8 9 Data Exchange Model 9 9.1 Chainpoint Modification 9 9.2 On-Chain Data 10 9.3 Off-Chain Data 11 10 User-Application Contract Pairs 11 11 On-Chain Data Attribution Verification 11 12 On-Chain Vouching and Signaling 12 13 Public Name Registry 13 13.1 Name Verification 13 13.2 Reverse Address Lookup 14 !2
14 Data Types and Standard Formats 14 14.1 Initial Format Types 14 14.2 Data Format Signaling 15 15 Snapshots of Individual Key-Value Pairs Within Format Data 16 15.1 Rare Number of Updates 16 16 Experience Format Example 16 17 Token Model 16 17.1 Long-term Trust Building 17 17.2 Token Utility 17 17.3 FIAT-Denominated Fee Oracle 17 17.4 Token Incentivization 18 17.5 Reasoning Behind Not Including Users in the Data Exchange 18 Economy 17.6 Fee Model 20 17.7 Token Burn 20 17.8 Game Theoretic Effects 20 17.9 Participation Through Voting 20 18 Possible Issues and Hurdles 21 18.1 On-Chain Scaling and Transaction Flooding 21 18.2 Need for ETH for Gas by Users 21 18.3 Transition to Standalone Chain 22 18.4 Long-Con Game by Data Providers 22 18.5 Token User Experience 22 18.6 Centralized Exchange Rate Oracle Censorship 22 18.7 Applications Can Share Decrypted Data 23 19 Team 23 20 External Resources 25 !3
1 Abstract In recent years centralized platforms have revolutionized the way individuals find jobs and employment, build up a reputation, and establish professional networks. As a result, these platforms retain ownership of massive amounts of professionals' data and information that only exist within these closed networks. Applications are disincentivized from sharing information and data because of the competitive marketplace and their reliance on data monetization for business purposes. Each platform wants to hold an advantage over its competitors. The Dock protocol aims to solve this fundamental data hoarding problem by implementing a protocol that actually encourages data exchange between platforms. By utilizing the secure Ethereum mainchain, data encryption, as well as a token model, the Dock protocol will allow users to take control of their data and exchange it between applications. The Dock token model will simultaneously motivate applications to exchange information by making it beneficial for both platforms involved in the transaction. Both the users and the applications primary needs are met. Users get full control of their data and applications receive compensation for data exchange. 2 Summary The Dock protocol is a special purpose decentralized data exchange protocol. This protocol is intended to incentivize the exchange of work experience, reviews and professional connections, and can be expanded to include any type of shareable data. In addition, the tokens serve as the proposal and voting utility to guide the evolution of development and changes to the Dock protocol. All token holders can contribute proposals and vote on changes and updates they'd like to see implemented. Applications receive tokens for data exchange. Users will have absolute control over their data through the use of a hosted third party service. 2.1 Problem Definition The internet has changed the job market forever. The average professional person changes jobs 12 times during his or her career in the US. Freelancing as a profession grows every year. Currently, 35% of the current US workforce perform as freelancers, and this percentage is projected to accelerate to 40% by 2020. Professionals rely more than ever on centralized platforms to find work opportunities and sustain their careers. This $200 billion industry is controlled by data monopolies including LinkedIn, Upwork, Glassdoor, and others. These platforms centralize user data, making it impossible for individuals to transfer their hard-earned experiences, reviews, and ultimately their value. As a !4
result, the industry provides fragmented experiences, and the internet becomes less connected. In previous years, LinkedIn provided an open API. 30,000 apps were built off this API and innovation flourished. In February 2015, LinkedIn made an announcement stating that it would restrict public API access. Consequently, many businesses have died and industry innovation has slowed. We strongly believe users should own their personal data and be able to easily share it across applications. We believe in innovation and in aiding companies in pursuing this. We believe in a connected internet, the power of technology, and its potential global impact in improving lives. 3 High Level Overview and Vision 3.1 Users Anyone can use the Dock protocol and easily port their data to and from participating applications. Users have access to automatically updated profile information, employment history data, and any type of platform data in an integrated fashion. Hence, they will not be bound to any single platform for their employment data, freelancing, or personal reviews. Users will possess signed and verified content and choose where it is shared, thus owning their own data. They will also choose where to share the data received from other platforms in their name. It is up to the user to opt-into sharing any particular data with any specific application of their choosing. 3.2 Applications: Data Providers and Consumers Any application can be a data provider. Data providers are special on-chain non-user accounts which can request to push signed data to the users' profile. It is important to note that the application does not publish data directly to the blockchain, but rather sends it to each user individually. Examples of such data would be CV updates, platform reviews and ratings, freelance transactional data, Git commits, application specific data, and so on. For an application to be able to consume data from the user, it requires spending tokens to access the data. The alignment of interests between the user and the application is achieved via the Dock token model. [SEE SECTION 17] 3.3 Proposal and Voting Mechanism Community participation through voting and proposal creation is crucial for the continued growth and development of Dock as a mechanism to make iterative changes and updates to the Dock protocol and network. This voting mechanism enables Dock to engage the community and user base in maintaining a system that evolves according to the needs of its users. !5
4 Possible Future Use Cases When considering how much value LinkedIn as a single data silo has captured, it is easy to imagine how much more valuable an open data protocol can be. A protocol that combines, without any friction, a plethora of different types of data relevant to helping people find the right type of work, Dock will, therefore, help create future applications that are not possible today. These existing applications all have the same problem: data sharing. Dock solves this problem by aligning the interests of work-related data sharing through a crypto economic model while making the technical integration as simple as possible. 4.1 Automatic Relationship Mapper Current applications need to be able to observe any type of interaction between users within their own application to map the relationship as a social graph or contact list. The Dock protocol makes it possible for a third-party application to receive push updates from a user's interactions on another application. In this case, the user acts as a sovereign data broker between applications. This gives the user full control over their own data and information. The third-party application can, in turn, update a state, such as upgrade a relationship in a social graph data format from an acquaintance to a colleague, based on external application data. This data, in turn, can be pushed back to the user. 4.2 In-Work Application Performance Mapper Another example of a third-party integration could be the current business applications such as task managers, collaborative document writers, or even file storage applications, pushing interactions to the user through the Dock protocol. This interaction of based work-related data can, in turn, be used selectively by third-party applications to assess individual work history and performance. Third-party applications can create reputation scores, network centrality scores, performance reviews, or even vouch for whether an individual works at a specific company. 5 Usage of Ethereum (Reasons) The Ethereum main chain was chosen as the preferred chain for the Dock protocol to run on due to several benefits: 1. Network effect and strong ecosystem. 2. Multiple good scaling roadmaps. 3. Easy integration with third-party smart contracts and applications. 4. ERC201 token standard and easy integration with wallets and exchanges. 1 https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md !6
6 Core Dock Protocol Features 6.1 Data Exchange Model Dock uses the IPLD2 specification developed for IPFS to perform content addressable data exchange. Furthermore, users form an ad-hock publish-subscribe (pubsub) network between each other. All content is IPLD addressable with the content within being by default encrypted with the receivers on-chain stored public key. There is no need for a direct exchange of the packet between the user and the application because the encrypted data packages are also partially replicated by other nodes. These nodes cannot decipher what is stored in the packages as they have been encrypted with the destiny application's public key. IPFS makes it possible to discover and resolve the integrity of these packages without the originator of the package needing to be online. If the originator is online, however, the discovery of the data should be considerably faster. Originators of the data need to be online only if the data being pushed by them is fresh and has never been published to the network before. 6.2 Encrypted Secure Snapshots of Data APP A APP A/User contract User own history APP B/User contract Name: Homer [Address: AAAUUU / 5] Address: AAAUUU [Address: BBBUUU / 3] Age: 30 Hash: ABCDEF Entry: 5 Hash: ABCDEF Likes: beer IPFS: AAAAAA IPFS: BBBBBB Data hash: ABCDEF Encrypted data on IPFS Re-encrypted data on IPFS (re-encrypted for IPFS: AAAAAAA App B) IPFS: BBBBBB All data is by default encrypted, and it is only decrypted by the parties exchanging the data. The user selectively decides to perform push updates for any data format to a specific application by first encrypting the content with the receiver's public key. Encryption and versioning happen in the following order: 1. The user stores the snapshot hash of the data created or shared by an application and pushed to the user. The application always wants to have the latest version of the data. Snapshot hashes make sense because it is possible to tie this data to a specific time in the blockchain without needing the entire history to have useful data. 2 https://ipld.io/ !7
2. The unencrypted snapshot is used to create a hash. This hash includes the previous version of the hash as well as the most recent Ethereum transaction and the block hash of the previous snapshot hash. 3. The user takes the snapshot hash and encrypts it with the application's public key and includes the IPFS addressable hash of the data in the application-user pair smart contract. 4. The application observes the Dock Ethereum application-user pair contract and recognizes that a package is addressed to it. The application requests the encrypted package over IPFS from the user or an intermediary node. 6.3 Voting Utility The voting protocol is dependent on IPFS where the data is stored and will hold the hash of the IPFS data store. The data stored includes the proposal, the answer choices, the start and end time, author and vote identifiers. MetaMask will be used to verify whether someone is qualified to cast a vote based on the number of dock tokens held in the wallet and the contract will calculate the number of votes that can be attributed to that person. 7 Reasoning Behind These Steps Dock makes use of IPFS to be fully content addressable and as compatible as possible with other Ethereum ecosystem applications and smart contracts. As of this writing, IPFS adoption within Ethereum smart contracts is picking up and its trajectory indicates that it is going to become a standard soon. Data is anchored to a newly created application-user pair contract to which only the specific application and user have write capability to. This contract is effectively an updatable, verifiable, symmetric, hash-exchange channel for the application and user. Snapshot versioning can be publicly verified through this channel. By encrypting the updates to the different applications' public keys, the user remains in full control of who receives and can interpret the push updates, even though the IPFS hashes and, therefore, content are publicly available. The data itself is not exposed to the public in unencrypted form. The public only knows that a push update happened. 8 Possibility of Public Data Users can opt to publish specific unencrypted data formats to IPFS directly. That way anyone can receive that data, validate its integrity, and verify whether it is the latest version, without having to make any data requests to the user. We envision that users will opt to publish some core insensitive data in this manner. Such data could include but is not limited to: 1. First name and last name !8
2. Location 3. Education 4. Licenses and Certifications 5. Public contact information such as work email Users need to be aware that any data published in this fashion through the Dock protocol to IPFS is irreversibly on the internet and cannot be taken back. 9 Data Exchange Model 9.1 Chainpoint Modification Dock utilizes the open-source standard for anchoring data to blockchains called Chainpoint3. Chainpoint was originally developed for the Bitcoin blockchain, and only for anchoring data to a single chain. Dock uses a modified specification of Chainpoint which enables not just anchoring updates of data formats to a single blockchain and including it in a single block, but, in addition, makes it possible to prove that the update was created at the time of a specific block as well. This is achieved by making the following Chainpoint blockchain receipt modifications (changes in gray): @context The JSONLD Context of the document type The type of Chainpoint Receipt being described targetHash The hash value (of the unencrypted snapshot) being anchored in hex string format prevHash The hash value of the previous hash of the blockchain transaction being referenced currentBlock Most current Ethereum block hash being referenced at the time of the update merkleRoot The merkle root of the tree in hex string format proof An array of hash objects connecting targetHash to merkleRoot anchors An array of methods employed to anchor data to blockchain(s) Ipfs address Address of the encrypted file Chainpoint data of encrypted data being shared with specific applications is structured exactly the same. 3 https://tierion.com/chainpoint !9
The user is the only party selectively sharing data with the application in the user-application contract. He/she is the only party that knows what in fact the latest update of the data is. The application can only know what the latest data is depending on what the user wants to share. It is important for the application receiving the encrypted data to know that it is receiving the latest version being tracked publicly on-chain. Once the application decrypts its update with its own key, it can use it freely. After sharing the data with an application, the user cannot control whether the application further shares the data with third parties. By including the currentBlock hash we can establish the earliest that update that could have been generated by the user. It does not make it possible to define the exact time something was created. Ethereum block hashes are unpredictable but provable, any user can know with certainty that the update was not shared publicly before the time of the block creation. The prevHash is the hash of the Ethereum transaction which included the previous connected update. This way any user can now prove that a certain update happened after another one, and is not a fork of an older update. The prevHash field is important for applications which do not permanently connect to the Ethereum main network but still want to share relevant anchoring data. Hence, when they decide to check the anchoring to Ethereum they can prove it at any given time. For more information on the Chainpoint protocol standard see the Chainpoint white paper4. 9.2 On-Chain Data On-chain data is solely chainpoint anchoring data which includes: • Chainpoint Versioning • Content Hashes • Merkle Roots • Merkle Proofs • Git Hashes • Ethereum Dock Contract StatePossibly External ID Verifiers (In the case of civic, only predetermined) No user data is stored in an encrypted or unencrypted form on-chain. No application can infer the content of the snapshot hashes from on-chain data. Applications can download the encrypted versioned on-chain data from the IPFS hash pointers. They won't be able to make sense of it unless the user creates a newly encrypted version specifically for that application. This is how encryption of updates is used for application data access control. The user can choose to publish unencrypted updates and data to IPFS directly. Applications can then directly download those updates from IPFS without a prior permission from the user. 4 https://github.com/chainpoint/whitepaper/blob/master/chainpoint_white_paper.pdf !10
9.3 Off-Chain Data Off-chain data includes all data format information, including prior updates and snapshots, in both encrypted and unencrypted form. As long as the user opts to share data selectively with more than one application, the stored encrypted data should require more storage than the unencrypted data. Performing this client-side encryption and chainpoint anchoring to each relevant user-application contract requires both additional storage on IPFS as well as slightly higher computational resources on the client side. Nonetheless, for the majority of users, these operations and storage requirements should be met even on mobile devices. Depending on semantics, all IPFS addressable data is off-chain, but the content hashes through which the data can be found are all published publicly and in hashed snapshot form on-chain. Any underlying data published to the IPFS network overall in this fashion is just as accessible as on-chain data. 10 User-Application Contract Pairs Each user generates a new contract for keeping track of the status between him/herself and any application. This makes it possible to push separate updates to different applications all at once on-chain. Additionally, the attribution of who pushed what is very simple, and any 3rd party applications can easily identify which applications are interacting with any particular user, therefore proving that any data they might receive is, in fact, coming from that application or user. Only the application and the user have write access to their mutual contract. This also makes it simple to keep track of the tit-for-tat data and payment exchange between applications and the user's contract with the application. Enforcement of the stepwise relationship becomes relatively trivial on the contract. The main benefit is that we can accommodate Ethereum's (reasonable) limitation of one state transition per block, per contract. By having user-application pair contracts, each party can initiate multiple state transitions/data updates per block. 11 On-Chain Data Attribution Verification Applications receiving data from users will know if any data format was originally pushed from another application to the application-user contract. Applications can both sign the pushed content itself within the IPFS packet, as well as the version hash the user publishes to the user- application contract. Only when the data format within the IPFS package has been signed, the user can manually withhold the content signature of the application, however, in this case the application might not sign the version hash on-chain in the next round. !11
Applications can have various levels of verification requirements. Loose verification requirements might only require the data from the user. Mid-level requirements would require a content signature by the other application. Strong verification requirements would include on- chain signing of the version hash the user pushed to the blockchain. 12 On-Chain Vouching and Signaling Any account can sign on-chain data format snapshot hashes of any other account. By doing so, one signals to the rest of the network that the content of that version hash is meaningful and correct. Vouching signatures created in this fashion appear in a unilateral user contract as a repository of vouchers by that user, while pointing to the signed transaction content. Use cases include, but are not limited to: 1. Employers vouching for the truthfulness of their employees' work history. 2. Schools vouching for the truthfulness of their students' credentials. 3. Students of a school vouching for the integrity of another student. 4. Identity services vouching for their citizens' identity information. 5. Applications vouching for the truthfulness of an application related data format. Vouching itself does not verify the authenticity of the underlying data. Instead, a secondary trust/ reputation layer needs to be used to assess how good a signal any individual signature is. Users have no control over who can sign and publish signatures to the blockchain as any user can vouch for any published content and publish it on his/her contract. Signing and publishing of signatures of versions/data are fully at the discretion of the signing party. For data compression purposes, only the Ethereum transaction hashes of the to be verified snapshot/data will be signed by any entity. This ensures signature output will remain both small enough and verifiable. User/Application On-Chain Update Hashes Signature of HASH Signature Stack !12 User Controlled
13 Public Name Registry The public name registry will be the last part to be developed by Dock as we expect broader domain association methods to emerge soon in the Ethereum community. We will actively monitor the community for such developments and decide which method makes the most sense for domain name association with Ethereum addresses. In order to facilitate simple application authentication of existing services and improve user experience, Dock will introduce an additional service to allow anyone to map the domain name to the Ethereum address. This public service will allow domain owners to associate their domain(s) with the Ethereum address they use to publish and sign data. Internally this will be a two-way mapping between the Ethereum address and a domain name. Internally the public name registry is an Ethereum smart contract with the well-known Ethereum address. 13.1 Name Verification In order to verify domain names, one should first add a proper file under the domain namespace. For instance, if one claims that the domain example.com corresponds to the Ethereum address of "1234abcd", he/she should create a file under "example.com/1234abcd" with contents of "1234abcd". Next step would be to invoke from a given Ethereum address contract method with the desired domain name. This step involves the use of the oracle that will perform http or dns request resolution and validate domain authority. There can be only one Ethereum address associated with the domain name. Thus, if one wants to change the address for the domain, he/she has to remove the original verification file first. Upon adding the new address, the registry contract will try to revalidate the existing domain and will remove it if verification fails. Domain already Verification exists? succeeded? NO YES Add domain to the Add example.com Verify new domain registry YES NO Remove domain NO YES Verify domain Fail adding domain Verification succeeded? !13
There are several options on how data can be verified: 1. HTTP url: A file within the domain namespace with the same name and content as the Ethereum address 2. DNS record: A TXT record with the name and the value of the Ethereum address: "1234abcd.example.com. TXT 1234abcd" More options can be added at a later time. It is possible to use more than one verification method for a domain. In this case, at least one valid check is required to consider the domain verified. 13.2 Reverse Address Lookup Because mapping is two-sided, it is possible to lookup an Ethereum address for a given domain name. And because only verified domain names are stored in the registry, one can be sure that there will be only one valid domain stored. 14 Data Types and Standard Formats Dock data formats are essentially the equivalent of microformats5 for Ethereum smart contracts. Any type of data formats with any type of content is possible on Dock. The web microformats community already has a resume based microformat example that is universally machine readable6. Based on our team's background at remote.com, we will commence with the example of a resume and work history data format. The Dock proposed microformat model is content addressable via IPFS and anchored via the modified Chainpoint approach. Data formats are not prescribed in the Dock Ethereum smart contract. Users can choose to create, snapshot, share and use whatever data formats the community settles on. Data formats are only useful to users as long as a large number of applications accepts them. 14.1 Initial Format Types Because mapping is two-sided, it is possible to lookup an Ethereum address for a given domain name. And because only verified domain names are stored in the registry, one can be sure that there will be only one valid domain stored. Dock will initially create a number of ready-made data formats. All data formats are opt-in and voluntary for all users and applications. Theoretically, non-employment related data formats can be used with the Dock approach as well. Data format examples include, but are not limited to: 1. Employment history format (resume) 2. Social Graph (mutually signed contacts) 5 http://microformats.org/wiki/Main_Page 6 http://microformats.org/wiki/hresume !14
3. Licenses (relevant certifications/licenses) 4. Education (education history) 5. Application specific formats All format data consists of key-value fields. Keys can be nested. It is up to the format data creator, such as the application, to determine whether the actual data is stored in JSON, XML, CSV, or another format. Format types cannot be updated by a central party. This implies that if an application wants to alter something in the structure of a data format which it established previously, it cannot arbitrarily tell clients to change the format. The clients need to opt-into updating their format as well. This is partially why data format signaling is very important, otherwise, data formats would have too much power over the network. The greater the inertia to change over time, the larger the Dock network becomes. We predict that clients will both do signaling as well as upgrade data formats semi-automatically. Ultimately stored data is only as useful as long as applications accept the format. We have refrained from including an auto-update format method. We have seen that historically this has been used by closed source API and software vendors as a way to keep 3rd party applications from relying on their format, while still being able to claim that their data/service is openly available. 14.2 Data Format Signaling We believe that one major reason why digital formats take a long time to become industry standards is that users of these standards have no way of signaling to one another what they use or prefer. There is currently no good way to converge rapidly on a single preferred standard. Therefore, we introduce data format signaling as a convergence mechanism in Dock. Applications which are also token holders are able to signal on their contracts which data formats they accept. This is done via a simple list with data format names. This is not a voting method, but rather a public signaling method. The signals are non-binding and do not have any effect on others in any way enforced by the contract. Other applications and users can scan the Ethereum chain and Dock application-user contracts for signals as well as for the number of tokens associated with their addresses. It is up to the applications and users to modify their signaling accordingly. !15
15 Snapshots of Individual Key-Value Pairs Within Format Data The smallest atomic unit within a data format that can be versioned is a key-value pair. There is no upper bound to how large a set of these pairs can be. If a large number of pairs requires frequent updating then we advise to snapshot the individual pairs. 15.1 Rare Number of Updates If the number of updates is sparse, then we advise to only snapshot the overall data formats and have the snapshot hashes be merkle roots. This way, the individual pairs are the merkle leafs. That would make it possible to selectively share down to individual pairs, while still verifying to any application that the pair is part of an up to date version hash on the Ethereum blockchain. 16 Experience Format Example Tag Data Type Experience event Summary Computer scientists Employer Remote.com, Inc. Location San Francisco: 37.7749° N, 122.4194° W Start (UNIX time) 1511377952 End (UNIX time) 1577836800 Multiple experience formats combined can constitute an employment history format. 17 Token Model Today, applications are naturally incentivized to hoard data about their users. User data is most often non-accessible to the user or third-party applications. !16
More malicious data strategies even include user data gathering, open ecosystem integration in return for data from third-party applications, and then shutting down third-party application data access. This is an example of Microsoft's internal strategy of "embrace, extend, extinguish7". Linkedin has also utilized similar tactics. Even if an application was not malicious in this manner, other applications would take advantage of its data and outcompete them by not providing data in return. This is a common problem that can be solved with token-based modeling. 17.1 Long-term Trust Building The token's utility allows applications to exchange any data with each other, with the user controlling sharing of their data. It makes long-term trust on the protocol possible. Users become brokers of their own data. Applications are incentivized to keep exchanging data with one another in the long term. Users can be reasonably sure who has which of their data as they opt-in to sharing specific data with specific applications. 17.2 Token Utility Beyond the token being used as a means of exchange within the Dock contract system, it is also possible for token holders to vote in a regular poll on what next features should be developed for the Dock contract system. This is important because Dock is intended to both give sovereignty over their data back to the user, as well as incentivize application ecosystem collaboration. The token is intended to solve the Commons problem of data sharing for the web as a whole. Therefore, adding a polling mechanism is a way to have on-chain governance of this new commons. 17.3 FIAT-Denominated Fee Oracle Token costs, as well as any exit fees, will be denominated in FIAT. It is also possible that a future stable cryptocurrency could be used such as Basecoin, Dai etc., should one reach market maturity and reasonable long-term, real-world stability. This is important because users and applications will be able to predict their long-term costs. A side effect of this approach is that if the token price on the open market goes up, proportionally fewer tokens will be bought by users and applications. If the price goes down, more tokens will be bought by users and applications on the open market. In the long term this should give a lot of stability and predictability to the exchange rate of the token. 7 http://www.economist.com/node/298112 !17
17.4 Token Incentivization Tokens will be used to incentivize applications to share their data with users and other applications. Users will have control over which applications can access and update their data. It is important to note that tokens will not be used to incentivize users to share data with applications. It is imperative to motivate applications as opposed to users due to how data platforms currently operate. Applications do not share data because their peers and competitors can use it against them to create a competitive advantage. This is a major problem in today's data landscape. Once this is understood, it becomes clear that a token incentive model that encourages applications to share data, not hoard it, is absolutely necessary. In order for a model like this to work properly, the users must have full control of their own data. A drawback of this is that users should not value their data in terms of the money they receive. The user data is almost always disproportionally more valuable to the application than to the user since applications create added value from it. If we simply created a marketplace where users can sell their data to applications for money, it would be a race to the bottom. Instead, in Dock users will value their data as is, but will not receive money in return for it. There will be a price for applications to pay, and applications which share data with the user will be paid, but not the user itself. This is a new type of market mechanism which we believe will be extremely important to test. This is Dock's core contribution to cryptoeconomics. 17.5 Reasoning Behind Not Including Users in the Data Exchange Economy If tokens were used to encourage users to share their data, it could lead to various issues. Users could send out faulty data in an effort to maximize their profits. Additionally, users could also practice deceitful tactics like faking accounts and playing the system as a mean of attaining income. Users should not be burdened with worrying about the value of their data. If users were included in the token economy, they would have to consider microtransactions and payments involving their data on a daily basis. By incentivizing applications and not users, the Dock protocol will make the user experience as easy as possible. This action will also discourage malicious tactics. Applications will provide compensation to other applications for accessing users' data. Users, however, will not pay applications for their own data. Instead, any time a user sends data that is attributed to another application, a payment will be triggered within the Dock protocol. This payment is not necessarily simply rerouted tokens. Rather, it might include re-creating burned tokens, without ever surpassing the original amount created initially. !18
For example, imagine a user sends data first created by Application A to Application B. The Dock protocol verifies this transaction and triggers a payment to be sent from Application B to Application A, which would be Application B's payment to access the data. When Application C accesses the same data, the tokens paid by Application C are burned or removed from the total supply of tokens on the Dock protocol. 1 2 App 1 User / App 1 3 4 User Protocol App 3 5 6 7 App 2 User / App 2 1. App pays for consumed data 2. Contract proxies payment to user 3. User notifies protocol to pay for data usage by App 1 4. Protocol pays to the app that created data 5. Another app consumes same data 6. Contact proxies payment to user 7. User sees that this data was already consumed and discard the transaction When a user is sharing his/her data, he/she submits an update to a smart contract designated for the receiving application. The contract is tracking hashes of the last updates submitted by the user as well as the hash of the last update that application consumed and paid for. The user can only push an update if the application has paid for the previous one. This way we can ensure that in order to continuously receive updates, application will be forced to pay tokens. This is a similar tit-for-tat relationship as in Bittorrent, but enforced by a smart contract. This also ensures that applications always consume all updates and have constant data updates. APP/User contract Last update: null Paid update: null User submits update APP/User contract Last update: AAA User Paid update: null APP/User contract Last update: AAA User Paid update: null User can't submit another update App pays for first update until app pays for first one APP/User contract App Last update: AAA Paid update: AAA User can submit another update APP/User contract Last update: BBB User Paid update: AAA !19
17.6 Fee Model Using this model, applications will indirectly pay other applications to access their data. However, applications will not be able to control which other applications receive this data. Users will remain in ultimate control of their own data. The fee model for associated data exchange is not final and can be modified. The percentage of the payment for associated data is changeable through an on-chain percentage mechanism. If an application pays a flat rate fee to a user for their data and no third-party application data is included, 100% of the fee would be burned and therefore it would be unusable. 17.7 Token Burn There are a number of reasons why burning Dock tokens is an effective mechanism: 1. There should be a cost for applications to acquire user data. 2. Simultaneously, users should not receive those tokens as an incentive to avoid malicious behavior. 3. General token holders will benefit from the total supply of the outstanding tokens decreasing due to the burning mechanism. 4. Any percentage of token burn will act as an anti-spam and anti-DDoS mechanism for the smart contract. 17.8 Game Theoretic Effects The Dock protocol represents a two-sided market8. However, Dock demonstrates a unique dynamic in that the user side of the marketplace does not have any monetary incentive to interact with the product or their own data. The real value that users will receive from the system is ultimate control over their own data and data portability. This is a major benefit for users. No current major data platforms offer complete control over personal data. Since users will not be motivated by monetary gains, they will be impartial towards other applications and the quality of the data. We believe this will lead to users choosing the best data providers and applications. Thus, the overall quality of data should increase during the cycle of the protocol. 17.9 Participation Through Voting Users who are token holders of Dock will be able to participate in the evolution of the protocol and network by voting on updates to the protocol to ensure that the individual users are represented in the token mechanics. 8 https://www.aeaweb.org/articles?id=10.1257/jep.23.3.125 !20
When a new proposal is published, DOCK token holders will be able to use their tokens to enable their right to vote on the new proposal. Only token holders will be able to vote with each token representing one vote. A number of tokens will be required to submit to the application for the length of the voting period, at the end of which the results of the vote will be finalized based on the majority of votes. There will also be a minimum number of votes and participants required in order for the results of a vote to be finalized and the vote will be disqualified if there is less than the minimum amount of participation. It is important to mention that tokens are not locked during the voting. 18 Possible Issues and Hurdles 18.1 On-Chain Scaling and Transaction Flooding The Dock protocol will need a relatively high transaction throughput for the smart contract to operate with such a large number of users and applications. Currently, Ethereum can not support the required number of transactions for such a global system. The Ethereum community momentarily has scaling efforts intended to solve this problem. Regardless, any type of global state blockchain system will be prone to transaction flooding issues. We have witnessed similar issues in the past. One example is fake transactions being generated on the Bitcoin network as an attack method. Theoretically, the Dock protocol could experience a denial of service attack. The difference, however, is that the mainchain will require a number of tokens. Performing such an attack over a long period of time would prove to be extremely costly. 18.2 Need for ETH for Gas by Users The Dock smart contract and protocol are reliant on the Ethereum mainchain. The Ethereum smart contracts on the mainchain rely on Ether to pay the gas requirement for running smart contracts. Both users and applications need Ethereum and Dock tokens in order to use the Dock protocol. Applications need both in order to send and execute transactions. Users need both so they can send snapshot data of their latest user-related data. This complicates matters for the users and applications and makes using the Dock protocol more difficult. These issues can be mitigated through the use of background automation, hosted wallets, and hosted services. !21
18.3 Transition to Standalone Chain It is possible that the scaling efforts of the Ethereum mainchain do not produce adequate results. It is also possible that transactions on the Ethereum mainchain become too expensive for the average transaction moving forward. In this event, we reserve the right to create a new standalone global chain. This is something we are strongly against, however, it will be made use of in the case no other choice is left. This chain would be dedicated solely to the Dock protocol and smart contract. Procedures will be put in place to ensure the transition is as smooth as possible. The best method for such a transition would be a publicly known snapshot date. All applications and clients of the users would be upgraded to a client that switches over to the mainchain at a certain snapshot date. 18.4 Long-Con Game by Data Providers Data providers can theoretically set up a large number of fake user accounts. These accounts would then be filled with meaningless data. Applications may unknowingly pay for this faulty data. This would allow these data providers to steal tokens from other accounts. However, it would be quickly detected by other applications that the data is false, rendering this strategy useless. Applications would at some point detect that data coming from certain users is useless and would simply stop paying for updates. These accounts would also have to go through regular registration/signup process in each application they want to steal tokens from. Many applications already have means to prevent such malicious behavior. 18.5 Token User Experience End-users might not want to take on the cognitive load of buying a small amount of Ether, setting up their wallet and data application, and approving applications. This is required in order for the users to be sovereign and have control over their own data and tokens. Therefore, we believe that similar to Bitcoin mainstream adoption, the majority of users will opt into performing all these tasks automatically through a hosted third party service. 18.6 Centralized Exchange Rate Oracle Censorship The centralized oracle providing token-FIAT life exchange rates to the Dock smart contract is a possible central failure point. The following scenarios are technically possible: !22
1. The proxied exchange rate received by centralized exchanges is bad, and therefore the oracle relays bad data. 2. The oracle is down, making the Dock smart contract rely on the last known exchange rate for fee calculation. 3. The oracle is shut down by hackers or authorities. 4. The oracle is hacked and relays false exchange rate data. 18.7 Applications Can Share Decrypted Data Applications can decrypt and share user-related data with applications not approved by the user. Once an application receives user-related data, there is no restriction in regards to how the data is used. The user can stop sharing new data with the application sharing with non-permitted applications. While users always opt-in to any data sharing, they can opt-out of that relationship at any time by simply not updating the user-application pair contract anymore. This is both positive and negative. It can be beneficial, allowing users the option to share certain updates of basic data in a public manner. This means the snapshot hash which they commit to the Dock user-application pair contract would be committed to IPFS itself by the user in an unencrypted format. This allows anyone to discover the data on IPFS itself and make use of it without having to ask permission, notify the user, or pay tokens. There are many application use cases that show this can be useful for the applications and the users. However, this can also have a negative side. Wrongly configured clients could possibly leak data this way by publishing unencrypted data to IPFS. Once a user publishes unencrypted data to the IPFS they can not return or delete the data. It is forever in the public domain. This could create issues for certain user groups. 19 Team Nick Macario - Co-Founder Previously founder of branded.me Nick is a multi-time founder and technology executive with an exit. His previous company was branded.me, a professional networking site which grew to millions of users and was recognized for many awards and publications. Elina Cadouri - Co-Founder Previously Co-founder Outsource.com Elina is a multi-time founder and veteran marketplace operator. Her previous company was Outsource.com, a freelance marketplace transacting tens of thousands of jobs and millions of dollars in revenue. !23
Stenli Duka - CTO Previously @ MotiveMetrics Stenli is a seasoned full-stack engineer and has led multiple teams. His passion is machine learning, natural language processing and complex algorithms. He previously spent time at Motive Metrics as the Director of Engineering. Evgeniy Zabolotniy - Lead Blockchain Engineer Previously @ branded.me Evgeniy brings over 10 years of experience as a systems architect, developer and security specialist. Previously he worked with Nick at branded.me as part of the founding team, and has been a core team member for over 3 years. Todd Scheuring - Head of Design Previously @ Honeybook Todd brings over 10 years of design and interactive development experience. Prior to Dock, he was a senior UX designer for Honeybook and led design for the network and growth teams. Jeffry Harrison - Director of Partnerships Previously @ The Muse Jeffrey brings years of industry experience in both sales and recruiting. Prior to Dock he was a Team Lead at The Muse where he helped grow the sales team from 3 to over 40, and was responsible for some of the largest deals the company achieved. Gabriel Moncarz - Data Scientist Previously @ Sabre Corp Gabriel brings over 10 years experience as a Data Scientist, Computer Engineer, Magister in Quantitative Finance and Magister in Data Mining, Big Data and Knowledge Discovery. Previously he was with Sabre Corp. Fausto Woelflin - Senior Engineer Previously @ Ampush Fausto is a senior engineer who develops python-based microservices with Elasticsearch, Flask, Cassandra and Docker. He previously was with Ampush. Piotr Swies - Blockchain Engineer Previously @ Hunted Hive Piotr is a software engineer, architect and full-stack developer with over 10 years of experience, skilled in designing and implementing distributed systems with microservices architecture. He was previously with Hunted Hive. Sergey Ermakovich - Lead Frontend Developer Previously @ branded.me Sergey brings 10 years of experience, specializing in front-end web development, reactive functional programming (RFP), and UI architecture. Sergey comes from branded.me and has been with the team for over 3 years. !24
Samuel Hellawell - Senior Frontend Developer Previously @ branded.me Samuel is a senior engineer with a passion for developing quality applications, games and websites. He's started and sold his own company, and was part of the founding team at branded.me prior to Dock. Maciek BodekSenior - Frontend Developer Previously @ Shortlist.co Maciek is a frontend engineer with ten years of experience crafting web products and complex interfaces ranging from portfolio microsites to agile SaaS startups. 20 External References 1. Vogelsteller, F., Buterin, V. (2015, November 19). ERC-20 Token Standard Retrieved from: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md 2. IPLD Retrieved from: https://ipld.io/ 3. Vaughan, W., Bukowski, J., Wilkinson, S. (2016, June 29). Chainpoint: A scalable protocol for anchoring data in the blockchain and generating blackchain receipts Retrieved from: https://tierion.com/chainpoint 4. Git Retrieved from: https://git-scm.com/ 5. Noms Retrieved from: https://github.com/attic-labs/noms/blob/master/README.md 6. Microformats Wiki Retrieved from: http://microformats.org/wiki/Main_Page 7. King, R., Celik, T., Jones, G. hResume Retrieved from: http://microformats.org/wiki/ hresume 8. Deadly Embrace (2000, March 30). Retrieved from: http://www.economist.com/node/ 298112 9. Bertani, T. Understanding Oracles (2016, February 18). Retrieved from: https:// blog.oraclize.it/understanding-oracles-99055c9c9f7b 10. Rysman, M. (2009). The Economics of Two-Sided Markets Retrieved from: https:// www.aeaweb.org/articles?id=10.1257/jep.23.3.125 !25


text: Welcome We all strive to look our best and Silkwood Treatment Rooms is a great place to come for those looking for that bit of extra help in fighting off the ageing process. The treatments offered are performed by fully qualified professionals, in complete privacy, our discretion is assured and we aim to keep our prices affordable.Botox & Dermal FillersWrinkle relaxing injections, commonly referred to as Botox®, can combat both fine lines and deep wrinkles and dermal fillers can be used to fill minor lines and wrinkles, they are particularly effective around the eyes, nose, and mouth. Fillers can also be used to enhance lips by providing more volume and definition.

subset: commoncrawl


text:
Prochem's EZ-Charge Water Softener removes the calcium and magnesium minerals from the water and replaces them with sodium, which does not form a scale or interfere with detergent performance. Requires no electrical source for regeneration. It can be recharged wherever there is a fresh water source. Easy to use and install in any make of truckmount.
|Product #
|EZ-Charge Water Softener


text:
This content is PDF only. Please click on the PDF icon to access.
Definition of anaerobes, laboratory methods for their culture, classification and taxonomy, environmental factors, biochemistry and -metabolism, industrial importance of obligate anaerobes. The anaerobes of medical and veterinary importance are surveyed in a chapter of 25 pages that briefly characterizes the syndromes they cause and the related pathophysiology. References; subject index.
Anaerobic Bacteria: A Functional Biology. Ann Intern Med. 1991;115:416. doi: https://doi.org/10.7326/0003-4819-115-5-416_6
Download citation file:
© 2019
Published: Ann Intern Med. 1991;115(5):416.
Infectious Disease.
Copyright © 2019 American College of Physicians. All Rights Reserved.
Print ISSN: 0003-4819 | Online ISSN: 1539-3704
Privacy Policy
Conditions of Use


text:
Data is like water, water is everything, and it can destroy everything. How can we use big data and make the data operation more perfect?
The first trick: find the data.
In order to achieve business goals, many companies have spared no expense to invite data analysts, and aim to expand the territory through data operations. But not to ask the data analysts to sit back and relax, many people can only call it a data engineer, because they have not yet reached the level of analysts, empty theory, but no business sense, do not know what data to use to analyze I fell into the fog of the clouds.
They poured the untidy data that had not been sorted out into the CEO, and did not explain the meaning behind the data, what the customer's behavior was, what the meaning of the curves was, and so on. When the CEO got these huge amounts of fragmented data, they were in a state of collapse.
The CEO needs to know at a glance that the data reflects the ambiguity, what is the market trend? Instead of spending extra effort on the data to interpret the data. For commercial data, there should be an antenna that is as sensitive as an octopus. For example, when the number of elderly people in the past two years is rising, it can be predicted that the sales of products related to the elderly will increase.
Data analysts need to get in touch with the business department, even turn to the business department, understand the business department and develop business sense. What the CEO needs to look at is the analysis of the data, which can accurately grasp the direction of the market.
The second measure: communication data.
Many industries are hoping to make changes through big data. E-commerce has a natural advantage in data acquisition, but it is rarely perfected in data analysis. Today, physical business is paying more and more attention to data analysis. As a result, the company actively collected data, and later found that the data was very confusing and scattered, and I did not know what to use. The data could not be correlated, and the hidden content could not be analyzed. Gradually, the data died in the report.
At the time of data collection, the accuracy of the data needs to be ensured, and the standard and detailed classification are required. This requires the data analysts and the business departments to interconnect and avoid data collation. The data analyst must objectively analyze the data in the hands of the salesman to give the CEO a true analysis result.
Communication data is the communication between departments, the communication between departments and data, and the communication between data and data. In the business scenario, most of the time, the data between different dimensions such as passenger flow, transaction rate, collocation rate, customer unit price, efficiency, and experience rate are interconnected and analyzed to draw conclusions. For example, the passenger traffic doubled and the transaction rate decreased. It was found that the employees were labor-intensive and the reception capacity was insufficient.
In this move, the standard of statistical data of different departments is unified to ensure the smooth exchange of data between different departments, and the integration of data from different dimensions is a top priority.
The third measure: data operation and sharing.
Second, look for references. The data needs to be compared horizontally and vertically, and the results are different. For example, when a company conducts a promotion, it often needs to compare with the promotion range, passenger flow, transaction rate, and customer evaluation of the activity. Rather than comparing it to the usual sales day, data analysis is meaningless if you choose the wrong object.
Third, after data collection, of course, it is used for analysis and use. In this age of looking at the value, inappropriate forms of presentation can lead to understanding obstacles and misunderstandings in the analysis of data, such as the most primitive EXECL table, which can be regarded as presbyopia. A good form of data presentation helps decision makers understand the meaning of the data and make sound decisions.
The ultimate goal of data analysis is to find and solve problems, effectively acquire, use, share, coordinate, connect, and simplify data so that everyone can analyze and reasonably judge the data. This is the most ideal state when employees are Actively investing in such data analysis work, data operations have entered a virtuous circle.


text:
I offer group walks for sociable dogs and individual walks for dogs who prefer their own company. I collect dogs from their own home and take them on a fun filled walk to various exciting locations. Walks are available throughout the day from 9am-5pm (subject to availability).
I'm first aid trained and fully insured and police checked. If you would like your dog to join please call 07967 567555 for a consultation. Your dog's first walk is FREE!
I also offer pet sitting. If you are going away, working late or out for the day I can visit your dog or cat, let them play in the garden or take them for a short walk and feed and spend some time with them. I can also ensure your house is safe and secure, water your plants and feed your fish. I can tailor a service for you by visiting once or twice a day. I am police checked and fully insured.
Nick Saunders-Cox
James is an accomplished dog walker and my dog (Ted) adores him. I would highly recommend him to anyone looking for a dog walker / sitter.
Emmaj Diprose
James walks our dog Theo most days. He's very reliable and flexible
We would highly recommend his dog walking services
Raquel Wilson
James has been taking our Border Collie on frequent walks whilst I am recovering from a recent op. He's reliable and flexible and most importantly, Molly is happy to go with him and enjoying her walks. James comes highly recommended and we look forward to taking advantage of his visiting services of a weekend sometime in the near future. More...
Chris Eaton
Such great peace of mind knowing that our pup is being well looked after whilst we're at work. James is friendly, reliable and trustworthy. Highly recommended.
Carol Akerman
I am very pleased I found this dog walking service. My dog Sammy really loves James and cannot wait to go out with him. Sammy goes out with James four times a week he has lost weight and has loads of energy.
Julie Hedge
James walks Molly every week for us, he is caring and very reliable, I never have to worry about Molly when I am busy at work. I would highly recommend Swindon Dog Walking Services to anyone looking for this service. Great service. More...
Stacey Brown
Elsa loves her new best friend James! She waits for him everyday at the top of the stairs ❤ Elsa walks so much better on the lead now thanks to James and her call back is improving loads. Highly recommend James he's just brill! Thanks James More...


text:
Other events
Wednesday, August 28, 2019
Getting Your Bearings Library Tour
Tour/Open House | August 28 – September 3, 2019 every day with exceptions | 11 a.m.-12 p.m. | Doe Library, Tour starts at the north entrance
Join other students and get your bearings with a 3-in-one tour of the Doe Memorial Library, Moffitt Undergraduate Library, and the Main Stacks. See these central libraries and learn about the student services they provide.
Texas Instruments Tabling Event: TI Chip Day
Miscellaneous | August 28 | 11 a.m.-3 p.m. | Soda Hall, In front of HP Auditorium (306 Soda Hall)
Electrical Engineering and Computer Sciences (EECS)
Join us for interactive demos featuring TI technology, refreshments, giveaways and more!
Certificate Program in Human Resource Management Online Information Session
Information Session | August 28 | 11-11:30 a.m. | Online | Note change in date
Discover how this certificate, approved by the Human Resource Certification Institute, can help you make the most of growing opportunities in human resource management.
Berkeley La Raza Law Journal Board Meeting
Meeting | August 28 | 12:30-1:30 p.m. | 115 Boalt Hall, School of Law
Berkeley La Raza Law Journal
Berkeley La Raza Law Journal Board Meeting
Certificate Program in Marketing Online Information Session
Information Session | August 28 | 1-1:30 p.m. | Online
Tom McGuire, Program Director, UC Berkeley Extension
Find out how UC Berkeley Extension equips you with a solid understanding of marketings most up-to-date concepts and techniques. For more information, visit the Certificate Program in Marketing.
Undergraduate Research Apprentice Program Info Session
Information Session | August 28 | 1-2 p.m. | 9 Durant Hall
Stefanie Ebeling, Program Manager/Student Advisor, Undergraduate Research Apprentice Program, Office of Undergraduate Research
Office of Undergraduate Research
The Undergraduate Research Apprentice Program gives undergraduate students the opportunity to work with UC Berkeley professors on faculty research projects.
Getting Your Bearings Library Tour
Tour/Open House | August 28 – September 3, 2019 every day with exceptions | 2-3 p.m. | Doe Library, Tour starts at the north entrance
Join other students and get your bearings with a 3-in-one tour of the Doe Memorial Library, Moffitt Undergraduate Library, and the Main Stacks. See these central libraries and learn about the student services they provide.
Weekly Coffee Break
Social Event | August 28 – December 11, 2019 every Wednesday | 3-4 p.m. | Windmill Coffee House
2131 Durant, Berkeley, CA 94704
Berkeley International Office(BIO))
Berkeley International Office's Coffee Break is a weekly opportunity for UC Berkeley global students to meet and engage with one another in a relaxing environment. Its a chance to enjoy free coffee, share stories about your experiences on campus, and get to know Berkeley International Office advisers. All UC Berkeley students are invited. Students are free to talk about anything, but we'll also... More >
Citizen Clinic Information Session
Special Event | August 28 | 4-6 p.m. | B Hearst Field Annex
Learn how Berkeley students are defending civil society organizations from cyberattacks, disinformation, and online abuse.
Arista Info-Session
Information Session | August 28 | 6-7:30 p.m. | Soda Hall, Wozniak Lounge (430)
Electrical Engineering and Computer Sciences (EECS)
We're Cal alumni currently working as software engineers at Arista. We're hosting an info session where we'll talk about the kinds of engineering work we do at Arista, how Arista fits into the tech industry, and what it's like to work at Arista.
About us:
Arista Networks delivers software-defined networking for large datacenter and high-performance computing environments. Aristas core... More >
VSR Social Mixer
Social Event | August 28 | 6-8 p.m. | Matiki Island BBQ & Brew (prev. Daily Pint)
Berkeley International Office(BIO))
On behalf of Berkeley International Office, we would like to invite you to attend our Visiting Student Researcher (VSR) Social Mixer! Enjoy this opportunity to meet and socialize with other scholars. All are welcome so feel free to invite friends, family, or new colleagues.
We'll be inside at one of the long tables. Look for signs! Food and beverages will be available for purchase. We... More >
Toastmasters on Campus Club: Learn public speaking
Meeting | January 14, 2015 – December 18, 2019 every Wednesday | 6:15-7:30 p.m. | 3111 Etcheverry Hall
Toastmasters has been the world leader in teaching public speaking since 1924. Meetings are an enjoyable self-paced course designed to get you up and running as a speaker in only a few months.


text:
Linking a preset Name to a Labels text - Any ideas?
LeeC last edited by
Ah true legend man
LeeC last edited by
@arminh Not yet.
Hopefully David can lead us through this tunnel
This post is deleted!
d.healey last edited by
You'll have to wait 10 minutes or so for the high q version to finish processing.
LeeC last edited by LeeC
Wow that video was crystal clear.
Learnt a lot about how callbacks work in HISE and the 'Save in Preset' or not to 'Save in Preset' stuff was golden - definitely wouldn't have discovered this myself.
All working now so thanks.
Your tutorials are second to none
Truly appreciate the insight man!
Thank you! You're master!
Btw, im trying to push sampleMapList to label but now I have all samplemaps
const var sampleList = Sampler.getSampleMapList(); const var sampleArrayString = sampleList.join("\n") Console.print(sampleArrayString); const var Label1 = Content.getComponent("Label1"); Label1.set("text", sampleArrayString);
d.healey last edited by
.join()takes all the elements in an array and connects them in a string.
For example
[1, 2, 3, 4, 5].join("/n");would become
@d-healey so there is some method to pick current sample map name?
d.healey last edited by d.healey
@arminh The sample maps are in an array. So just use the index of the sample map you want.
Christoph Hart last edited by
so there is some method to pick current sample map name?
Yes, there is
Great video, Dave - there is also another advantage of loading the user preset you show before saving and that is that it keeps the Git commit history as clean as possible (otherwise it would be scattered with meaningless value changes).
The only thing I'd like to add to this is that it's a weird design decision to make a knob responsible for displaying the user preset name - for the sake of demonstration in this video it's certainly sufficient, but if people try to replicate this in their real projects it gets a bit messy.
The cleanest solution is using a timer and query the name periodically:
const var presetUpdater = Engine.createTimerObject(); presetUpdater.setTimerCallback(function() { var text = Label1.get("text"); var preset = Engine.getCurrentUserPresetName(); if(preset == "") preset = "Gerald"); // Check if it has changed before updating the text // in order to save a bit CPU. if(text != preset) Label1.set("text", preset); }); // Check this 5 times per second. presetUpdater.startTimer(200);
Normally, polling is not the smartest way of communication - the cleanest solution would be a callback
onUserPresetChange()that you can use, but for this simple use case it is fine.


text:
- Instagram is growing at a faster speed than Twitter or Facebook, and it allows agents to prospect using geographic hashtags.
- Snapseed enables you to edit photos like a pro -- from your phone.
- With Ink Cards, you can send follow-up thank-yous on the fly.
Real estate technology is moving fast — perhaps faster than the real estate industry itself. And because of this, we have seen an influx of mobile app downloads introduced to the marketplace over the past few years. Only a handful of them, however, have current day practical uses. Here are five you should have on your phone.


text:
Thermal Lottery Ticket
Product Details
Specifications of Thermal Lottery Ticket:
1)Product name: Thermal lottery ticket, thermal raffle ticket, betting paper;
2)Material: High grade thermal paper;
3)Size: Custom size, 80mmx80mm, 3.5"x2", etc.;
4)Type: in roll or folded sheet.
5)Weight: 70gsm, 80gsm, 200gsm, etc.
6)Package: OEM packing, neutral packing, shrink-wrapping;
7)Pre-printing: logo or advertisement printed on both sides.
8)Usage: for casio, betting shops, etc.;
9)Advantage: Good printing quality, dark image.
Guanhua Paper is known as one of the experienced and trustworthy thermal lottery ticket manufacturers and suppliers. We have a large amounts of products in stock. You can feel free to buy discount and cheap thermal lottery ticket at low price with us.


text:
Consultant Acute/General Medicine – 3/6 Months – East Midlands
TXM Healthcare are currently looking for Consultants in Acute/General Medicine to work in the East Midlands
This position is for a 3-6 month contact and rates of pay are to be discussed.
If you are interested and would like more information please don't hesitate to contact Naomi Sprigg on 01908 326 218, alternatively please email your CV to firstname.lastname@example.com
TXM Healthcare is an equal opportunities employer. If you have any specific requirements or require assistance or reasonable adjustments to be made for you during the selection process due to disability or long-term health condition, we will do our best to assist


text:
Previously, We gave you an article on how you can Download Facebook Video via FBDown and we guess you found it easy to now download and watch videos on your Device from Facebook. In this Article, we will tutor you on how you can Save Facebook Videos on FB.com to watch Later. Carefully Read the steps here to See How.
It is easy to have this on your Facebook Account and watch them later when you can not quickly Download them. Those Comedy, news, messages and every other kind of Video that you find important and will want to watch them again can be saved.
Facebook is a social media Platform where personal to business adverts and fun are being displayed. And We can find videos which are interesting and also educative on this Platform.
READ NOW: How to Download Facebook Videos Via FBDown | Facebook Video Downloader
Most at times, this videos appears on our News feed and before you know it, you won't see them again, So the best you should do is to have them saved to your device the moment you see them to avoid loosing it.
How To Save Facebook Videos On Facebook To Watch Later
You can do this on your PC by following the steps given below;
- Go to www.facebook.com from your PC browser
- Login with your Email address and Password
- Now Go to your News-feed and Look for the Video you want to Save, Or Simply search for the Video you want by using the Search Bar
- Once it comes Out, Select the Video you want.
- Next, Click on the 3-dots at the right downside of the Video
- Finally Click on Save Video and the video will be saved to your Facebook Account to watch later.
Facebook can remind you of the saved video later, so that you can watch them. To view you saved Video, Simply Follow the Steps below:
How to View Facebook Saved Video on Facebook
- On your Facebook Homepage On your PC, Look at the left side of the page
- Where it says "Saved" Click on it
- It will open your Saved Video, Click on the Video to Play it.
For Mobile Device; See the Steps below
- Open your Facebook app for Android or iPhone,
- Search or open a post with video content that you will love to save.
- Then Tap once on the video to make all the options appear
- Tap on the vertical 3-dots under the video
- Next, Tap on "Save Video" and that video will be saved in your Facebook Account
If you want to watch the video later, you can tap on the hamburger icon in the Facebook app and then choose the Saved video and Tap on it to watch.
That's All.
Hope the Steps above was Simple? Let us hear what you think on How To Save Facebook Videos On Facebook To Watch Later by using the COMMENT BOX Below.


text:
I originally made these to use for my United Kingdom story time this summer. The kids recited the traditional nursery rhyme "This Little Piggie."
I've seen several good felt pigs on previous #FlannelFridays. I wanted to get the most use out of my pigs, so I used brown craft paint and a foam brush to dirty up one side. Apparently, I was a bit too zealous in my application because the paint bled through to the other side. I'll be making another set of pigs to use as the clean ones.
These pigs can be used for the following story time themes: nursery rhymes, pigs, farm animals, opposites (clean and dirty).


text:
When it comes to learning and also preparing to go to school at any age, a person needs to learn how to not only get mentally prepared but also physically. The main reason for this is because any type of education that a person gets and has will take mental and physical energy and if the person is older, they will need to prepare more especially for those that will go back to school after they have been out of it for a long time. Adults have several advantages when it comes to going back to school and how they are able to cope with the change in scenery, if they are able to keep up with the work, they are able to keep up with the stress and also the responsibilities that they will have in school. Learning from far away, either online or in person is very different and also very needed but at the same time, a person needs to know how to handle all of the factors that are added to the problem.
While it can be better and more convenient for any person to learn from a distance or online in a school they have the biggest responsibilities when they turn in their school work and also when they want to ask questions because they do not want to be the reasons why they cannot keep up with the school work and at the same time, why a person can also be confused. It is very easy to be confused when a person is taking online classes when it comes to school work and also homework for the person. The teacher is not there for a person to ask help and there is no one to help a person when they need it.
Especially when the person is oder and they have been out of school for a longer period of time, they are more likely to have a harder time keeping up with the school work and the responsibility at the same time. Since there are so many obstacles that can come between a person and their school work if they study in a different place than where they live and especially if they are taking online classes. This is one of the many reasons why so many people take it upon themselves to get a good education and at the same time, get into a good school even if they have to take classes online or from far away because they are able to get more of a chance when they want to get a better job at the same time.


text:
Located at the famous private land development of Lomas De Mismaloya overlooking the original set of the movie "Night of the Iguana" that made Vallarta famous. With private, coded, guarded security gate, with security cameras, accessible only to property owners and their guests, we have developed 7 brand new condominiums. Nestled on the Mismaloya hillside, now totally completed, and overlooking the south bay.The project offers a First Phase where 7 units are available, in two Towers (A and B). The First Building, Tower B has 3 units of two bedrooms, with two bathrooms, nice roomy kitchens with most appliances, dining room, living room, large terraces with full bar to the view. All with panoramic views to the bay, and an approximate area of 170 sq. meters or 1,800 sq. ft. The Second Building, Tower A in the upper part of the property consists of 4 panoramic two and three bedroom Penthouses. Offering extended terraces featuring Jacuzzi and bar areas looking toward the panoramic ocean views, large open kitchens, living rooms, dining rooms and an approximate area of 159m2 or 1,713 sq. ft. to 298m2 or 3,216 sq. ft. Second Phase to be completed by June of 2015 offers 8 units, two bedroom-2 bathroom Condominiums, also with spectacular views to Mismaloya beach and the south bay. These Condominiums consist of two Towers C and D each tower with 4 condos that include an elevator in between the Towers and spectacular large terraces to the ever changing views of Mismaloya beach and direct sunset views facing west. Tower C includes 4 condominiums with an area of 113 sq. meters or 1,210 sq. ft., large terraces, livingroom, dining room and roomy kitchens with private laundry rooms. Two roomy bedrooms each with private access to two bathrooms.Tower D, alongside are more roomy condos with 136 sq. meters or 1,455 sq. ft. Also west facing to the ocean views and sunsets, also 4 condominiums. They include large terraces, living room, and dining room, large kitchens with pantry and private laundry with owner's closet. Two large bedrooms with direct access to two comfortable bathrooms with views and private terraces. In the common Areas, the gardens and stairs take you to a very pleasant and panoramic common pool area for all the units, with palapa bar, entertaining areas and stunning views. Please call for more details. Prices range from: $365,000-$650,000 USD
P.O. Box 27 Stinson Beach CA 94970 US | +1 (415) 868-1623 | firstname.lastname@example.com
Copyrights © 2015 International Dwellings. All Rights Reserved.


text:
Home automation systems make it easy to connect all your devices, from lights and thermostats to dimmers, switches, and even ceiling fans, to one centralized hub or controller via wireless technology. Plus, you'll have complete access to every device in your smart home via your smart home or tablet, facilitating easy monitoring and enabling you to adjust the temperature, regulate sprinkler use, and ensure that the lights are on when you return – whatever the hour.
Z-Wave is leading the way in smart home adoption products and accessories. If your looking for low cost, no monthly fee security and automation products, Z-Wave has you covered.
Wireless Home Security Starter-Kit
Sub-Cooled LLC provides Z-Wave sales and installation services to Valparaiso, Indiana and the surrounding communities. For more information check out our online store or give us a call today!


text:
Posts in Category: Exercise Nutrition & Obesity
New Year's Resolutions: A Focus on Pet Wellness in 2019
Each new year is brimming with promise and possibility. We look forward to all we think might happen, and we do our best to embrace the unpredictable. But what about our pets? Given the chance, they might make some healthier choices in the new year, but mostly, they rely on us to make the best choices on their behalf. To that end, we offer some New Year's resolutions that support overall pet wellness and lifelong health.
Don't Worry, it's Easy!
When it comes to pet wellness, your cat or dog depends on you. The good news is that it's never been easier to achieve a healthier, happier lifestyle together. With the following pet wellness resolutions, we're sure you and your pet will be blazing new trails in 2019. Enjoy!
Delicious But Safe? Holiday Food Safety for Pets
The holidays are here, and for many of us, that means cozying up in the kitchen with our favorite recipes to share. Holiday tables and meals often mean family, and with 70% of pet owners considering pets a part of the family, sharing our favorite foods with them is the next logical step. But it this safe?
We're all human, and it's tough to resist those puppy dog eyes, but some traditional fare can pose serious risks to your pet's health. Aside from adding a lot of calories and fat to your pet's diet, over indulgence in high fat foods can trigger a condition called pancreatitis, which is painful and potentially life threatening.
Before you pull up a chair for your pet at the table, let's explore holiday food safety for pets, and give you some pet friendly choices that you can feel good about.Continue…
Painful Inflammation: Pancreatitis in Pets Is No Laughing Matter
As we move into the final months of the year, reminders to safeguard animal health and wellness become more pressing. Between Halloween and New Year's Eve, pets have immeasurable access to all things savory and sweet. Sure, many pets have incredible impulse control. Others? Well, let's just say they can't even be in the same room as a gravy boat. Holiday indulgences cause cases of pancreatitis in pets to rise sharply, but it is entirely avoidable.
You Can Still Celebrate
Many animals won't jump on the table or countertops on their own volition, but few can resist a tempting morsel if it's being offered by a human hand. Planning on hosting a family dinner sometime this holiday season? Please be sure that your pet isn't lingering beneath the table for any fallen bits, and ask your guests not to feed your pets even if they beg for a taste.
If you think your pet would be safer this holiday season, please consider boarding them with us for a night or two.Continue…
No Bones About It, We're Tops For Orthopedic Surgery in Pets
Veterinary medicine has a lot to do with diagnosing, treating, and preventing problems that affect the different body systems. Most veterinarians are adept at managing chronic kidney disease, allergic dermatitis, or an upper respiratory infection. Not all veterinarians are equipped to handle orthopedic issues, though, especially when it comes to those that are best addressed surgically.
At Blue Valley Animal Hospital, our doctors are here to help your furry family friend even when it comes to orthopedic issues. We are equipped to do orthopedic surgery in pets in many situations. It is our pleasure to offer excellent care in this arena for our clients. Continue…


text:
April 22, 2013 — Shutterbug Sage
Room with a (Limited) View
Like other major cities around the world, it takes a bit of effort to find a room that's clean, safe, bigger than a hamster's cage, and not $500 per night in New York City. My room is surprisingly spacious, very clean, and just five blocks away from my meetings. The view is a bit limited, but fortunately I'm just a short walk from Bryant Park, Times Square, and the Garment District. With about 14 hours of daylight right now, I hope to be able to catch a few minutes to take a few photos around my work obligations.
You Might Also Enjoy:


text:
We had the pleasure of photographing Marissa & Tommy's wedding in December! We've been working with these guys for a while, from their engagement session over a year ago to Marissa's bridal a few months ago, so it was amazing to see their story culminate in such a beautiful way. And it was beautiful, even in the fog! We were able to create some spectacular images for them, even though the weather wasn't what they had hoped for. And the love and joy from their friends and families kept everybody warm and in high spirits. We were honored to be able to capture it!
Events - Summerfield Farms Events
Entertainment - Dow Oak Events
Catering - Above and Beyond
Dress - Myline's Bridal
0 comments


text:
Filtering and Sorting Pivot Table Data in Excel 2019
When you create a new Excel pivot table, you'll notice that Excel 2019 automatically adds drop-down buttons to the Report Filter field, as well as the labels for the column and row fields. These drop-down buttons, known officially as filter buttons in Excel, enable you to filter all but certain entries in any of these fields, and in the case of the column and row fields, to sort their entries in the table.
If you've added more than one column or row field to your pivot table, Excel adds collapse buttons (-) that you can use to temporarily hide subtotal values for a particular secondary field. After clicking a collapse button in the table, it immediately becomes an expand button (+) that you can click to redisplay the subtotals for that one secondary field.
Filtering pivot tables in Excel 2019
Perhaps the most important filter buttons in an Excel pivot table are the ones added to the field(s) designated as the pivot table FILTERS. By selecting a particular option on the drop-down lists attached to one of these filter buttons, only the summary data for that subset you select displays in the pivot table.
For example, in the sample Excel pivot table that uses the Gender field from the Employee Data list as the Report Filter field, you can display the sum of just the men's or women's salaries by department and location in the body of the pivot table doing either of the following:
- Click the Gender field's filter button and then click M on the drop-down list before you click OK to see only the totals of the men's salaries by department.
- Click the Gender field's filter button and then click F on the drop-down list before you click OK to see only the totals of the women's salaries by department.
When you later want to redisplay the summary of the salaries for all the employees, you then reselect the (All) option on the Gender field's drop-down filter list before you click OK.
When you filter the Gender Report Filter field in this manner, Excel then displays M or F in the Gender Report Filter field instead of the default (All). The program also replaces the standard drop-down button with a cone-shaped filter icon, indicating that the field is filtered and showing only some of the values in the data source.
Filtering column and row fields
The filter buttons on the column and row fields attached to their labels enable you to filter out entries for particular groups and, in some cases, individual entries in the data source. To filter the summary data in the columns or rows of a pivot table, click the column or row field's filter button and start by clicking the check box for the (Select All) option at the top of the drop-down list to clear this box of its check mark. Then, click the check boxes for all the groups or individual entries whose summed values you still want displayed in the pivot table to put back check marks in each of their check boxes. Then click OK.
As with filtering a Report Filter field, Excel replaces the standard drop-down button for that column or row field with a cone-shaped filter icon, indicating that the field is filtered and displaying only some of its summary values in the pivot table. To redisplay all the values for a filtered column or row field, you need to click its filter button and then click (Select All) at the top of its drop-down list. Then click OK.
This image shows the sample pivot table after filtering its Gender Report Filter field to women (by selecting F in the Gender drop-down list) and its Dept Column field to Accounting, Administration, and Human Resources.
In addition to filtering out individual entries in an Excel pivot table, you can also use the options on the Label Filters and Value Filters continuation menus to filter groups of entries that don't meet certain criteria, such as company locations that don't start with a particular letter or salaries between $45,000 and $65,000.
Filtering in Excel with slicers
Slicers in Excel 2019 make it a snap to filter the contents of your pivot table on more than one field. (They even allow you to connect with fields of other pivot tables that you've created in the Excel workbook.)
To add slicers to your Excel pivot table, you follow just two steps:
- Click one of the cells in your pivot table to select it and then click the Insert Slicer button located in the Filter group of the Analyze tab under the PivotTable Tools contextual tab.
Excel opens the Insert Slicers dialog box with a list of all the fields in the active pivot table.
- Select the check boxes for all the fields that you want to use in filtering the pivot table and for which you want slicers created and then click OK.
Excel then adds slicers (as graphic objects) for each pivot table field you select and automatically closes the PivotTable Fields task pane if it's open at the time.
After you create slicers for the Excel pivot table, you can use them to filter its data simply by selecting the items you want displayed in each slicer. You select items in a slicer by clicking them just as you do cells in a worksheet — hold down Ctrl as you click nonconsecutive items and Shift to select a series of sequential items. For additional help, check out these other entry shortcuts.
The image below shows you the sample pivot table after using slicers created for the Gender, Dept, and Location fields to filter the data so that only salaries for the men in the Human Resources and Administration departments in the Boston, Chicago, and San Francisco offices display.
Because slicers are Excel graphic objects (albeit some pretty fancy ones), you can move, resize, and delete them just as you would any other Excel graphic. To remove a slicer from your pivot table, click it to select it and then press the Delete key.
Filtering with timelines in Excel
Excel 2019 offers another fast and easy way to filter your data with its timeline feature. You can think of timelines as slicers designed specifically for date fields that enable you to filter data out of your pivot table that doesn't fall within a particular period, thereby allowing you to see timing of trends in your data.
To create a timeline for your Excel pivot table, select a cell in your pivot table and then click the Insert Timeline button in the Filter group on the Analyze contextual tab under the PivotTable Tools tab on the Ribbon. Excel then displays an Insert Timelines dialog box displaying a list of pivot table fields that you can use in creating the new timeline. After selecting the check box for the date field you want to use in this dialog box, click OK.
This image shows you a timeline created for the sample Employee Data list by selecting its Date Hired field in the Insert Timelines dialog box. As you can see, Excel created a floating Date Hired timeline with the years and months demarcated and a bar that indicates the time period selected. By default, the timeline uses months as its units, but you can change this to years, quarters, or even days by clicking the MONTHS drop-down button and selecting the desired time unit.
Then the timeline is literally used to select the period for which you want the Excel pivot table data displayed. In the image above, Excel pivot table has been filtered so that it shows the salaries by department and location for only employees hired in the year 2000. You can do this simply by dragging the timeline bar in the Date Hired timeline graphic so that it begins at Jan, 2000 and extends just up to and including Dec, 2000. And to filter the pivot table salary data for other hiring periods, simply modify the start and stop times by dragging the timeline bar in the Date Hired timeline.
Sorting pivot tables in Excel 2019
You can instantly reorder the summary values in a pivot table by sorting the table on one or more of its column or row fields. To re-sort a pivot table, click the filter button for the column or row field you want to use in the sorting and then click the Sort A to Z option or the Sort Z to A option at the top of the field's drop-down list.
Click the Sort A to Z option when you want the table re-ordered by sorting the labels in the selected field alphabetically or, in the case of values, from the smallest to largest value or, in the case of dates, from the oldest to newest date. Click the Sort Z to A option when you want the table re-ordered by sorting the labels in reverse alphabetical order, values from the highest to smallest, and dates from the newest to oldest.


text:
Junner was Antonia Chillingsworth's right hand man.
During his first encounter with Riddick, Junner watched Riddick slaughter a boarding crew. However the battle was stopped as Junner held Jack at gunpoint.
Antonia ordered Junner to take Riddick to her quarters. Riddick was separated from Jack and Abu al-Walid. Riddick observed Antonia's priced criminals one the Killer of Men, while he was escorted by Junner.
Junner later caught up with him in the hangar bay where Riddick fought him. Junner was intelligent and proficient with both a gun and a sword. Junner died in a duel with Riddick, when Riddick stabbed him in the eye.[1]
Community content is available under CC-BY-SA unless otherwise noted.


text:
Soulful Prairies Gift Certificate
Give someone the gift of an experience they have never had and will never forget.
Soulful Prairies Gift Certificates may be purchased for $25 or $50 in any quantity.
After you have made your purchase, you will be automatically directed to the Gift Certificate PDF. Download and print.
Gift Certificate Ideas
The Soulful Prairies Gift Certificate may be used
towards any of the following - and more.
Visit our Events page for ideas.


text:
It's been a day since I got my XPS 15. So far, I'm loving it. My previous laptopwas a Macbook Air (2012/ 11 inch) and switching from it to the XPS was one of the best choices I made in my life.
First of all, I love the keyboard. It's a huge improvement from the Macbook Air, and I prefer the XPS keyboard over every laptop I have used. It feels amazing, and the click is so satisfying. Absolutely amazing.
Second, the display. The display is breathtakingly amazing. I ordered the FHD version instead of the 4k version, but the quality on this thing is just... WOW. I can only imagine how amazing the screen on the 4k will be.
Third, the design. I know it's not a very new design, but after using a macbook with extra thicc bezels, the XPS has super thin bezels. It's just so pleasing to look at.
Fourth, the touchpad. After using Apple's touchpad, I didn't expect much from the XPS. However, I was pleasantly surprised as the touchpad is almost as good as the mac's. 9apps cartoon hd vidmate apk
I got an i7 core (8th gen) and it is super fast. The download time is fast. Like, really fast.
Finally, the delivery time. I know this doesn't really relate to the XPS itself, but I was surprised at how fast it came. It was supposed to come on the 28th or the 29th, but I got it yesterday. It only took 8 days, so I can say I'm pretty satisfied with the delivery speed.
So far, I can't seem to find any.
One thing that does bother me is that the fans turn on and off randomly, but it's not that big of a problem for me. The laptop does not get super hot for me as well.
Overall, I definitely recommend the XPS 15. Although I might've spent all my money on it, I can say 100% it was worth every single cent. Thanks for reading and I'll be happy to answer any questions! (BTW, I promise I'm not a DELL employee haha)
Overall? Still great, still good. What I'm noticing is a little bit of coil whine. I don't mind too much. The carbon gets dirty quite easily (figured that out when my friend's greasy hands touched them) but it's still easy to wipe off. Still having a great experience!
It will certainly be an upgrade if your previous laptop was the 2012 Macbook Air. I'd say the recent Macbook Pro's are comparable in aesthetics. I still prefer Dell XPS b/c you are getting comparable specs/aesthetics for less.
Please let us all know if you are still having a good experience in a month and in 10.
I'm satisfied with it after several months. There are some slight annoyances but nothing too major. The pros outweigh the cons