Adversarial Seeded Sequence Growing for Weakly-Supervised Temporal Action Localization
Abstract
Video text spotting is still an important research topic due to its various real-applications. Previous approaches usually fall into the four-staged pipeline: text detection in individual images, framewisely recognizing localized text regions, tracking text streams and generating final results with complicated post-processing skills, which might suffer from the huge computational cost as well as the interferences of low-quality text. In this paper, we propose a fast and robust video text spotting framework by only recognizing the localized text one-time instead of frame-wisely recognition. Specifically, we first obtain text regions in videos with a well-designed spatial-temporal detector. Then we concentrate on developing a novel text recommender for selecting the highest-quality text from text streams and only recognizing the selected ones. Here, the recommender assembles text tracking, quality scoring and recognition into an end-to-end trainable module, which not only avoids the interferences from low-quality text but also dramatically speeds up the video text spotting process. In addition, we collect a larger scale video text dataset (LSVTD) for promoting the video text spotting community, which contains 100 text videos from 22 different real life scenarios. Extensive experiments on two public benchmarks show that our method greatly speeds up the recognition process averagely by 71 times compared with the frame-wise manner, and also achieves the remarkable state-of-the-art. [Paper]Highlights Contributions
❃ We design a novel text recommender for selecting the highest-quality text from text streams and then only recognizing the selected text regions once, which significantly speeds up the recognition process, and also improves the video text spotting performance.
❃ We integrate a well-designed spatial-temporal text detector and a text recommender into an unified two-stage framework YORO for fast end-to-end video text spotting.
❃ In order to promote the progress of video text spotting, we collect and annotate a larger scale video text dataset, which contains 100 videos from 22 different real-life situations.
❃ Extensive experiments demonstrate that our method is fast and robust and achieves impressive performance in video scene text reading.
Recommended Citations
If you find our work is helpful to your research, please feel free to cite us:@inproceedings{zhang2019adversarial, title={Adversarial Seeded Sequence Growing for Weakly-Supervised Temporal Action Localization}, author={Zhang, Chengwei and Xu, Yunlu and Cheng, Zhanzhan and Niu, Yi and Pu, Shiliang and Wu, Fei and Zou, Futai}, booktitle={Proceedings of the 27th ACM International Conference on Multimedia}, pages={738--746}, year={2019}, organization={ACM} }


Be the first to welcome the season
3 DAYS ONLY!
ANY Large Candle
50% off when you buy one
All Fragrances | Coupon Below
To Shop Online Now, copy and paste:
http://links.mkt1917.com/ctt?kn=9&ms=MTI4NTg1MTIS1&r=Mzc1MTMwMDUwMTIS1&b=2&j=NzIzMzg3NDAwS0&mt=1&rt=0
into your browser
To Print the Coupon, copy and paste:
http://links.mkt1917.com/ctt?kn=18&ms=MTI4NTg1MTIS1&r=Mzc1MTMwMDUwMTIS1&b=2&j=NzIzMzg3NDAwS0&mt=1&rt=0
into your browser


This is the core functionality of Xrm-WebApi-Client
No instantiation needed, it's a singleton.
- Source:
Classes
Members
-
<static> WebApiClient.ApiVersion
-
The API version that will be used when sending requests. Default is "8.0"
- Source:
-
<static> WebApiClient.Async
-
Set to false for sending all requests synchronously. True by default.
- Source:
-
<static> WebApiClient.ClientUrl
-
Connection to use when being used in a single page app.
- Source:
-
<static> WebApiClient.PrettifyErrors
-
Set to true for retrieving formatted error in style 'xhr.statusText: xhr.error.Message'. If set to false, error json will be returned.
- Source:
-
<static> WebApiClient.ReturnAllPages
-
Checks for more pages when retrieving results. If set to true, all pages will be retrieved, if set to false, only the first page will be retrieved.
- Source:
-
<static> WebApiClient.Token
-
Token to use for authenticating when being used in a single page app.
- Source:
Methods
-
<static> AppendToDefaultHeaders(var_args)
-
Function for building the set name of a given entity name.
Parameters:
Name Type Argument Description var_args
Object <repeatable>
Headers as variable arguments
- Source:
Returns:
- Type
- void
-
<static> Associate(parameters)
-
Associates given records in CRM.
Parameters:
Name Type Description parameters
Object Parameters for associating records
Properties
Name Type Argument Description relationShip
String Name of relation ship to use for associating
source
Object Source entity for disassociating
Properties
Name Type Argument Description overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entityId
String ID of entity
entityName
String Logical name of entity, such as "account"
target
Object Target entity for disassociating
Properties
Name Type Argument Description overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entityId
String ID of entity
entityName
String Logical name of entity, such as "account"
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
if async, just String if sent synchronously.
- Type
- Promise.<String> | String
-
<static> Configure(configuration)
-
Applies configuration to WebApiClient.
Parameters:
Name Type Description configuration
Object Object with keys named after WebApiClient Members, such as "Token"s
- Source:
Returns:
- Type
- void
-
<static> Create(parameters)
-
Creates a given record in CRM.
Parameters:
Name Type Description parameters
Object Parameters for creating record
Properties
Name Type Argument Description entityName
String Entity name of record that should be created
overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entity
Object Object containing record data
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
- Type
- Promise.<String> | Promise.<object> | String | Object
-
<static> Delete(parameters)
-
Deletes a given record in CRM.
Parameters:
Name Type Description parameters
Object Parameters for deleting record
Properties
Name Type Argument Description entityName
String Entity name of records that should be deleted
overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entityId
String <optional>
ID of entity to delete
alternateKey
Array.<property:string, value:string> <optional>
Alternate key array for deleting record
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
if async, just String if sent synchronously.
- Type
- Promise.<String> | String
-
<static> Disassociate(parameters)
-
Disassociates given records in CRM.
Parameters:
Name Type Description parameters
Object Parameters for disassociating records
Properties
Name Type Argument Description relationShip
String Name of relation ship to use for disassociating
source
Object Source entity for disassociating
Properties
Name Type Argument Description overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entityId
String ID of entity
entityName
String Logical name of entity, such as "account"
target
Object Target entity for disassociating
Properties
Name Type Argument Description overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entityId
String ID of entity
entityName
String Logical name of entity, such as "account"
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
if async, just String if sent synchronously.
- Type
- Promise.<String> | String
-
<static> Execute(request)
-
Executes the given request in CRM.
Parameters:
Name Type Description request
Object Request to send, must be in prototype chain of WebApiClient.Requests.Request.
Properties
Name Type Argument Description async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
- Type
- Promise.<Object> | Object
-
<static> Expand(parameters)
-
Expands all odata.nextLink (deferred) properties for an array of records.
Parameters:
Name Type Description parameters
Object Configuration for expanding
Properties
Name Type Argument Description records
Array.<Object> Array of records to expand
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
- Type
- Promise.<Object> | Object
-
<static> GetApiUrl()
-
Gets the current base API url that is used.
- Source:
Returns:
- Type
- String
-
<static> GetDefaultHeaders()
-
Returns array of default headers.
- Source:
Returns:
- Type
- Array.<{key: String, value:String}>
-
<static> GetSetName(entityName [, overriddenSetName])
-
Builds the set name of a given entity name.
Parameters:
Name Type Argument Description entityName
String Logical name of the entity, such as "account"
overriddenSetName
String <optional>
Override set name if it can't be infered from plural rules
- Source:
Returns:
- Type
- String
-
<static> Retrieve(parameters)
-
Retrieves records from CRM
Parameters:
Name Type Description parameters
Object Parameters for retrieving records
Properties
Name Type Argument Description entityName
String Entity name of records that should be retrieved
overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
queryParams
String <optional>
Query Parameters to append to URL, such as ?$select=*
fetchXml
String <optional>
Fetch XML query
entityId
String <optional>
ID of entity to retrieve, will return single record
alternateKey
Array.<property:string, value:string> <optional>
Alternate key array for retrieving single record
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
- Type
- Promise.<object> | Object
-
<static> SendBatch(batch)
-
Sends the given batch to CRM.
Parameters:
Name Type Description batch
Object Batch to send to CRM
Properties
Name Type Argument Description async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
- Type
- Promise.<Object> | Object
-
<static> SendRequest(method, url [, payload] [, parameters])
-
Sends request using given parameters.
Parameters:
Name Type Argument Description method
String Method type of request to send, such as "GET"
url
String Target URL for request.
payload
Object <optional>
Payload for request.
parameters
Object <optional>
Parameters for sending the request
Properties
Name Type Argument Description async
Boolean <optional>
True for sending async, false for sync. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers for appending to request
- Source:
Returns:
- Type
- Promise.<Object> | Object
-
<static> Update(parameters)
-
Updates a given record in CRM.
Parameters:
Name Type Description parameters
Object Parameters for updating record
Properties
Name Type Argument Description entityName
String Entity name of records that should be updated
overriddenSetName
String <optional>
Plural name of entity, if not according to plural rules
entityId
String <optional>
ID of entity to update
alternateKey
Array.<property:string, value:string> <optional>
Alternate key array for updating record
async
Boolean <optional>
True for sending asynchronous, false for synchronous. Defaults to true.
headers
Array.<key:string, value:string> <optional>
Headers to attach to request
- Source:
Returns:
- Returns Promise
- Type
- Promise.<String> | Promise.<object> | String | Object


JUDGE DREDD A film review by Jeff Pidgeon Copyright 1995 Jeff Pidgeon
JUDGE DREDD seems to be another example of what can happen when a Big Star attaches him/herself to a project. The Big Star begins to bend the content and tone of the project to better suit what he/she thinks the audience wants or expects from them, and before you know it, it's just another vehicle, the content reduced to a candy coating around the same old gumball. I've never read a single issue of JUDGE DREDD, but I can't imagine fans of the comic enjoying the film very much. I've heard tell of JUDGE DREDD fans boycotting the picture , though if this is so, I don't know what they intend to accomplish. I can't imagine there can be enough JUDGE DREDD fans to make a box office dent one way or another, though the character has been around for a while, so who knows?
One of the oddest things about the film is the central idea. We're in another one of those futuristic societies where everything has gone to Hell in a bullet train. This society's solution was to gather most people up into great big huge cities policed by Judges--who are judge, jury and executioner in one tight-leather, golden-eagle-shoulder-pad package. Most of the denizens of the Mega-cities spend most of their time rioting, and the judges spend most of *their* time shooting them or getting shot.  They argue a lot about how many Judges are getting greased, and discuss what a maverick-type-legend Dredd is. Considering how much authority the Judges are given, it's unclear what Dredd is doing that's considered outside the bounds of good judgement. Further, it's more than a little odd that we're supposed to accept this society as normal. In MAD MAX, for example, it's pretty clear that everything's pretty messed up, and the people involved with the story would definitely like things to be much better. Here, however, most of the plot concerns itself with whether or not some nasty fellow will take over what is a pretty fascist set-up in the first place. Dredd himself seems to be an "upholder of the Law," but has little problem with the system he works in. I've heard that the comic's intent was satirical in asking us to accept the Judges in the first place, but here it seems to come off more like, 'Oh No! That villain almost took control of our police state! Thanks goodness Dredd was here to prevent it from becoming a *really bad* police state!'
Most of the rest of the film is accomplished but derivative. Everything feels familiar and tired. The pacing is decent and the effects are shiny but not especially diverting. The production design feels like Albert Speer, Ralph McQuarrie and Syd Mead teamed up to re-make BLADE RUNNER. Stallone feels inappropriate for a role that would seem to require more steely fanaticism that his usual lovable-lug bit. The comedy relief sidekick comes off as rather irritating most of the time, and every single line written for him punctures the reality of the world we're supposed to be in with lots of pizza delivery and ATM gags, with no adjustments made to remind us that we're in a different culture. There are sequences that (like CASPER) seem to be footage for an upcoming simulator ride at Disneyland. Max Von Sydow dignifies this effort with a performance that rises above the script-by-numbers. Joan Chen looks good but is wasted in a supporting role. Alan Silvestri's score has a moment or two but mostly overplays its hand. The main villain in the piece seems to be doing an extended Anthony Hopkins imitation. Overall, I didn't find JUDGE DREDD as irritating as BATMAN FOREVER, but I doubt if I'll remember much about it at all a month or two from now. Not recommended.
-- Jeff "Doh!" Pidgeon
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


|
OR-Tools
7.1
Google Optimization software suite
|
KnapsackCapacityPropagator is a KnapsackPropagator used to enforce a capacity constraint. More...
#include <knapsack_solver.h>
Public Member Functions | |
| KnapsackCapacityPropagator (const KnapsackState &state, int64 capacity) | |
| ~KnapsackCapacityPropagator () override | |
| void | ComputeProfitBounds () override |
| int | GetNextItemId () const override |
| Public Member Functions inherited from operations_research::KnapsackPropagator | |
| KnapsackPropagator (const KnapsackState &state) | |
| virtual | ~KnapsackPropagator () |
| void | Init (const std::vector< int64 > &profits, const std::vector< int64 > &weights) |
| bool | Update (bool revert, const KnapsackAssignment &assignment) |
| int64 | current_profit () const |
| int64 | profit_lower_bound () const |
| int64 | profit_upper_bound () const |
| void | CopyCurrentStateToSolution (bool has_one_propagator, std::vector< bool > *solution) const |
Protected Member Functions | |
| void | InitPropagator () override |
| bool | UpdatePropagator (bool revert, const KnapsackAssignment &assignment) override |
| void | CopyCurrentStateToSolutionPropagator (std::vector< bool > *solution) const override |
| Protected Member Functions inherited from operations_research::KnapsackPropagator | |
| const KnapsackState & | state () const |
| const std::vector< KnapsackItemPtr > & | items () const |
| void | set_profit_lower_bound (int64 profit) |
| void | set_profit_upper_bound (int64 profit) |
KnapsackCapacityPropagator is a KnapsackPropagator used to enforce a capacity constraint.
As a KnapsackPropagator is supposed to compute profit lower and upper bounds, and get the next item to select, it can be seen as a 0-1 Knapsack solver. The most efficient way to compute the upper bound is to iterate on items in profit-per-unit-weight decreasing order. The break item is commonly defined as the first item for which there is not enough remaining capacity. Selecting this break item as the next-item-to-assign usually gives the best results (see Greenberg & Hegerich).
This is exactly what is implemented in this class.
When there is only one propagator, it is possible to compute a better profit lower bound almost for free. During the scan to find the break element all unbound items are added just as if they were part of the current solution. This is used in both ComputeProfitBounds and CopyCurrentSolutionPropagator. For incrementality reasons, the ith item should be accessible in O(1). That's the reason why the item vector has to be duplicated 'sorted_items_'.
Definition at line 452 of file knapsack_solver.h.
| operations_research::KnapsackCapacityPropagator::KnapsackCapacityPropagator | ( | const KnapsackState & | state, |
| int64 | capacity | ||
| ) |
|
override |
|
overridevirtual |
Implements operations_research::KnapsackPropagator.
|
inlineoverridevirtual |
Implements operations_research::KnapsackPropagator.
Definition at line 457 of file knapsack_solver.h.
|
overrideprotectedvirtual |
Implements operations_research::KnapsackPropagator.
|
overrideprotectedvirtual |
Implements operations_research::KnapsackPropagator.
|
overrideprotectedvirtual |
Implements operations_research::KnapsackPropagator.


Features:
Add a new sale attendant
Make sale attendant admin
Reset a sale attendant password
Remove sale attendant
Features:
Add a new product to store
Edit an existing product
Remove a product from catalog
Assign product to category
Features:
View sales by attendants
Filter sales by individual
View sale records by attendant
View product sales


⚀
⚅
Feeling Lucky?
Local Weather
Home
Franklin
Greenville
Springfield
Search
☀ Current Conditions
Wind: 1-5 MPH Southwest
Precipitation: 0in
☀ Greenville, ID
74
☀
90/66
Sunny
☀ Hourly Forecast
8:00 AM: 74
9:00 AM: 77
10:00 AM: 79


Exercise 8
Information Capacity, Achievable Data Rate using Selected Modulation and Error Correction Coding Scheme (MCS), and Spectral Efficiency


2 Chronicles 30:26
So there was great joy in Jerusalem: for since the time of Solomon the son of David king of Israel there was not the like in Jerusalem.


Notebooks
Story: Blank pages in Bleek's Book XIV
Blank pages in Bleek's Book XIV
Title
Blank pages in Bleek's Book XIV
Collection
Summary
Blank pages in the notebook.
Keywords
blank pages (in Bleek's Book XIV) , pages (blank, in Bleek's Book XIV)
Story Pages
1337-1361


{% extends "base.html" %} {% block title %}404 - Page Not Found | SoCraTes Conference{% endblock %} {% block container %}
Sorry, but we couldn't find a page for the URL you provided


Andrei Seleznev
Russian-Australian writer based in Melbourne/Naarm
contact me
mylastname dot myfirstname at gmail dot com
i do not maintain any public social media
нетвойне / no to war / 🇺🇦


Designed to be
Effecient, long lasting and safe
by the best
One phrase to describe the material we have used. No compromises.
While the exterior of the box
could be made of many things but we have not compromised.
Stera UVC Disinfection Shield Box uses Superior 304 Mirror surface
Stainless Steel material to ensure
maximum internal refection of UVC.
Magnetic cut-off feature on the door ensures that it is 100%
leakproof and there is no chance of
any radiation to leak out or affect any human.


| 002:039 Khan | : |
But those who disbelieve and belie Our Ayat (proofs, evidences, verses, lessons, signs, revelations, etc.) such are the dwellers of the Fire, they shall abide therein forever. |
| 002:039 Maulana | : |
And (as to) those who disbelieve in and reject Our messages, they are the companions of the Fire; in it they will abide. |
| 002:039 Pickthal | : |
But they who disbelieve, and deny Our revelations, such are rightful Peoples of the Fire. They will abide therein. |
| 002:039 Rashad | : |
"As for those who disbelieve and reject our revelations, they will be dwellers of Hell, wherein they abide forever." |
| 002:039 Sarwar | : |
But those who would deny the Truth and reject Our revelations would be the companions of the Fire in which they would live forever. |
| 002:039 Shakir | : |
And (as to) those who disbelieve in and reject My communications, they are the inmates of the fire, in it they shall abide. |
| 002:039 Sherali | : |
But they who will disbelieve and treat Our signs as lies, these shall be the inmates of the Fire; herein shall they abide. |
| 002:039 Yusufali | : |
"But those who reject Faith and belie Our Signs, they shall be companions of the Fire; they shall abide therein." |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > صفات الكفار Pillars of Islam> Islamic> The Disbelievers> The Characteristics of the Disbelievers أركان الإسلام > التوحيد > المكذبون الظالمون > صفاتهم Pillars of Islam> Islamic> The Oppressive Liars> Their Characteristics الإيمان > الغيب > الخلود > الخلود في العذاب Faith> The Unseen World> The Eternity> The Immortality in Torture الإيمان > الغيب > النار > أصحاب النار Faith> The Unseen World> Hell-Fire>Hell Fellows القرآن الكريم > حقيقته وتصديقه للكتب الأوائل The Holy Quran> The Quran's Reality and its confirmation of the Previous Books الجهاد > (تعليمات حربية (أحكام خاصة > (تعليمات حربية (أحكام خاصة > ماهو أشد من القتل Jihad> Warlike Instructions\Special Rules> Warlike Instructions\Special Rules> What is Stronger than Killing
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Get(SortState)
• 1 if the records in the active table are sorted
• 2 if the records in the active table are partially sorted (semi-sorted)
• If you specify the context for the current calculation, this function will be evaluated based on that context; otherwise, it will be evaluated based on the context of the current window.
•


lab05 : Fun with shapes: Pointers
| num | ready? | description | assigned | due |
|---|---|---|---|---|
| lab05 | true | Fun with shapes: Pointers | Tue 05/08 10:00AM | Mon 05/14 11:59PM |
Goals of this lab
The goal of this lab is to demonstrate how we can abstract “things” in the world (such as geometric objects) into program contructs. We also hope that you will get a lot more practice with using pointers, passing pointers to functions and using pointers along with structs. You will continue to use the TDD process to develop high quality and well-tested code in a systematic manner. Lastly, we would like you to delve deep and have fun! When you run into problems with your code, remember to use the skills we have been learning in class, such as code tracing and drawing pointer diagrams, to understand the dynamics of your program and how it is interacting with memory (for now the run-time stack).
Step by Step Instructions
Step 1: Getting Ready
-
If you are working as a pair, go to github and create a git repo for this lab following the naming convention specified in previous labs. If you are working with a partner only one of you needs to create the repo.
-
If you are working with a partner and you are the one who created the github repo, add your partner as a collborator on the repo
-
Decide on initial navigator and driver.
-
Driver, log on to your CSIL account.
-
Open a terminal window and log into the correct machine.
-
Change into your CS 16 directory
Remember to push your work to github at the end of EVERY work session. That way, both partners always have access to the latest version of the code even if the code is being developed on one partner’s CoE account.
Step 2: Obtain the starter code
This step is similar to lab02, first clone your github repo in the ~/cs16/ directory. Then cd into your repo directory.
cd ~/cs16/lab05_gaucho_ally
Copy the code from your starter code directory to your local lab05 repo using the following command.
cp /cs/faculty/dimirza/cs16/labs/lab05/* ~/cs16/lab05_agaucho_alily/
Typing the list (ls) command should show you the following files in your current directory
[dimirza@csil-03 lab05_agaucho_alily]$ ls
areaOfBoxTest.cpp initBoxTest.cpp pointToStringTest.cpp shapeFuncs.h utility.cpp
areaOfBoxTest.cpp~ initPointTest.cpp README.md shapes.h utility.h
boxesApproxEqualTest.cpp Makefile #shapeFuncs.cpp# tddFuncs.cpp
distanceBetweenTest.cpp pointsApproxEqualTest.cpp shapeFuncs.cpp tddFuncs.h
[dimirza@csil-03 lab05_agaucho_alily]$
Step 3: Reviewing the Files and what your tasks are
Here is a brief description of each of the files and expected implementation. Note that the .h/.cpp files with the same name are a pair. All the function declarations should be placed in the .h files. The definition of the functions that contains your implementation should go in the corresponding .cpp file
- utility.h/cpp : Modify to implement any of your own functions that you will need to solve the problems of this lab
- tddFuncs.h/cpp : Functions that you may use to test your code
- shapes.h : Contains the declaration of two structs: Point and Box. These data structures will be used in other files e.g. shapeFuncs.h/cpp
- shapeFuncs.h/cpp : Functions to compute metrics on geometric constructs such as points and boxes (see shapes.h)
- *Test.cpp: Each of the files that end in Test.cpp contain code to test a particular function in shapeFuncs.cpp. For example distanceBetweenTest.cpp contains test code to test your implementation of the distanceBetween() function in shapeFuncs.cpp. Note that each Test.cpp file tests contains a main function, which means that each test file along with its dependent code is meant to be compiled into a separate executable. The provided Makefile makes sure that this is infact the case. The rationale behind this approach is that each function in shapeFuncs.cpp can be developed and tested independently as much as possible.
Here is a list of your tasks for this lab:
- Run make and see the given code being compiled.
- Run ./distanceBetweenTest and see it fail.
- Edit the distanceBetween function in shapeFuncs.cpp to replace with correct code.
- Run ./distanceBetweenTest and see it pass.
-
Commit and push your code to github.
- Run ./pointsApproxEqualTest and see it pass.
-
Look at the code in pointsApproxEqualTest.cpp and shapeFuncs.cpp and understand how it works; Notice how the pointsApproxEqual() function uses the distanceBetween() function that you just wrote and tested, rather than writing new code within pointsApproxEqual() that repeats the logic of distanceBetween(). The takeaway here is that you want to keep your code as DRY as possible (DRY==Don’t Repeat Yourself). You also want to only reuse code that has already been tested. You’ll need to understand pointsApproxEqual() to get ./boxesApproxEqual to pass.
- Run ./initPointTest and see it fail.
- Looking at the test code in initPointTest.cpp figure out what the initPoint function is supposed to do and add preconditions and postconditions as comments to the start of that function. See page 275 of the book for more information on writing pre and post conditions.
- Edit the initPoint function in shapeFuncs.cpp to replace the stub with correct code.
- Run ./initPointTest and see it pass.
-
Now reason about why your code works. Do this by drawing a pointer diagram that shows the state of memory right before the initPoint function returns when it is called for the very first time by the test code. Your pointer diagram should show the value of member variables x and y of the struct object ‘p1’ in initPointTest.cpp as well as the relationship between ‘p1’ and the formal parameter ‘p’ of the function initPoint. You should also show the formal parameters xVal and yVal in memory and indicate whether or not they are colocated in memory with any other variables (such as x and y). Make the drawing on a piece of paper or as ascii art in a text file and upload it to your gitrepo with the filename: pointer-diagram-initPoint. The diagram will be graded manually by us.
- Run ./boxesApproxEqualTest and see it fail.
- Edit the boxesApproxEqual function in shapeFuncs.cpp to replace the stub with correct code. As you do, consider adding an approxEqual function that takes two double values into utility.h and utility.cpp, as this will make your coding job easier, and keep you code “DRYer”. Also, consider reusing the pointsApproxEqual function in your boxesApproxEqual solution. Remember that the
&&
operator is the symbol for “logical and” in C++. - Run ./boxesApproxEqualTest and see it pass.
- Reason about why your code worked, draw a diagram to show the relationship between the formal and actual parameters. You don’t need to submit the diagram but you may be asked to draw such a diagram on an exam!
-
Commit and push your code to github. This may be a good time to switch partners if you haven’t done so already.
- Run ./initBoxTest and see it fail
- Edit the initBox function in shapeFuncs.cpp to replace with correct code. As you do, remember that you use -> to access members of a struct through a pointer, but simply . to access members of a struct directly. You may need both in your answer.
- Run ./initBoxTest and see it pass
-
Commit and push your code to github.
- Run ./areaOfBoxTest and see it fail
- Edit the areaOfBox function in shapeFuncs.cpp to replace with correct code.
- Run ./areaOfBoxTest and see it pass
-
Commit and push your code to github.
- Run ./pointToStringTest and see it it pass
- Copy pointToStringTest.cpp to boxToStringTest.cpp and make tests for the boxToString function. Look in shapeFuncs.cpp at the boxToString function stub for an example of the format you need for boxToString’s return values. Make tests for different precisions, just like pointToString has.
- Add code to the Makefile so that boxToString runs. Just follow the model–adding code for boxToStringTest everywhere you see code for pointToStringTest
- Run make
-
Commit and push your code to github.
- Run ./boxToStringTest and see the tests fail
- Fix the definition of boxToString in shapeFuncs.cpp
- See the test ./boxToStringTest pass
-
Commit and push your code to github.

Step 4: Checking your work before submitting
When you are finished, you should be able to type make clean
and then make tests
and see the following output:
-bash-4.2$ make clean
/bin/rm -f distanceBetweenTest initPointTest pointsApproxEqualTest boxesApproxEqualTest initBoxTest areaOfBoxTest pointToStringTest *.o
-bash-4.2$ make tests
g++ -Wall -Wno-uninitialized -c -o distanceBetweenTest.o distanceBetweenTest.cpp
g++ -Wall -Wno-uninitialized -c -o tddFuncs.o tddFuncs.cpp
g++ -Wall -Wno-uninitialized -c -o utility.o utility.cpp
g++ -Wall -Wno-uninitialized -c -o shapeFuncs.o shapeFuncs.cpp
g++ -Wall -Wno-uninitialized distanceBetweenTest.o tddFuncs.o utility.o shapeFuncs.o -o distanceBetweenTest
g++ -Wall -Wno-uninitialized -c -o initPointTest.o initPointTest.cpp
g++ -Wall -Wno-uninitialized initPointTest.o tddFuncs.o utility.o shapeFuncs.o -o initPointTest
g++ -Wall -Wno-uninitialized -c -o pointsApproxEqualTest.o pointsApproxEqualTest.cpp
g++ -Wall -Wno-uninitialized pointsApproxEqualTest.o tddFuncs.o utility.o shapeFuncs.o -o pointsApproxEqualTest
g++ -Wall -Wno-uninitialized -c -o boxesApproxEqualTest.o boxesApproxEqualTest.cpp
g++ -Wall -Wno-uninitialized boxesApproxEqualTest.o tddFuncs.o utility.o shapeFuncs.o -o boxesApproxEqualTest
g++ -Wall -Wno-uninitialized -c -o initBoxTest.o initBoxTest.cpp
g++ -Wall -Wno-uninitialized initBoxTest.o tddFuncs.o utility.o shapeFuncs.o -o initBoxTest
g++ -Wall -Wno-uninitialized -c -o areaOfBoxTest.o areaOfBoxTest.cpp
g++ -Wall -Wno-uninitialized areaOfBoxTest.o tddFuncs.o utility.o shapeFuncs.o -o areaOfBoxTest
g++ -Wall -Wno-uninitialized -c -o pointToStringTest.o pointToStringTest.cpp
g++ -Wall -Wno-uninitialized pointToStringTest.o tddFuncs.o utility.o shapeFuncs.o -o pointToStringTest
./distanceBetweenTest
PASSED: distanceBetween(p1,p2)
PASSED: distanceBetween(p2,p1)
PASSED: distanceBetween(p3,p4)
PASSED: distanceBetween(p4,p5)
PASSED: distanceBetween(p5,p3)
./initPointTest
PASSED: pointsApproxEqual(p1,p1Expected)
PASSED: pointsApproxEqual(p2,p2Expected)
PASSED: pointsApproxEqual(p3,p3Expected)
PASSED: pointsApproxEqual(p4,p4Expected)
./pointsApproxEqualTest
PASSED: pointsApproxEqual(p1,p1)
PASSED: pointsApproxEqual(p1,p2)
PASSED: assertFalse(pointsApproxEqual(p2,p1)
./boxesApproxEqualTest
PASSED: boxesApproxEqual(b0,b0)
PASSED: boxesApproxEqual(b1,b0)
PASSED: boxesApproxEqual(b0,b1)
PASSED: boxesApproxEqual(b0,b2)
PASSED: boxesApproxEqual(b0,b3)
PASSED: boxesApproxEqual(b0,b4)
PASSED: boxesApproxEqual(b5,b6)
PASSED: boxesApproxEqual(b6,b5)
./initBoxTest
PASSED: boxesApproxEqual(b1,b1Expected)
PASSED: boxesApproxEqual(b2,b2Expected)
PASSED: boxesApproxEqual(b1,b2)
./areaOfBoxTest
PASSED: areaOfBox(r)
PASSED: areaOfBox(s)
PASSED: areaOfBox(t)
PASSED: areaOfBox(u)
./pointToStringTest
PASSED: pointToString(p1)
PASSED: pointToString(p2)
PASSED: pointToString(p2,1)
PASSED: pointToString(p2,4)
PASSED: pointToString(p2,5)
-bash-4.2$
Plus, some output at the end with the output of your boxToStringTest
./boxToStringTest
PASSED: boxToString(b1,1)
PASSED: boxToString(b1,2)
PASSED: boxToString(b1,3)
PASSED: boxToString(b1,4)
PASSED: boxToString(b1,5)
PASSED: boxToString(b1,6)
-bash-4.2$
At that point, you are ready to try submitting on gradescope.
Step 5: Submitting via gradescope
Submit all the cpp files to lab05 assignment on gradescope. Then visit gradescope and check that you have a correct score. If you are working with a partner, make sure both of you join a team on gradescope, otherwise only one of you will get credit for the lab
- You must check that you have followed these style guidelines:
- Indentation is neat, consistent and follows good practice (see below)
- Variable name choice: variables should have sensible names.  Code that is inside braces should be indented, and code that is at the same “level” of nesting inside braces should be indented in a consistent way. Follow the examples from lecture, the sample code, and from the textbook.
- Your submission should be on-time. If you miss the deadline, you are subject to getting a zero
Commit and push the latest version of your code on github
Grading Rubric
Points from gradescope automatic grading:
| Test Group | Test Name | Value |
|---|---|---|
| areaOfBoxTest | areaOfBoxTest | (30 pts) |
| boxToStringTest | boxToStringTest (requires you to add a new file, so more points) | (60 pts) |
| boxesApproxEqualTest | boxesApproxEqualTest | (30 pts) |
| distanceBetweenTest | expected output from distanceBetweenTest | (30 pts) |
| initBoxTest | initBoxTest | (30 pts) |
| initPointTest | initPointTest | (30 pts) |
| pointToStringTest | pointToStringTest (should pass in base code, so no points assigned) | (0 pts) |
| pointsApproxEqualTest | pointsApproxEqualTest output (should pass in base code, so no points) | (0 pts) |
Style: Good choice of variable names, code indented in ways that are consistent, and in line with good C++ practice. Where applicable, common code is factored out into functions (added to utility.h and utility.cpp as needed).
This last point may or may not arise, but if it does, utility.h and utility.cpp is a place where functions needed in multiple files can be put—prototypes in utility.h and function definitions in utility.cpp.
You will note that the gradescope score is worth 250 points. The grade will ultimately normalized to be out of 100 points. This lab is worth exactly the same as all the other labs done so far (i.e. the 250 points here are equivalent to 100 points in other labs).
Step 6: Done!
Once your submission receives a score of 250/250, you are done with this assignment. Remember that we will check your code for appropriate comments, formatting, and the use of required code, as stated earlier, based on your github submission.
If you are in the Phelps lab or in CSIL, make sure to log out of the machine before you leave. Also, make sure to close all open programs before you log out. Some programs will not work next time if they are not closed. Remember to save all your open files before you close your text editor.
If you are logged in remotely, you can log out using the exit command:
$ exit


1
Click Book to process.
-
" . $tab['name'] . "";
}
?>
| Country & Tour | "; echo "Duration | "; echo "Price From | "; echo "Frequency | "; echo "Start/End City | "; echo "Flyer | "; echo "Action | "; echo "Order Flyer | "; echo "
|---|


📅 (2022-10-10 20:00:39 UTC)
# Packages matching: installed # Name # Installed # Synopsis base-bigarray base base-threads base base-unix base conf-findutils 1 Virtual package relying on findutils coq 8.12.1 Formal proof management system num 1.4 The legacy Num library for arbitrary-precision integer and rational arithmetic ocaml 4.11.2 The OCaml compiler (virtual package) ocaml-base-compiler 4.11.2 Official release 4.11.2 ocaml-config 1 OCaml Switch Configuration ocamlfind 1.9.5 A library manager for OCaml # opam file: opam-version: "2.0" synopsis: "Verified compiler for data-centric languages" description: """ This is the Coq library for Q*cert, a platform for implementing and verifying data languages and compilers. It includes abstract syntax and semantics for several source query languages (OQL, SQL), for intermediate database representations (nested relational algebra and calculus), and correctness proofs for part of the compilation to JavaScript and Java. """ maintainer: "Jerome Simeon<EMAIL_ADDRESS>authors: [ "Josh Auerbach <>" "Martin Hirzel <>" "Louis Mandel <>" "Avi Shinnar <>" "Jerome Simeon <>" ] license: "Apache-2.0" homepage: "https://querycert.github.io" bug-reports: "https://github.com/querycert/qcert/issues" dev-repo: "git+https://github.com/querycert/qcert" build: [ [make "configure"] [make "-j" jobs name] ["dune" "build" "-j" jobs "-p" name] ] install: [ [make "install-coqdev"] ] depends: [ "ocaml" {>= "4.09.1"} "ocamlfind" "dune" "coq" {>= "8.11.0" & < "8.13~"} "coq-jsast" {>= "2.0.0"} "menhir" "base64" "uri" "calendar" ] tags: [ "keyword:databases" "keyword:queries" "keyword:relational" "keyword:compiler" "date:2022-03-08" "logpath:Qcert" ] url { src: "https://github.com/querycert/qcert/archive/v2.1.1.tar.gz" checksum: "351f5ae9b1380e6a0f673a21b483e6b2" }
true
Dry install with the current Coq version:
opam install -y --show-action coq-qcert.2.1.1 coq.8.12.1
Dry install without Coq/switch base, to test if the problem was incompatibility with the current Coq/OCaml version:
true
opam list; echo; ulimit -Sv 4000000; timeout 4h opam install -y --deps-only coq-qcert.2.1.1 coq.8.12.1
opam list; echo; ulimit -Sv 16000000; timeout 8h opam install -y -v coq-qcert.2.1.1 coq.8.12.1
# Packages matching: installed # Name # Installed # Synopsis angstrom 0.15.0 Parser combinators built for speed and memory-efficiency base-bigarray base base-bytes base Bytes library distributed with the OCaml compiler base-threads base base-unix base base64 3.5.0 Base64 encoding for OCaml bigstringaf 0.9.0 Bigstring intrinsics and fast blits based on memcpy/memmove calendar 2.04 Library for handling dates and times in your program conf-findutils 1 Virtual package relying on findutils conf-pkg-config 2 Check if pkg-config is installed and create an opam switch local pkgconfig folder coq 8.12.1 Formal proof management system coq-jsast 3.0.0 A minimal JavaScript syntax tree carved out of the JsCert project dune 3.4.1 Fast, portable, and opinionated build system menhir 20220210 An LR(1) parser generator menhirLib 20220210 Runtime support library for parsers generated by Menhir menhirSdk 20220210 Compile-time library for auxiliary tools related to Menhir num 1.4 The legacy Num library for arbitrary-precision integer and rational arithmetic ocaml 4.11.2 The OCaml compiler (virtual package) ocaml-base-compiler 4.11.2 Official release 4.11.2 ocaml-config 1 OCaml Switch Configuration ocaml-syntax-shims 1.0.0 Backport new syntax to older OCaml versions ocamlfind 1.9.5 A library manager for OCaml result 1.5 Compatibility Result module stringext 1.6.0 Extra string functions for OCaml uri 4.2.0 An RFC3986 URI/URL parsing library [NOTE] Package coq is already installed (current version is 8.12.1). The following actions will be performed: - install coq-qcert 2.1.1 <><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><> Processing 1/1: [coq-qcert.2.1.1: http] [coq-qcert.2.1.1] downloaded from https://github.com/querycert/qcert/archive/v2.1.1.tar.gz Processing 1/1: <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> Processing 1/2: [coq-qcert: make configure] + /home/bench/.opam/opam-init/hooks/sandbox.sh "build" "make" "configure" (CWD=/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1) - [Q*cert] - [Q*cert] Configuring Build - [Q*cert] - make[1]: Entering directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' - make -C runtimes/javascript - make[2]: Entering directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1/runtimes/javascript' - (for i in qcert-runtime-core.js qcert-runtime-tostring.js qcert-runtime-sql-date.js qcert-runtime-uri.js; do \ - cat $i; \ - done) > qcert-runtime.js - (echo "let runtime = {runtime|"; \ - cat qcert-runtime.js; \ - echo '|runtime}' \ - ) > qcert_runtime.ml - make[2]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1/runtimes/javascript' - cp runtimes/javascript/qcert_runtime.ml compiler/lib/js_runtime.ml - echo "(* This file is generated *)" > compiler/lib/static_config.ml - echo "let qcert_home = \"/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1\"" >> compiler/lib/static_config.ml - make[1]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' Processing 1/2: [coq-qcert: make 4] + /home/bench/.opam/opam-init/hooks/sandbox.sh "build" "make" "-j" "4" "coq-qcert" (CWD=/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1) - make[1]: Entering directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' - [Q*cert] - [Q*cert] Building Compiler from Coq - [Q*cert] - make[2]: Entering directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' - COQDEP VFILES - COQC compiler/core/Version.v - COQC compiler/core/Utils/CoqLibAdd.v - COQC compiler/core/Utils/Lift.v - COQC compiler/core/Utils/Float.v - COQC compiler/core/Utils/Lattice.v - COQC compiler/core/Utils/Monoid.v - COQC compiler/core/Utils/Digits.v - COQC compiler/core/Utils/Var.v - COQC compiler/core/Utils/Closure.v - COQC compiler/core/Utils/Result.v - COQC compiler/core/Utils/Apply.v - COQC compiler/core/TypeSystem/ForeignType.v - COQC compiler/core/JavaScriptAst/Lang/JavaScriptAst.v - COQC compiler/core/Extraction/ExtrOcamlFloatNatIntZInt.v - COQC compiler/core/Utils/ListAdd.v - COQC compiler/core/Utils/StringAdd.v - COQC compiler/core/Data/Model/ForeignData.v - COQC compiler/core/Utils/NativeString.v - COQC compiler/core/Utils/EmitUtil.v - COQC compiler/core/JavaScript/Lang/JavaScript.v - COQC compiler/core/SparkDF/Lang/SparkDF.v - COQC compiler/core/JavaScript/JavaScriptRuntime.v - COQC compiler/core/SparkDF/SparkDFRuntime.v - COQC compiler/core/SparkDF/SparkDFSystem.v - COQC compiler/core/JavaScript/JavaScriptSystem.v - COQC compiler/core/Utils/SortingAdd.v - COQC compiler/core/Utils/Assoc.v - COQC compiler/core/Utils/OptimizerStep.v - COQC compiler/core/Utils/OptimizerLogger.v - COQC compiler/core/Utils/ToString.v - COQC compiler/core/JSON/Model/JSON.v - COQC compiler/core/EJson/Model/ForeignEJson.v - COQC compiler/core/Translation/Operators/ForeignToJavaScriptAst.v - COQC compiler/core/Utils/Sublist.v - COQC compiler/core/Utils/Compat.v - COQC compiler/core/Utils/LiftIterators.v - COQC compiler/core/Utils/Bag.v - COQC compiler/core/Utils/Bindings.v - COQC compiler/core/Utils/Fresh.v - COQC compiler/core/Utils/GroupByDomain.v - COQC compiler/core/Utils/Interleaved.v - COQC compiler/core/Utils/BindingsNat.v - COQC compiler/core/Utils/SortingDesc.v - COQC compiler/core/Utils/Encode.v - COQC compiler/core/JSON/Model/JSONNorm.v - COQC compiler/core/JSON/JSONRuntime.v - COQC compiler/core/JSON/JSONSystem.v - COQC compiler/core/Utils/Utils.v - COQC compiler/core/Brands/BrandRelation.v - COQC compiler/core/EJson/Model/EJson.v - COQC compiler/core/Translation/Model/ForeignEJsonToJSON.v - COQC compiler/core/Translation/Model/ForeignTypeToJSON.v - COQC compiler/core/Imp/Lang/Imp.v - COQC compiler/core/JavaScriptAst/Lang/JavaScriptAstUtil.v - COQC compiler/core/Java/Lang/Java.v - COQC compiler/core/Compiler/Component/LoggerComponent.v - COQC compiler/core/EJson/Model/EJsonNorm.v - COQC compiler/core/EJson/Operators/ForeignEJsonRuntime.v - COQC compiler/core/EJson/Operators/EJsonOperators.v - COQC compiler/core/EJson/Operators/EJsonGroupBy.v - COQC compiler/core/EJson/Operators/EJsonSortBy.v - COQC compiler/core/Imp/Lang/ImpSize.v - COQC compiler/core/Imp/Lang/ImpEval.v - COQC compiler/core/JavaScriptAst/JavaScriptAstRuntime.v - COQC compiler/core/Java/JavaRuntime.v - COQC compiler/core/JavaScriptAst/JavaScriptAstSystem.v - COQC compiler/core/Translation/Lang/JavaScriptAsttoJavaScript.v - COQC compiler/core/Imp/Lang/ImpEq.v - File "./compiler/core/Translation/Lang/JavaScriptAsttoJavaScript.v", line 64, characters 2-295: - Error: Non exhaustive pattern-matching: no clause found for pattern - literal_bigint _ - - COQC compiler/core/Java/JavaSystem.v - make[3]: *** [Makefile.coq:716: compiler/core/Translation/Lang/JavaScriptAsttoJavaScript.vo] Error 1 - make[3]: *** Waiting for unfinished jobs.... - make[2]: *** [Makefile.coq:339: all] Error 2 - make[2]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' - make[1]: *** [Makefile:147: qcert-coq] Error 2 - make[1]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' - make: *** [Makefile:78: coq-qcert] Error 2 [ERROR] The compilation of coq-qcert failed at "/home/bench/.opam/opam-init/hooks/sandbox.sh build make -j 4 coq-qcert". #=== ERROR while compiling coq-qcert.2.1.1 ====================================# # context 2.0.7 | linux/x86_64 | ocaml-base-compiler.4.11.2 | file:///home/bench/run/opam-coq-archive/released # path ~/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1 # command ~/.opam/opam-init/hooks/sandbox.sh build make -j 4 coq-qcert # exit-code 2 # env-file ~/.opam/log/coq-qcert-14024-e4db2f.env # output-file ~/.opam/log/coq-qcert-14024-e4db2f.out ### output ### # [...] # File "./compiler/core/Translation/Lang/JavaScriptAsttoJavaScript.v", line 64, characters 2-295: # Error: Non exhaustive pattern-matching: no clause found for pattern # literal_bigint _ # # COQC compiler/core/Java/JavaSystem.v # make[3]: *** [Makefile.coq:716: compiler/core/Translation/Lang/JavaScriptAsttoJavaScript.vo] Error 1 # make[3]: *** Waiting for unfinished jobs.... # make[2]: *** [Makefile.coq:339: all] Error 2 # make[2]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' # make[1]: *** [Makefile:147: qcert-coq] Error 2 # make[1]: Leaving directory '/home/bench/.opam/ocaml-base-compiler.4.11.2/.opam-switch/build/coq-qcert.2.1.1' # make: *** [Makefile:78: coq-qcert] Error 2 <><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> +- The following actions failed | - build coq-qcert 2.1.1 +- - No changes have been performed # Run eval $(opam env) to update the current shell environment 'opam install -y -v coq-qcert.2.1.1 coq.8.12.1' failed.
No files were installed.
true


FastClick
FastClick is a simple, easy-to-use library for eliminating the 300ms delay between a physical tap and the firing of a click
event on mobile browsers. The aim is to make your application feel less laggy and more responsive while avoiding any interference with your current logic.
FastClick is developed by FT Labs, part of the Financial Times.
Why does the delay exist?
According to Google:
…mobile browsers will wait approximately 300ms from the time that you tap the button to fire the click event. The reason for this is that the browser is waiting to see if you are actually performing a double tap.
Compatibility
The library has been deployed as part of the FT Web App and is tried and tested on the following mobile browsers:
- Mobile Safari on iOS 3 and upwards
- Chrome on iOS 5 and upwards
- Chrome on Android (ICS)
- Opera Mobile 11.5 and upwards
- Android Browser since Android 2
- PlayBook OS 1 and upwards
When it isn’t needed
FastClick doesn’t attach any listeners on desktop browsers.
Chrome 32+ on Android with width=device-width
in the viewport meta tag doesn’t have a 300ms delay, therefore listeners aren’t attached.
<meta name="viewport" content="width=device-width, initial-scale=1">
Same goes for Chrome on Android (all versions) with user-scalable=no
in the viewport meta tag. But be aware that user-scalable=no
also disables pinch zooming, which may be an accessibility concern.
For IE11+, you can use touch-action: manipulation;
to disable double-tap-to-zoom on certain elements (like links and buttons). For IE10 use -ms-touch-action: manipulation
.
Usage
Include fastclick.js in your JavaScript bundle or add it to your HTML page like this:

The script must be loaded prior to instantiating FastClick on any element of the page.
To instantiate FastClick on the body
, which is the recommended method of use:
if ('addEventListener' in document) {
document.addEventListener('DOMContentLoaded', function() {
FastClick.attach(document.body);
}, false);
}
Or, if you’re using jQuery:
$(function() {
FastClick.attach(document.body);
});
If you’re using Browserify or another CommonJS-style module system, the FastClick.attach
function will be returned when you call require('fastclick')
. As a result, the easiest way to use FastClick with these loaders is as follows:
var attachFastClick = require('fastclick');
attachFastClick(document.body);
Minified
Run make
to build a minified version of FastClick using the Closure Compiler REST API. The minified file is saved to build/fastclick.min.js
or you can download a pre-minified version.
Note: the pre-minified version is built using our build service which exposes the FastClick
object through Origami.fastclick
and will have the Browserify/CommonJS API (see above).
var attachFastClick = Origami.fastclick;
attachFastClick(document.body);
AMD
FastClick has AMD (Asynchronous Module Definition) support. This allows it to be lazy-loaded with an AMD loader, such as RequireJS. Note that when using the AMD style require, the full FastClick
object will be returned, not FastClick.attach
var FastClick = require('fastclick');
FastClick.attach(document.body, options);
Package managers
You can install FastClick using Component, npm or Bower.
For Ruby, there’s a third-party gem called fastclick-rails. For .NET there’s a NuGet package.
Advanced
Ignore certain elements with needsclick
Sometimes you need FastClick to ignore certain elements. You can do this easily by adding the needsclick
class.
Ignored by FastClick
Use case 1: non-synthetic click required
Internally, FastClick uses document.createEvent
to fire a synthetic click
event as soon as touchend
is fired by the browser. It then suppresses the additional click
event created by the browser after that. In some cases, the non-synthetic click
event created by the browser is required, as described in the triggering focus example.
This is where the needsclick
class comes in. Add the class to any element that requires a non-synthetic click.
Use case 2: Twitter Bootstrap 2.2.2 dropdowns
Another example of when to use the needsclick
class is with dropdowns in Twitter Bootstrap 2.2.2. Bootstrap add its own touchstart
listener for dropdowns, so you want to tell FastClick to ignore those. If you don’t, touch devices will automatically close the dropdown as soon as it is clicked, because both FastClick and Bootstrap execute the synthetic click, one opens the dropdown, the second closes it immediately after.
Dropdown
Examples
FastClick is designed to cope with many different browser oddities. Here are some examples to illustrate this:
- basic use showing the increase in perceived responsiveness
- triggering focus on an input element from a
click
handler - input element which never receives clicks but gets fast focus
Tests
There are no automated tests. The files in tests/
are manual reduced test cases. We’ve had a think about how best to test these cases, but they tend to be very browser/device specific and sometimes subjective which means it’s not so trivial to test.
Credits and collaboration
FastClick is maintained by Rowan Beentje, Matthew Caruana Galizia and Matthew Andrews at FT Labs. All open source code released by FT Labs is licenced under the MIT licence. We welcome comments, feedback and suggestions. Please feel free to raise an issue or pull request.


--- layout: post status: publish published: true title: More Asshattery from Ozzie author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>excerpt: "\n\nI don't know what it is about this guy, but he feels the need to trivialize the accomplishments of every opposing player.  So Ozzie must downplay Edmonds' accomplishments " wordpress_id: 103 wordpress_url: http://ivyenvy.wordpress.com/?p=103 date: '2008-06-22 19:41:58 +0000' date_gmt: '2008-06-22 19:41:58 +0000' categories: - General Baseball tags: - Asshat - Jim Edmonds - Ozzie Guillen comments: [] ---
I don't know what it is about this guy, but he feels the need to trivialize the accomplishments of every opposing player.
"Jim is Jim. Jim is not going to scare me," Guillen said. "I will pitch to him another time. He just hit a couple of home runs. Good for him."
I don't want to take down my "W" flag. Go Cubs, Sweep the Sox!


The largest study of its kind has shown that 84 percent of women, across 22 countries, are experiencing street harassment before the age of 17 - and that figure is even higher in Britain
by RADHIKA SANGHANI
A shocking 90 percent of British women have reported experiencing street harassment for the first time during puberty. It's slightly worse that the international average. A new report, taking the in 22 countries, shows that on average 84 percent of women are harasses on the street before they turn 17.
Over 16,000 women were surveyed by anti-street harassment group Hollaback! It found that most women experienced catcalling – where people shout sexual comments at you on the street – for the first time between the ages 11 and 17.
“People don’t want to recognise that this starts really young,” Debjani Roy, deputy director of Hollaback! told the Daily News. “The emotional impact it has as girls develop is quite significant.
“This is a global problem. This really points to the fact that it is a global epidemic.”
The extensive study, carried out with the help of Cornell University in the US, also found that more than half of women in those 22 countries have reported being fondled or groped without their permission. Almost three-quarters of women across the world also reported being followed. In the US, street harassment led 72 per cent of women to take different transportation, while 80 per cent of South African women reported changing their clothes for the same reason. Nearly half of Indian women had been confronted with another person exposing themselves, and 80 per cent said they were unwilling to go out at night because of harassment.
On Twitter, women have been sharing their own experiences with the hashtag #firstharassed, showing that for many it starts before they even reach puberty.
Street harassment and the effects of what it does to its victims has been a focus in mainstream media recently. From the company Hollaback!’s viral video, “10 Hours Walking in NYC as a Woman,” to a rebuttal video of why men think it is okay to harass women on the street the debate on whether or not street harassment is just harmless compliments or a reflection on rape culture is hotly debated by men and women. So let’s start with the basics. What exactly constitutes street harassment?
Well, according to StopStreetHarassment.com, the definition of gender-based street harassment is unwanted comments, gestures, and actions forced on a stranger in a public space without their consent, and is directed at them because of their actual or perceived sex, gender, gender expression or sexual orientation.Since the definition says gender-based, it is explaining that men, women and non-binary individuals can be on the receiving end of street harassment. The definition goes on to say that street harassment includes unwanted whistling, leering, sexist, homophobic or transphobic slurs, persistent requests for someone’s name, number or destination after they’ve said no, sexual names, comments and demands, following, flashing, groping, and/or sexual assault.
Many believe street harassment is harmless because it is so deeply ingrained in our culture. Anyone who lives in large cities especially experience street harassment on a daily basis. Statistics as of 2014 show that 65% of all women and 25% of all men will have experienced street harassment at some point in their lives. By the age of 12 years old 1 in 4 women will have experienced street harassment. Earlier in 2016 Disney star, Rowan Blanchard, of the show “Girl Meets World,” opened up about her first catcalling experience at age 12.
Besides Hollaback’s viral video this was the first large mainstream conversation about street harassment. Street harassment was not really talked about until the last few years, research is just beginning when it comes to exploring the ramifications and consequences of street harassment.
As shown in the statistics above street harassment is an issue that mostly affects women, especially women of color, LGBTQIA people and gender non-conforming people, but it can definitely affect men as well. Our culture of hypermasculinity creates an environment that invites harassment towards men who may not express themselves or identify as the cultural masculine norm. The 25% of men who have experienced harassment as well have been subject to homophobic or transphobic slurs.
It is important that men are the ones to learn about and understand the ramifications of street harassment and how it is not just a joke or a compliment because men are overwhelmingly the perpetrators of street harassment against men and women. Statistics show that only 3% of people who experience street harassment find it complimentary.
 Hollaback and Cornell University surveyed almost 5,000 people about street harassment and found that 85% of people under 40 years old have taken a different route home to avoid street harassment, 72% have taken a different mode of transportation and 70% had decided against going to a social event like a party or a movie because of potential street harassment.
People have changed their routines, hobbies and habits just to accommodate for street harassers and that is just not okay. 66% of people said they had changed the way they dressed or changed an outfit so they wouldn’t get harassed. Some people feel the need to pay for a gym membership instead of just running outside for safety reasons.
They will pay for a taxi or Uber late at night instead of taking public transit or walking just to avoid street harassment, and that can be a financial burden to people as well. In dire circumstances 35% of people had admitted that they had moved or quit jobs because of the high number of street harassers in their neighborhood or work area.
Street harassment can have detrimental psychological effects as well.  It can be traumatizing to sexual assault victims and can alter a person’s livelihood just because of safety concerns.
Some people believe that street harassment is just a few words yelled at someone out of a car window, a passing comment on the street or someone staring at you, but it can definitely escalate very quickly if the person refuses or ignores a perpetrator. People have been followed, stalked, harassed, physically attacked, sexually assaulted and even killed in not responding or responding negatively to street harassment.
 On the spectrum of violence against people it becomes clear that people are meant to police and control different areas of their lives to avoid becoming a victim or target.Instead of telling people “Hey, stop catcalling people,” we are told over and over again that those people should dress differently, take a different bus, skip a party, or not walk in a certain area.
 By putting the onus of a person’s safety on their ability to not become a victim rather than on violent perpetrators to stop hurting people then street harassment will continue.
People have reported that they constantly assess their surroundings, avoid making eye contact, purposely wear clothes to attract less attention, avoid going out at night or going alone, and talk/pretend to talk on a cell phone to avoid street harassment. There has to be better ways to prevent this and take action.
A growing number of political powers, like the United Nations, governments, transit authorities, and organizations are recognizing the effects of street harassment and putting laws and tools in place to prevent it. Vote those bills into laws, help make street harassment a legal and financial consequence for perpetrators. Political organizations are taking concrete steps to make public places safer, and we can too.
Be a good bystander, if you see street harassment happening be a friend to a stranger, help them out of a potentially bad situation.  Be safe, be smart, and help bring an end to street harassment for good.


Delete Book Record
Add book
Delete book
Book content
The following book has been deleted:
Book id: {{recordd.BookId}}


Muro 3
Readme
Press P to pause
Move using arrow keys, or touching left/right in the upper part of the screen
Get to the left or right border to pick a rock
Throw the rock with space, down arrow, or touching the bottom of the screen


Forward a local port to i2p over the SAM API, or proxy a destination to a port on the local host. This is no longer substantially a work-in-progress, it's a very useful way of configuring applications in an i2ptunnel-like way. TCP and UDP are supported, but there may be some lingering bugs in UDP, please report them if found.
STATUS: This project is maintained. I will respond to issues, pull requests, and feature requests within a few days. I am not adding many new features to it at this time.
go get -u github.com/eyedeekay/sam-forwarder/samcatd
# for now
Just:
make deps build
and it will be in the folder ./bin/
There are a number of ways to use sam-forwarder:
The standalone application for configuring tunnels is named samcatd and it's
main package is in the directory
./samcatd
. It works as a cli and is
capable of running a WebUI, which is currently view-only. In a future time, the
WebUI will also be capable of configuring and editing tunnels.
The previous application ephsite has been fully retired. If you were using it,
it can usually be replaced with
samcatd -s
and your existing arguments.
I need samcatd to accept a configuration folder identical to /etc/i2pd/tunnels.conf.d, since part of the point of this is to be compatible with i2pd's tunnels configuration. Once this is done, I'll resume turning it into a .deb package.
It doesn't encrypt the .i2pkeys file by default, so if someone can steal them, then they can use them to construct tunnels to impersonate you. Experimental support for encrypted saves has been added. The idea is that only the person with the key will be able to decrypt and start the tunnels. It is up to the user to determine how to go about managing these keys. Right now this system is pretty bad. I'll be addressing that soon too.
Experimental support for KCP-based error correction and streaming-over-datagrams is in the works. Some kind of reverse-proxy or filter is also an obvious choice.
I've only enabled the use of a subset of the i2cp and tunnel configuration options, the ones I use the most and for no other real reason assume other people use the most. They're pretty easy to add, it's just boring. If you want an i2cp or tunnel option that isn't available, bring it to my attention please. I'm pretty responsive when people actually contact me, it'll probably be added within 24 hours. I intend to have configuration options for all relevant i2cp and tunnel options, which I'm keeping track of here .
I need to just change how the configuration is done entirely. I want it to work with the configuration formats used by each I2P router.
TLS configuration is experimental. I have decided to implement optional, automatically-configured self-signed TLS certificates. No CA support is planned as an alternative CA would have to be used and no apparent option exists which would be usable. If you're working on anything like that, I would like very to know.
Mostly mine, but this is all Free-as-in-Freedom for anyone to use:
XMR:43V6cTZrUfAb9JD6Dmn3vjdT9XxLbiE27D1kaoehb359ACaHs8191mR4RsJH7hGjRTiAoSwFQAVdsCBToXXPAqTMDdP2bZB
BTC:159M8MEUwhTzE9RXmcZxtigKaEjgfwRbHt