{23} Trac comments (3729 matches)
Results (1 - 100 of 3729)
Ticket | Posixtime | Author | Newvalue | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
#23 | 1182834140000000 | ChepDiso | <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst1.html '>airline discount tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst2.html '>cheap airfare</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst3.html '>cheap air fares</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst4.html '>cheap air flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst5.html '>cheap airline flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst6.html '>cheap airline tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst7.html '>cheap airplane tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst8.html '>cheap air tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst9.html '>cheap air travel</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst10.html '>cheap checks</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst11.html '>cheap concert tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst12.html '>cheap cruises</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst13.html '>cheap discount airfare</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst14.html '>cheap disney tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst15.html '>cheap flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst16.html '>cheap flights dubai</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst17.html '>cheap flights manila</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst18.html '>cheap flights paris</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst19.html '>cheap flights prague</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst20.html '>cheap flights rome</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst21.html '>cheap flights sydney</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst22.html '>cheap flights to australia</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst23.html '>cheap flights to europe</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst24.html '>cheap flights uk</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst25.html '>cheap flight tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst26.html '>cheap hotels</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst27.html '>cheap international airfare</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst28.html '>cheap international air fares</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst29.html '>cheap international flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst30.html '>cheap motels</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst31.html '>cheap northwest flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst32.html '>cheap plane tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst33.html '>cheap sunglasses</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst34.html '>cheap tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst35.html '>cheap tickets london</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst36.html '>cheap tires</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst37.html '>cheap train tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst38.html '>cheap travel</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst39.html '>cheap travel packages</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst40.html '>cheap vacations</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst41.html '>cheap wedding favors</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst42.html '>cheap wedding invitations</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst43.html '>dirt cheap airfare</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst44.html '>dirt cheap tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst45.html '>discount airfare</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst46.html '>discount air fares</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst47.html '>discount airlines</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst48.html '>discount air travel</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst49.html '>discount auto parts</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst50.html '>discount cosmetics</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst51.html '>discount cruises</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst52.html '>discount fabric</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst53.html '>discount flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst54.html '>discount hotels</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst55.html '>discount international flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst56.html '>discount jewelry</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst57.html '>discount kitchen cabinets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst58.html '>discount lodging</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst59.html '>discount perfume</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst60.html '>discount plane tickets</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst61.html '>discount shoes</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst62.html '>discount sunglasses</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst63.html '>discount tire</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst64.html '>discount travel</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst65.html '>discount travel packages</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst66.html '>military discount flights</a> <a href='http://blogs.lib.uconn.edu/nst/wp-content/themes/nst/nst67.html '>military discount travel</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl1.html '>airfares rome</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl2.html '>airline reservations</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl3.html '>airline travel</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl4.html '>air travel finder</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl5.html '>bargain flights</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl6.html '>best air fares</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl7.html '>business class flights</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl8.html '>cheap air travel</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl9.html '>discount air travel</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl10.html '>discounted fares</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl11.html '>discounted flights</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl12.html '>flight las vegas</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl13.html '>flights johannesburg</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl14.html '>flights moscow</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl15.html '>flights panama</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl16.html '>flights riga</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl17.html '>flights tokyo</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl18.html '>flights vilnius</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl19.html '>flight tracker</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl20.html '>hotel reservations</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl21.html '>last minute airfare</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl22.html '>last minute flights</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl23.html '>low air fares</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl24.html '>lowest airfares</a> <a href='http://blogs.lib.uconn.edu/rcl/wp-content/themes/rcl/rcl25.html '>southwest airlines fares</a> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#336 | 1279368544000000 | Donny | http://ckan.net/api/search/resource?url=http://scraperwiki.com&all_fields=1&callback=ckantest yields Bad search option: Field "callback" not recognised in Resource search. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#128 | 1275694573000000 | Floallgloli | Futures Trading Key your Futures education provider Learn how to trade futures with live trading education Futures education and trading free trial live on line room <a href=http://www.futurestradingkey.com><B>Futures</B></a> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1291742752000000 | Stiivi | I see two possible options: Option A: store only mirrors of source files, have file format based plugins for querying files Option B: store mirrors of source files, have plugin based loading scripts into "common structured format", have single query module. I would go with option B as it is: - easier to implement - file format based transformations are simpler than file format based queries - more transparent data management process - only one simple query module (see attached ckan-srcmirror.png) The Option B will fit better to the broader data architecture context: http://democracyfarm.org/f/ckan/data_arch.png Concerning API I would suggest to try to be compatible with google spreadsheet API: http://code.google.com/apis/spreadsheets/data/3.0/reference.html | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1291851275000000 | Stiivi | @thejimmyg: It is neat simple solution. You have suggested a proxy API: ''There will be a new API at ``/api/spreadsheet?callback=jsonpcallback&url=`` '' There are two options: 1. Have public ckan data proxy as stand-alone service: I get package resource URL from CKAN and pass it to proxy 2. Have ckan data API (as ticket title suggests): If I am talking to CKAN, I am getting data from CKAN, I should not care about proxy or anything behind nor I should care about original data source - I care about resource data in a format that I can process (CSV/JSON). For CKAN data API I would suggest something like: {{{ /api/resource_data/RESOURCE_ID?... }}} or more human readable: {{{ /api/resource_data/PACKAGE_NAME/RESOURCE_NUMBER?... }}} This will allow others to get only CKAN resources. Moreover, allowing to get only resource data (not any URL data) would allow us to pre-process resources in the future. First version/implementation: pass each requested resource URL to your proxy service (external, not CKAN related), which determines file by file extension in URL, fail on unknown file or unprocessable file. /api/resource_data/PACKAGE/RESOURCE?output=jsonp&sheet=1... would be redirected to (for example): http://1.latest.jsonpdataproxy.appspot.com/?url=RESOURCE["URL"]&sheet=1... Second version/implementation: Determine file type in advance and pass to appropriate conversion service when requested If you upload document on scribd or slideshare it gets processed in the background. This can be done in CKAN after any resource change. We do not need to download the file at the moment, however what can be done is: 1. try a converter by URL file extension 2. try a converter by MIME type (content-type header) 3. brute-force try all converters No need to store copies of files, just store determined file type somewhere in the resource record (as mime type). Also, it would be nice if any data conversion service would provide output in both - JSON/CSV. Therefore we would be able to have "Download CSV" link directly in CKAN web page for browsing users: /api/resource_data/PACKAGE/RESOURCE?output=csv... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1291858346000000 | Stiivi | I have created "proof of concept" implementation that will use external data proxy service when accessing: {{{ /api/data/PACKAGE_ID }}} like: {{{ http://127.0.0.1:5000/api/data/069c80f8-8476-452e-bfd4-0a9077666c14 }}} It just works and requires refactoring to match ckan standards. I would need help from soneone who knows ckan internals better. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1291859298000000 | Stiivi | One more note: it would be good if packages had names/identifiers as well, as referencing internal IDs from outside world is not very good practice - they are quite volatile, mostly in regard to expected objects. PACKAGE/RESOURCE_REFERENCE Possible resource references: - 'default' - reserved keyword for 'the only one resource' if there is only one, or first resource if there are more or the one with flag 'default' - 'latest' - to be able to access 'latest' resource within package (or 'actual' or 'last'?) - alphanumeric identifier (not starting with number) - number - index of resource as human/visitor sees it on page (not the same as "position" attribute - as that one might contain gaps or be different (and it is in some cases)), index of resource should be something like: {{{ SELECT package_id, id, url, ROW_NUMBER() OVER (PARTITION BY package_id ORDER BY position) AS index FROM package_resource }}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1292001709000000 | Stiivi | 'draft": https://github.com/Stiivi/ckanext-dataapi requires that the client handles HTTP 302 Redirect correctly. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1292596589000000 | Stiivi | Here is the fork for (json) data proxy: https://bitbucket.org/Stiivi/dataproxy I've refactored it and moved transformations into separate modules. For each resource type there should be a module in transform/<type>_transform.py Each module should implement ``transform(flow, url, query)`` and should return a dictionary as a result. Existing modules: * transform/csv_transform - CSV files * transform/xls_transform - Excel XLS files if there is no resource_type module, HTTP 200 Error Resource type not supported is returned. You can override URL file extension or specify type if extension is missing through type= URL option. For example if you have any URL that contains CSV data however the url is just foo.com/data then you can pass: url=http://foo.com/data&type=csv Note: Source refactored/updated in example/dataproxy, being tested by running locally localhost:8000. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1292781368000000 | Stiivi | pushed parameter passing; change handling of unknown reply type on proxy side: do not raise exception, but reply with 200 Error - unkown reply type, use json/jsonp | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#888 | 1294830297000000 | Stiivi | Chages to Data Proxy: * tests added with configurable list of known URLs * use brewery for transformations (included reference to brewery framework in a new vendor directory) * side effect: code to make google find external packages in vendor directory (from now on, all external packages should go there and be referenced from .hgsub if they are mercurial repositories) * changed response contents: moved from 'headers' to root, renamed 'response' to 'data', added field list as 'fields' * changed way of registering transformers (now class object is used instead of name) * added 'encoding' and 'dialect' parameters for CSV * added optional data audit (parameter 'audit') Changes: https://bitbucket.org/Stiivi/dataproxy/changeset/fccbdd275be5 Data information: http://databrewery.org/doc/data_quality.html#brewery.dq.FieldStatistics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#407 | 1281506792000000 | aidan@scraperwiki | Need to agree who is doing this. ATM Julian is on holiday and Richard is focussed on visualisation. Will pick up after holidays - hope this is ok. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#23 | 1177416347000000 | airlinetickets | <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets.html '>cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-london.html '>cheap airline tickets london</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-italy.html '>airline tickets italy</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets.html '>cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets.html '>dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-airline-tickets.html '>low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-dirt-cheap-airline-tickets.html '>robots dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-low-cost-airline-tickets.html '>robots low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/discounted-airline-tickets.html '>discounted airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-cheep-airline-tickets.html '>robots cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-discounted-airline-tickets.html '>robots discounted airline tickets</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets.html '>discount airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-cheap-airline-tickets.html '>robots cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-cheap-airline-tickets-flights.html '>robots cheap airline tickets flights</a> <a href='http://greysanatomyonline.com/poll/first-class-low-cost-airline-tickets.html '>first class low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-air-flights-low-cost-airline-tickets.html '>cheap air flights low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-sexy-nude-bangkok-manila-www-com.html '>airline tickets sexy nude bangkok manila www com</a> <a href='http://greysanatomyonline.com/poll/first-class-dirt-cheap-airline-tickets.html '>first class dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/aeroflot-airline-tickets.html '>aeroflot airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-online-cheap.html '>airline tickets online cheap</a> <a href='http://greysanatomyonline.com/poll/first-class-discounted-airline-tickets.html '>first class discounted airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-flight-tickets-cheap-airline-tickets.html '>airline flight tickets cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/first-class-cheep-airline-tickets.html '>first class cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-sexy-islands-hawaii-miami-florida-travel.html '>airline tickets sexy islands hawaii miami florida travel</a> <a href='http://greysanatomyonline.com/poll/las-vegas-hotels-airline-tickets.html '>las vegas hotels airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheapest-airline-tickets.html '>cheapest airline tickets</a> <a href='http://greysanatomyonline.com/poll/first-class-cheap-airline-tickets.html '>first class cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-travl-new-zealand.html '>dirt cheap airline tickets travl new zealand</a> <a href='http://greysanatomyonline.com/poll/first-class-cheap-airline-tickets-flights.html '>first class cheap airline tickets flights</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets-cheap-discounte-airline-ticket.html '>discount airline tickets cheap discounte airline ticket</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheep-cheep-tickets.html '>airline tickets cheep cheep tickets</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-cheep-tickets.html '>cheep airline tickets cheep tickets</a> <a href='http://greysanatomyonline.com/poll/book-airline-tickets.html '>book airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-cruises-carribean-airline-tickets-flights.html '>cheap cruises carribean airline tickets flights</a> <a href='http://greysanatomyonline.com/poll/cheapest-plane-tickets-flights-airline-flight-ticket.html '>cheapest plane tickets flights airline flight ticket</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-flights-paris-france-madrid-spain.html '>airline tickets flights paris france madrid spain</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-paris-london-rome-amsterdam.html '>airline tickets paris london rome amsterdam</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-ticket-cheep-airline-tickets.html '>cheep airline ticket cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-discounted-flights.html '>airline tickets discounted flights</a> <a href='http://greysanatomyonline.com/poll/cheep-airlines-cheep-airline-tickets.html '>cheep airlines cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/first-class-airline-tickets-cheap-international-flights.html '>first class airline tickets cheap international flights</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheap-last-minute.html '>airline tickets cheap last minute</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-brazil-rio-de-janeiro.html '>dirt cheap airline tickets brazil rio de janeiro</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheep-cheep-airline-tickets.html '>airline tickets cheep cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-really-cheap-airline-ticket.html '>airline tickets really cheap airline ticket</a> <a href='http://greysanatomyonline.com/poll/cheap-discounted-airline-tickets-discounted-airline-tickets.html '>cheap discounted airline tickets discounted airline tickets</a> <a href='http://greysanatomyonline.com/poll/discounted-flights-airline-tickets-cheap-flights-airline.html '>discounted flights airline tickets cheap flights airline</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-com-cheep-airline-tickets.html '>cheep airline tickets com cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheap.html '>airline tickets cheap</a> <a href='http://greysanatomyonline.com/poll/last-minute-airline-tickets.html '>last minute airline tickets</a> <a href='http://greysanatomyonline.com/poll/southwest-airline-tickets.html '>southwest airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-student-airline-fares.html '>airline tickets student airline fares</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-brazil-panama-chile.html '>cheap airline tickets brazil panama chile</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-for-dirt-cheap-dirt-cheap-airline-tickets.html '>airline tickets for dirt cheap dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-discounted-flights-airline-tickets.html '>cheap discounted flights airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-discounted-airline-tickets-europe.html '>cheap discounted airline tickets europe</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-australia-cheep-airline-tickets.html '>cheep airline tickets australia cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-online-airline-flight-ticket.html '>dirt cheap airline tickets online airline flight ticket</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-search-cheap-airfares.html '>airline tickets search cheap airfares</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-economy-airticket.html '>airline tickets economy airticket</a> <a href='http://greysanatomyonline.com/poll/cheap-argentina-brazil-airline-tickets.html '>cheap argentina brazil airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheapest-airline-tickets-online-cheap-air-flight-ticket.html '>cheapest airline tickets online cheap air flight ticket</a> <a href='http://greysanatomyonline.com/poll/southwest-reservation-desk-airline-tickets-airlines-com.html '>southwest reservation desk airline tickets airlines com</a> <a href='http://greysanatomyonline.com/poll/fly-cheap-airline-tickets-cheap-flights-airfares.html '>fly cheap airline tickets cheap flights airfares</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets-argentina-brazil.html '>discount airline tickets argentina brazil</a> <a href='http://greysanatomyonline.com/poll/discounted-airline-tickets-discounted-airline-tickets.html '>discounted airline tickets discounted airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-london-cheep-airline-tickets.html '>cheep airline tickets london cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheap-international-flights.html '>airline tickets cheap international flights</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-northwest-airline.html '>airline tickets northwest airline</a> <a href='http://greysanatomyonline.com/poll/last-minute-airline-tickets-online-cheap-air-flights.html '>last minute airline tickets online cheap air flights</a> <a href='http://greysanatomyonline.com/poll/business-economy-airline-tickets-flights.html '>business economy airline tickets flights</a> <a href='http://greysanatomyonline.com/poll/low-cost-airline-tickets-low-cost-airline-tickets.html '>low cost airline tickets low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/airlinetickets.html '>airlinetickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-delta-airline.html '>airline tickets delta airline</a> <a href='http://greysanatomyonline.com/poll/airline-cheap-dirt-ticket-dirt-cheap-airline-tickets.html '>airline cheap dirt ticket dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-dirt-cheap-dirt-cheap-airline-tickets.html '>airline tickets dirt cheap dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airlines-tickets.html '>cheap airlines tickets</a> <a href='http://greysanatomyonline.com/poll/manila-cebu-airline-tickets-hotels.html '>manila cebu airline tickets hotels</a> <a href='http://greysanatomyonline.com/poll/domestic-airline-tickets-domestic-travel.html '>domestic airline tickets domestic travel</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets-airline-discount-central.html '>discount airline tickets airline discount central</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-discount-airline-ticket.html '>airline tickets discount airline ticket</a> <a href='http://greysanatomyonline.com/poll/low-cost-cheap-airfares-low-cost-airline-tickets.html '>low cost cheap airfares low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-ticket-dirt-cheap-airline-tickets.html '>dirt cheap airline ticket dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-usa-cheap-flights-from-usa.html '>dirt cheap airline tickets usa cheap flights from usa</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-dirt-cheap-airline-tickets.html '>dirt cheap airline tickets dirt cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-discounts-flights-cheap-flights-airfares.html '>airline tickets discounts flights cheap flights airfares</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-online-cheap-flights-airfares.html '>dirt cheap airline tickets online cheap flights airfares</a> <a href='http://greysanatomyonline.com/poll/cheap-international-airline-tickets.html '>cheap international airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheap-airline-fares.html '>airline tickets cheap airline fares</a> <a href='http://greysanatomyonline.com/poll/discount-military-airline-tickets-airline-discount-central.html '>discount military airline tickets airline discount central</a> <a href='http://greysanatomyonline.com/poll/cheap-low-cost-airline-tickets-low-cost-airline-tickets.html '>cheap low cost airline tickets low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-tickets-south-america-low-cost-airline-tickets.html '>low cost tickets south america low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-airline-ticket-low-cost-airline-tickets.html '>low cost airline ticket low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-cheap-first-class-airfares.html '>airline tickets cheap first class airfares</a> <a href='http://greysanatomyonline.com/poll/coach-class-airfares-low-cost-airline-tickets.html '>coach class airfares low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-economy-ticket-low-cost-airline-tickets.html '>low cost economy ticket low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-car-rentals-low-cost-airline-tickets.html '>low cost car rentals low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/australia-sydney-hotels-flights-airline-tickets.html '>australia sydney hotels flights airline tickets</a> <a href='http://greysanatomyonline.com/poll/australia-airline-tickets-travel.html '>australia airline tickets travel</a> <a href='http://greysanatomyonline.com/poll/continental-airline-tickets.html '>continental airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-online.html '>cheap airline tickets online</a> <a href='http://greysanatomyonline.com/poll/low-cost-hotels-flights-travel-low-cost-airline-tickets.html '>low cost hotels flights travel low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/southwest-reservation-desk-airline-tickets-airline-flights.html '>southwest reservation desk airline tickets airline flights</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-philippine.html '>cheap airline tickets philippine</a> <a href='http://greysanatomyonline.com/poll/japan-airlines-tickets-cargo-reservation-flights-tokyo.html '>japan airlines tickets cargo reservation flights tokyo</a> <a href='http://greysanatomyonline.com/poll/phillippine-airline-tickets-flights-travel.html '>phillippine airline tickets flights travel</a> <a href='http://greysanatomyonline.com/poll/business-first-class-airline-tickets-philippine.html '>business first class airline tickets philippine</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-cheap-flights-to-london.html '>cheap airline tickets cheap flights to london</a> <a href='http://greysanatomyonline.com/poll/low-cost-airfares-low-cost-airline-tickets.html '>low cost airfares low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-flights-flights.html '>airline tickets flights flights</a> <a href='http://greysanatomyonline.com/poll/international-airline-tickets.html '>international airline tickets</a> <a href='http://greysanatomyonline.com/poll/inexpensive-airline-tickets.html '>inexpensive airline tickets</a> <a href='http://greysanatomyonline.com/poll/singapore-flights-airline-tickets-travel-dirt-cheap.html '>singapore flights airline tickets travel dirt cheap</a> <a href='http://greysanatomyonline.com/poll/low-cost-airfares-london-england-low-cost-airline-tickets.html '>low cost airfares london england low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/really-cheap-airline-tickets.html '>really cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-airline-tickets-flights-low-cost-airline-tickets.html '>low cost airline tickets flights low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/latin-america-travel-airline-tickets.html '>latin america travel airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-singapore-japan-airlines.html '>airline tickets singapore japan airlines</a> <a href='http://greysanatomyonline.com/poll/student-airline-tickets.html '>student airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-online.html '>airline tickets online</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-discounted-airlines-cheap-air-flight-ticket.html '>airline tickets discounted airlines cheap air flight ticket</a> <a href='http://greysanatomyonline.com/poll/delta-airline-tickets.html '>delta airline tickets</a> <a href='http://greysanatomyonline.com/poll/free-airline-tickets.html '>free airline tickets</a> <a href='http://greysanatomyonline.com/poll/very-cheap-airline-tickets.html '>very cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-travel-tokyo-japan-nude-first-class-tickets.html '>airline tickets travel tokyo japan nude first class tickets</a> <a href='http://greysanatomyonline.com/poll/bargain-airline-tickets.html '>bargain airline tickets</a> <a href='http://greysanatomyonline.com/poll/favicon-low-cost-airline-tickets.html '>favicon low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-cost-fares-lax-low-cost-airline-tickets.html '>low cost fares lax low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/robots-airline-tickets-cheap-international-flights.html '>robots airline tickets cheap international flights</a> <a href='http://greysanatomyonline.com/poll/student-discount-airline-tickets-airline-discount-central.html '>student discount airline tickets airline discount central</a> <a href='http://greysanatomyonline.com/poll/one-way-airline-tickets.html '>one way airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-go-american-airlines.html '>airline tickets go american airlines</a> <a href='http://greysanatomyonline.com/poll/purchase-airline-tickets-online.html '>purchase airline tickets online</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-discount.html '>airline tickets discount</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-hawaii.html '>airline tickets to hawaii</a> <a href='http://greysanatomyonline.com/poll/low-fare-airline-tickets.html '>low fare airline tickets</a> <a href='http://greysanatomyonline.com/poll/military-discount-airline-tickets.html '>military discount airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-low-price.html '>airline tickets low price</a> <a href='http://greysanatomyonline.com/poll/student-discount-airline-tickets.html '>student discount airline tickets</a> <a href='http://greysanatomyonline.com/poll/discounted-airline-tickets-china-beijing.html '>discounted airline tickets china beijing</a> <a href='http://greysanatomyonline.com/poll/favicon-cheep-airline-tickets.html '>favicon cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/discount-military-airline-tickets.html '>discount military airline tickets</a> <a href='http://greysanatomyonline.com/poll/online-airline-tickets.html '>online airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-southwest-airline-tickets.html '>cheap southwest airline tickets</a> <a href='http://greysanatomyonline.com/poll/buy-airline-tickets-online.html '>buy airline tickets online</a> <a href='http://greysanatomyonline.com/poll/cheap-last-minute-airline-tickets.html '>cheap last minute airline tickets</a> <a href='http://greysanatomyonline.com/poll/low-price-airline-tickets.html '>low price airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheapest-airline-tickets-cheap-flights-to-paris.html '>cheapest airline tickets cheap flights to paris</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-tokyo-japan.html '>cheap airline tickets tokyo japan</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-india.html '>cheap airline tickets to india</a> <a href='http://greysanatomyonline.com/poll/orbitz-airline-tickets.html '>orbitz airline tickets</a> <a href='http://greysanatomyonline.com/poll/osaka-tokyo-nrt-osa-japan-fligts-airline-tickets.html '>osaka tokyo nrt osa japan fligts airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-canadian-airline-tickets.html '>cheap canadian airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-usa-international-cheap-flights-from-usa.html '>airline tickets usa international cheap flights from usa</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-florida.html '>airline tickets to florida</a> <a href='http://greysanatomyonline.com/poll/book-airline-tickets-flights-japan.html '>book airline tickets flights japan</a> <a href='http://greysanatomyonline.com/poll/hawaii-airline-tickets.html '>hawaii airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-for-students.html '>cheap airline tickets for students</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-las-vegas.html '>cheap airline tickets to las vegas</a> <a href='http://greysanatomyonline.com/poll/last-minute-cheap-airline-tickets.html '>last minute cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/alaska-airline-tickets.html '>alaska airline tickets</a> <a href='http://greysanatomyonline.com/poll/buy-airline-tickets.html '>buy airline tickets</a> <a href='http://greysanatomyonline.com/poll/bid-for-airline-tickets.html '>bid for airline tickets</a> <a href='http://greysanatomyonline.com/poll/discount-international-airline-tickets.html '>discount international airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-europe.html '>cheap airline tickets to europe</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-canada.html '>cheap airline tickets canada</a> <a href='http://greysanatomyonline.com/poll/cheap-air-flights-low-cost-airline-tickets-st.html '>cheap air flights low cost airline tickets st</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-orlando.html '>airline tickets to orlando</a> <a href='http://greysanatomyonline.com/poll/cheap-student-airline-tickets.html '>cheap student airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-mexico.html '>cheap airline tickets to mexico</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-low-cost-airfare.html '>cheap airline tickets low cost airfare</a> <a href='http://greysanatomyonline.com/poll/best-time-to-buy-airline-tickets.html '>best time to buy airline tickets</a> <a href='http://greysanatomyonline.com/poll/first-class-airline-tickets.html '>first class airline tickets</a> <a href='http://greysanatomyonline.com/poll/united-airline-tickets.html '>united airline tickets</a> <a href='http://greysanatomyonline.com/poll/spirit-airline-tickets.html '>spirit airline tickets</a> <a href='http://greysanatomyonline.com/poll/jet-blue-airline-tickets.html '>jet blue airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-low-fare-paris-france.html '>airline tickets low fare paris france</a> <a href='http://greysanatomyonline.com/poll/bid-on-airline-tickets.html '>bid on airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-florida.html '>cheap airline tickets to florida</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-italy.html '>cheap airline tickets to italy</a> <a href='http://greysanatomyonline.com/poll/low-airline-tickets.html '>low airline tickets</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets-to-europe.html '>discount airline tickets to europe</a> <a href='http://greysanatomyonline.com/poll/las-vegas-airline-tickets.html '>las vegas airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-london.html '>cheap airline tickets to london</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-hawaii.html '>cheap airline tickets to hawaii</a> <a href='http://greysanatomyonline.com/poll/travel-airline-tickets.html '>travel airline tickets</a> <a href='http://greysanatomyonline.com/poll/american-airline-tickets.html '>american airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-las-vegas.html '>airline tickets to las vegas</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-airline-tickets-cheap-international-flights.html '>airline tickets airline tickets cheap international flights</a> <a href='http://greysanatomyonline.com/poll/singapore-airline-tickets-flights-travel.html '>singapore airline tickets flights travel</a> <a href='http://greysanatomyonline.com/poll/cheap-one-way-airline-tickets.html '>cheap one way airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-europe.html '>cheap airline tickets europe</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-rio-de-janeiro-brazil.html '>cheap airline tickets rio de janeiro brazil</a> <a href='http://greysanatomyonline.com/poll/low-cost-flights-american-airlines-low-cost-airline-tickets.html '>low cost flights american airlines low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/dirt-cheap-airline-tickets-online.html '>dirt cheap airline tickets online</a> <a href='http://greysanatomyonline.com/poll/paris-france-travel-airline-tickets-cheapest.html '>paris france travel airline tickets cheapest</a> <a href='http://greysanatomyonline.com/poll/best-airline-tickets.html '>best airline tickets</a> <a href='http://greysanatomyonline.com/poll/purchase-airline-tickets-cheap.html '>purchase airline tickets cheap</a> <a href='http://greysanatomyonline.com/poll/bereavement-airline-tickets.html '>bereavement airline tickets</a> <a href='http://greysanatomyonline.com/poll/lowest-airline-tickets.html '>lowest airline tickets</a> <a href='http://greysanatomyonline.com/poll/purchase-airline-tickets.html '>purchase airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-brazil-bargain.html '>airline tickets brazil bargain</a> <a href='http://greysanatomyonline.com/poll/discounts-for-students-on-airline-tickets.html '>discounts for students on airline tickets</a> <a href='http://greysanatomyonline.com/poll/lowest-price-airline-tickets.html '>lowest price airline tickets</a> <a href='http://greysanatomyonline.com/poll/buying-cheap-airline-tickets.html '>buying cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheapest-airline-tickets-available.html '>cheapest airline tickets available</a> <a href='http://greysanatomyonline.com/poll/priceline-airline-tickets.html '>priceline airline tickets</a> <a href='http://greysanatomyonline.com/poll/college-student-discount-airline-tickets.html '>college student discount airline tickets</a> <a href='http://greysanatomyonline.com/poll/deep-discount-airline-tickets.html '>deep discount airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-europe-paris-france.html '>airline tickets europe paris france</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-discounted-flights-st.html '>airline tickets discounted flights st</a> <a href='http://greysanatomyonline.com/poll/discount-business-class-airline-tickets.html '>discount business class airline tickets</a> <a href='http://greysanatomyonline.com/poll/delta-airlines-tickets.html '>delta airlines tickets</a> <a href='http://greysanatomyonline.com/poll/new-zealand-airline-tickets-low-cost.html '>new zealand airline tickets low cost</a> <a href='http://greysanatomyonline.com/poll/affordable-airline-tickets.html '>affordable airline tickets</a> <a href='http://greysanatomyonline.com/poll/dicount-airline-tickets.html '>dicount airline tickets</a> <a href='http://greysanatomyonline.com/poll/buy-cheap-airline-tickets.html '>buy cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/favicon-cheap-airline-tickets.html '>favicon cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/japanes-airline-tickets.html '>japanes airline tickets</a> <a href='http://greysanatomyonline.com/poll/northwest-airline-tickets.html '>northwest airline tickets</a> <a href='http://greysanatomyonline.com/poll/consolidator-airline-tickets.html '>consolidator airline tickets</a> <a href='http://greysanatomyonline.com/poll/round-the-world-airline-tickets.html '>round the world airline tickets</a> <a href='http://greysanatomyonline.com/poll/wholesale-airline-tickets.html '>wholesale airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-united-brasilia-airlines.html '>airline tickets united brasilia airlines</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-london.html '>airline tickets london</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets-to-hawaii.html '>discount airline tickets to hawaii</a> <a href='http://greysanatomyonline.com/poll/new-zealand-last-minute-airline-tickets.html '>new zealand last minute airline tickets</a> <a href='http://greysanatomyonline.com/poll/discounted-airline-tickets-flights-japan.html '>discounted airline tickets flights japan</a> <a href='http://greysanatomyonline.com/poll/find-cheap-airline-tickets.html '>find cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheat-airline-tickets.html '>cheat airline tickets</a> <a href='http://greysanatomyonline.com/poll/ardeche-france-travel-discount-student-airline-tickets.html '>ardeche france travel discount student airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-flights-airline-tickets.html '>cheap flights airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-domestic-airline-tickets.html '>cheap domestic airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-delta-airlines-rio.html '>airline tickets delta airlines rio</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-low-fares-paris-france.html '>airline tickets low fares paris france</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-italy.html '>airline tickets to italy</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-london.html '>airline tickets to london</a> <a href='http://greysanatomyonline.com/poll/greece-cheepest-airline-tickets.html '>greece cheepest airline tickets</a> <a href='http://greysanatomyonline.com/poll/profile-cheep-airline-tickets.html '>profile cheep airline tickets</a> <a href='http://greysanatomyonline.com/poll/argentina-brazil-airline-tickets-discounted.html '>argentina brazil airline tickets discounted</a> <a href='http://greysanatomyonline.com/poll/tokyo-airline-tickets-cheap-fares.html '>tokyo airline tickets cheap fares</a> <a href='http://greysanatomyonline.com/poll/vivtour-airline-tickets.html '>vivtour airline tickets</a> <a href='http://greysanatomyonline.com/poll/best-price-airline-tickets.html '>best price airline tickets</a> <a href='http://greysanatomyonline.com/poll/last-minute-airline-tickets-cheap.html '>last minute airline tickets cheap</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-the-philippines.html '>cheap airline tickets to the philippines</a> <a href='http://greysanatomyonline.com/poll/travel-tip-international-airline-tickets-travel-tips.html '>travel tip international airline tickets travel tips</a> <a href='http://greysanatomyonline.com/poll/budget-airline-tickets.html '>budget airline tickets</a> <a href='http://greysanatomyonline.com/poll/new-zealand-airline-tickets-cheap-fares.html '>new zealand airline tickets cheap fares</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-bangkok-paris-france.html '>airline tickets bangkok paris france</a> <a href='http://greysanatomyonline.com/poll/air-france-discount-airline-tickets.html '>air france discount airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-military-discount.html '>airline tickets military discount</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-northwest-airline-st.html '>airline tickets northwest airline st</a> <a href='http://greysanatomyonline.com/poll/rail-travel-france-airline-tickets-cheap-discount.html '>rail travel france airline tickets cheap discount</a> <a href='http://greysanatomyonline.com/poll/ukraine-cheap-airline-tickets-asia.html '>ukraine cheap airline tickets asia</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-to-orlando.html '>cheap airline tickets to orlando</a> <a href='http://greysanatomyonline.com/poll/singapore-airline-tickets-to-asia.html '>singapore airline tickets to asia</a> <a href='http://greysanatomyonline.com/poll/tokyo-airline-tickets-low-fare.html '>tokyo airline tickets low fare</a> <a href='http://greysanatomyonline.com/poll/where-can-i-find-cheap-airline-tickets.html '>where can i find cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-air-flights-low-cost-airline-tickets-bermuda.html '>cheap air flights low cost airline tickets bermuda</a> <a href='http://greysanatomyonline.com/poll/cheap-air-flights-low-cost-airline-tickets-oita.html '>cheap air flights low cost airline tickets oita</a> <a href='http://greysanatomyonline.com/poll/tokyo-airline-tickets-for-cheap.html '>tokyo airline tickets for cheap</a> <a href='http://greysanatomyonline.com/poll/air-travel-france-price-airline-tickets.html '>air travel france price airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-flights-japan.html '>cheap airline tickets flights japan</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-in-canada.html '>cheap airline tickets in canada</a> <a href='http://greysanatomyonline.com/poll/cheap-airline-tickets-kiev.html '>cheap airline tickets kiev</a> <a href='http://greysanatomyonline.com/poll/brazil-airline-tickets-usa.html '>brazil airline tickets usa</a> <a href='http://greysanatomyonline.com/poll/australia-sydeny-cheap-airline-tickets-flights-airfares.html '>australia sydeny cheap airline tickets flights airfares</a> <a href='http://greysanatomyonline.com/poll/expedia-airline-tickets.html '>expedia airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-united-airlines-brazil.html '>airline tickets united airlines brazil</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-greece.html '>airline tickets to greece</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-chicago.html '>airline tickets to chicago</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-south-africa-paris-france.html '>airline tickets south africa paris france</a> <a href='http://greysanatomyonline.com/poll/air-france-america-travel-discount-and-airline-tickets.html '>air france america travel discount and airline tickets</a> <a href='http://greysanatomyonline.com/poll/discount-airline-tickets-canada.html '>discount airline tickets canada</a> <a href='http://greysanatomyonline.com/poll/new-zealand-really-cheap-airline-tickets.html '>new zealand really cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/new-zealand-bussiness-class-airline-tickets.html '>new zealand bussiness class airline tickets</a> <a href='http://greysanatomyonline.com/poll/new-zealand-first-class-airline-tickets.html '>new zealand first class airline tickets</a> <a href='http://greysanatomyonline.com/poll/airline-poland-tickets-europe.html '>airline poland tickets europe</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-brazil-europe.html '>airline tickets brazil europe</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-brazil-online.html '>airline tickets brazil online</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-flights-brazil.html '>airline tickets flights brazil</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-flights-poland.html '>airline tickets flights poland</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-for-cheap.html '>airline tickets for cheap</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-northwest-rio-airlines.html '>airline tickets northwest rio airlines</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-thailand-brazil.html '>airline tickets thailand brazil</a> <a href='http://greysanatomyonline.com/poll/airline-tickets-to-south-america-paris-france.html '>airline tickets to south america paris france</a> <a href='http://greysanatomyonline.com/poll/frontier-airline-tickets.html '>frontier airline tickets</a> <a href='http://greysanatomyonline.com/poll/tokyo-buy-cheap-airline-tickets.html '>tokyo buy cheap airline tickets</a> <a href='http://greysanatomyonline.com/poll/tokyo-airline-tickets-low-fares.html '>tokyo airline tickets low fares</a> <a href='http://greysanatomyonline.com/poll/chep-airline-tickets.html '>chep airline tickets</a> <a href='http://greysanatomyonline.com/poll/best-prices-on-airline-tickets.html '>best prices on airline tickets</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-for-greece-students.html '>cheep airline tickets for greece students</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-flights-japan.html '>cheep airline tickets flights japan</a> <a href='http://greysanatomyonline.com/poll/cheep-airline-tickets-com-cheep-airline-tickets-st.html '>cheep airline tickets com cheep airline tickets st</a> <a href='http://greysanatomyonline.com/poll/spain-low-cost-airline-tickets.html '>spain low cost airline tickets</a> <a href='http://greysanatomyonline.com/poll/air-france-airline-cheap-airline-tickets-europe.html '>air france airline cheap airline tickets europe</a> <a href='http://greysanatomyonline.com/poll/cheap-first-class-airline-tickets.html '>cheap first class airline tickets</a> <a href='http://greysanatomyonline.com/poll/train-travel-in-france-airline-tickets-low-cost.html '>train travel in france airline tickets low cost</a> <a href='http://greysanatomyonline.com/poll/compare-airline-tickets.html '>compare airline tickets</a> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#736 | 1304963598000000 | amercader | See https://bitbucket.org/okfn/ckanext-harvest/changeset/a7b6d8c0dde7 https://bitbucket.org/okfn/ckanext-harvest/changeset/40de12fada74 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#906 | 1328782087000000 | amercader | Yes, I don't think there will be any problem, and we won't need to create a new version of the schema as the change is backwards compatible. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#985 | 1306407617000000 | amercader | Moving this to the PDEU (publicdata.eu) project | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#985 | 1306408134000000 | amercader | Duplicate of #1155 and #1156 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1030 | 1300103984000000 | amercader | This includes: * Take out all references to harvestsource, harvestingjob and harvesteddocument in the rest API * Move the harvesting bits of ckan/lib/cli.py into ckanext-harvest. * Move ckan/controller/harvesting.py and cknan/model/harvesting.py to ckanext-harvest as well * Update ckanext-csw to be able to find the code it needs in the new place. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1030 | 1303117978000000 | amercader | All the points described in this ticket have been completed. Harvesting work is being done mainly under #1037 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1152 | 1307352165000000 | amercader | Bumping to ckan-v1.5-sprint-3 and updating the CC email addresses so people actually get any updates. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1161 | 1306408026000000 | amercader | Duplicate of #1157 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1164 | 1308647224000000 | amercader | Done. See it in action here: http://publicdata.eu/map | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1166 | 1317381932000000 | amercader | Fixed on d5bee3de9957 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1229 | 1312191530000000 | amercader | Done, except for Revision related stuff, which probably overlaps with work being done by David Raznick. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1338 | 1316951545000000 | amercader | Reopening, because another change is needed to support custom schemas | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1338 | 1317117738000000 | amercader | Fixed in eca1edce3a0f | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1345 | 1343215489000000 | amercader | See https://github.com/okfn/ckan/pull/73 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1354 | 1316970374000000 | amercader | There is no way to maintain backwards compatibility, so let's forget about it for now | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1375 | 1318260008000000 | amercader | Fixed in 888ed50c098d, using Session.flush() rather than the proposed one. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1381 | 1319021092000000 | amercader | Now implemented on 6227142b0460 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1430 | 1320339962000000 | amercader | I've been digging more on this one. To reproduce it, you just have to edit the same dataset in both sites (production and testing). Just after editing the dataset, the search index will get mixed site_ids. I checked the jetty logs (see attached files) and just after editing a dataset there are two POST requests to update the index. The request logs don't show the requests params so it's hard to tell what the second call does (it probably is the commit): https://bitbucket.org/okfn/ckan/src/97e1e90d66d7/ckan/lib/search/index.py#cl-144 In any case, it's clear that the problem may be related with the datasets in the two cores sharing the same id. We are currently using the dataset id as uniqueKey in SOLR, i.e in our schema.xml, we are defining: {{{ <uniqueKey>id</uniqueKey> }}} According to the SOLR docs: "If a document is added that contains the same value for this field as an existing document, the old document will be deleted." http://wiki.apache.org/solr/SchemaXml#The_Unique_Key_Field I would expect the uniqueKey not to be mixed between cores, but it looks like it happens otherwise. Maybe we should generate a solr_id specific to each document for each site, as described here: http://wiki.apache.org/solr/UniqueKey#UUID_techniques (Note that apart from the testing/production site use case, at some point sites involved in harvesting could also end up with datasets with the same id.) Again, I'm not a SOLR expert, so the problem could be a completely different one! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1430 | 1320431138000000 | amercader | Right, more news on this front. I've tested a patch which uses a hash of the dataset id and site_id to produce a unique id, and then configured the iati solr cores to use index_id as uniqueKey: https://bitbucket.org/okfn/ckan/changeset/855f5a452f60 Unfortunately, that did not solve the issue. Again, updating the same dataset in both apps messes things up. In this case, documents don't get replaced, but duplicated, so the new uniqueKey is working. I am more inclined to think that this is caused by a misconfiguration in the SOLR instance in s046. This is the file where the two cores are configured: {{{ <solr persistent="true" sharedLib="lib"> <cores adminPath="/admin/cores"> <core name="testing.iatiregistry.org" instanceDir="testing.iatiregistry.org"> <property name="dataDir" value="/usr/share/solr/testing.iatiregistry.org/data" /> </core> <core name="iatiregistry.org" instanceDir="iatiregistry.org"> <property name="dataDir" value="/usr/share/solr/iatiregistry.org/data" /> </core> </cores> </solr> }}} Following this paths: /usr/share/solr/iatiregistry.org symlinks to /etc/solr/iatiregistry.org, /etc/solr/iatiregistry.org/data is empty (as well as the testing equivalent). On the other hand, looking at the admin interface and at some errors that I got it seems that the data folder that both cores are using is /var/lib/solr/data/index Maybe that's the problem? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1430 | 1320660144000000 | amercader | No, I didn't know it. Is this supposed to be the correct setting or should each core have its own data dir? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1430 | 1320670062000000 | amercader | As rgrp mentioned, we commented out the <dataDir> directive in the solrconfig.xml files and rebooted. That made the cores use the data dir they were supposed to (the one in solr.xml) and from the tests I made looks like it finally fixed the issue. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1462 | 1326284357000000 | amercader | Closing as this has been fixed and deployed. @thejimmyg Not sure if there are still issues regarding packaging. Feel free to create a specific ticket for this if we need to work on it. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1469 | 1329760150000000 | amercader | This is mostly done (current form is http://i.imgur.com/zmfc5.png). Still some tests missing and a little bit of cleanup and documentation required. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1490 | 1322489155000000 | amercader | Fixed in c23821b | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1498 | 1323165876000000 | amercader | This is now done. See [1] for the deployment documentation and conventions. CKAN checks the remote schema version on startup to see if it's compatible. See commits starting from 50285ef6. The migration work needed after releasing 1.5.1 is described in #1516. [1] https://github.com/okfn/ckan/blob/feature-1498-multiple-schemas/doc/solr-setup.rst | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1516 | 1323360020000000 | amercader | Closing as the main Solr servers are ready to support different Solr schemas. I.e they have two different cores: * http://<server>/solr/ckan-schema-1.2 * http://<server>/solr/ckan-schema-1.3 to which CKAN instances can point to. The CKAN instances that have not been updated (the ones under s004) are pointing to a Solr core with an old version of the schema, so they can wait until upgraded to 1.5.1 to update the solr_url property and rebuild the index. Data.gov.uk can be dealt with during the next deployment. It's not clear which Solr server are using the rest of the instances, but they can be updated as necessary when they upgrade their CKAN instance. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1540 | 1326060385000000 | amercader | Fixed in b80da7a4fe | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1590 | 1326711608000000 | amercader | Added in 658f76e4a0 and deployed to the production site. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1592 | 1326304321000000 | amercader | Fixed on 1e649a62fcf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1616 | 1326710037000000 | amercader | Sounds like a good option. I will move it to ckan-v1.6 anyway because it may need some work than the expected. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1616 | 1332327635000000 | amercader | Fixed in 10cfd168413 Also new flags and fixes for other commands were added: * Add -o option to only reindex datasets not already indexed * Add -i option to ignore exceptions when rebuilding * Add -r option to just refresh the index (not clearing it first) * Fix show command to show the index stored for a dataset * Add support for clearing the index of just one dataset | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1640 | 1326710888000000 | amercader | Depends on #1655 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1640 | 1327340939000000 | amercader | Done, see http://publicdata.eu/package?extras_eu_country=RS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1641 | 1326376777000000 | amercader | Fixed on 77fa6483c32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1677 | 1326807655000000 | amercader | See #1678 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1701 | 1327423221000000 | amercader | Done. See 668292 - 78cc11 Time spent: 1.5 days | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1701 | 1330085360000000 | amercader | Sorry, this ticket referred to the EC Portal project, the changesets are from ckanext-ecportal. This hasn't gone into core yet, which is ticket #906 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1731 | 1330942924000000 | amercader | The underlying auth layer is done, still there isn't UI integration (list of publishers in index page, publisher field in form...). Needs to be moved to the next sprint. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1734 | 1332167315000000 | amercader | All sub tickets have been implemented, so closing it now. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1801 | 1343144718000000 | amercader | Closing as both old and new theme now show password reset links | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1816 | 1331302835000000 | amercader | +1 to a new, more flexible extension. But in the meantime I've just spent a couple of hours making it work with latest CKAN, which was easier than expected, so we can deploy it with the new version of PDEU. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2232 | 1332331660000000 | amercader | Fixed in 6b4c6c9 This was due to some characters not being supported by XML. We now strip them before indexing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2252 | 1333108787000000 | amercader | There is a new ticket for the same schema as forms issue: #2268 The exception was fixed on [https://github.com/okfn/ckanext-inspire/commit/0dff1f6 0dff1f6] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2252 | 1333374836000000 | amercader | This needs more work on ckanext-dgu and testing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2252 | 1334567495000000 | amercader | Fixed on 0dff1f6c2e | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2271 | 1334567582000000 | amercader | This was caused by an human error. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2358 | 1336641577000000 | amercader | Took longer than expected due to last minute changes and problems with the packaged version. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2361 | 1337016768000000 | amercader | I actually spent some more time of this because I upgraded PDEU to CKAN 1.7, which was needed to fix the search index and a good testing for the release as well. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2399 | 1340706702000000 | amercader | Fixed in 493589aaf | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2407 | 1340633440000000 | amercader | This will require some thought. Bumping to 1.9. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2434 | 1350296272000000 | amercader | Seems to be working again, closing. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2467 | 1340981885000000 | amercader | Fixed (mainly by Aron) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2495 | 1340624905000000 | amercader | See #2467 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2534 | 1340631124000000 | amercader | See #2399 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2639 | 1343297711000000 | amercader | Merged into master before 1.8. There are a couple of issues with that need to be fixed on recline code base: * Filter does not fire the state change event (Embed URL does not get updated) https://github.com/okfn/recline/issues/195 * File format not saved in Dataproxy state (Embed fails with dataproxy files with no extension) https://github.com/okfn/recline/issues/196 When we fix these on recline we can update the build on ckan core. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2639 | 1345221501000000 | amercader | Added some new comments to #195: https://github.com/okfn/recline/issues/195 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2641 | 1343738074000000 | amercader | It looks awesome, really nice! Note that the "Enter location" box logic (geocoding) is not yet implemented, so first stage of the widget should not show it. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2811 | 1349869110000000 | amercader | Fixed on master, 1.8 and 1.7.2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#2853 | 1345049201000000 | amercader | The message it is pretty self-explanatory, but I'm happy to lower it to warning. We can't know the scheduled time because it depends on how is set up on the server (generally a cron job every x minutes). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1142 | 1308326118000000 | annapowellsmith | List of new docs tasks agreed by APS and RGRP: * Tutorial on the wiki (long-term): Integration with Wordpress and Drupal and Javascript * Overview of domain model both for average users and for devs * 2-page glossy brochure * Vision for CKAN http://notebook.okfn.org/2011/04/27/data-hubs-data-management-systems-and-ckan/ * Comparison : use http://wiki.ckan.net/Related_Software as starting point - build on wiki - Socrata and OGDI * Renaming: separation between ckan.org and ckan.net * More documentation in the code ... * Config options generated from code or move this to WUI ... See also proposed overhaul at http://wiki.ckan.net/Documentation_Plans | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1245 | 1311864530000000 | annapowellsmith | Would be nice to list some extensions somewhere on this site (features page perhaps). Along the lines of: http://docs.ckan.org/extensions.html#finding-extensions It wasn't until I wrote this list that I realised just how many extensions there were, and what it said about the CKAN community that there were so many... So I think it would be a good sales point. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#204 | 1285081954000000 | anonymous | [http://www.grattage.pro Casinos pro] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#204 | 1285082169000000 | anonymous | [http://www.casinotop10.fr Top10 des casinos sur internet] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#321 | 1291831399000000 | anonymous | This has now been superseded with this proposal: #787 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#349 | 1277820679000000 | anonymous | Mostly done, but issue regarding departments still outstanding: can the association between packages, groups, and departments be placed elsewhere? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#371 | 1294676093000000 | anonymous | Mainly handled in http://knowledgeforge.net/okfn/tasks/ticket/564 now. Close here? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#407 | 1291149724000000 | anonymous | Related bug on ScraperWiki tracker: https://bitbucket.org/ScraperWiki/scraperwiki/issue/42/finish-ckan-integration | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#441 | 1282724585000000 | anonymous | Comment from pudo: CKAN should have a read-only maintenance mode with a nice little banner on all pages, appropriate REST messages etc. Bonus points if this is triggered via an environment variable and thus can be triggered by the surrounding apache. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#546 | 1286896167000000 | anonymous | [http://www.pokers.li Jeux de poker en ligne] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#546 | 1286896450000000 | anonymous | [http://www.bonus-pokers.eu Poker en ligne] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#546 | 1286896814000000 | anonymous | [http://www.salle-de-poker-legal.com Jouer au poker en ligne] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#698 | 1293472613000000 | anonymous | Data proxy documentation: http://democracyfarm.org/dataproxy/api.html (included in sources) Updated ('s' as in structured) data proxy app: http://sdataproxy.appspot.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#823 | 1290506116000000 | anonymous | Fixed in cset:3845a501ed5f | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#868 | 1293401808000000 | anonymous | Attached are the timings I have for the tests after I upgraded to 0.57 and after a few simple test tweaks. They do not include setup and teardown time at the class level as they are not assignable to individual tests. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#870 | 1294914243000000 | anonymous | Merged into default in cset:54ae110094be | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#876 | 1293188088000000 | anonymous | Thanks for your feedback, very useful. I don't really agree with the people in the linked discussion who say it's pointless testing against a different database from production. The goal here is to make it easy enough for people to run as many tests as possible that they actually do so. Even 15 minutes is too long in that case. With sqlite we can get it in at under 5 minutes. I would also like to identify the longest running tests (which I would characterise as "functional" or "integration" tests and make them run as a separate suite, and then encourage a culture of writing true unit tests before functional tests, so that running unit tests can happen in 1 minute and be part of the regular development cycle. That's no replacement for also running *all* tests periodically, and also running tests under postgres, which we can continue to do on the continuous integration server. Longer term I agree that it would be better to run local tests against postgres too, but that will I think involve refactoring many of the tests. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#876 | 1293218714000000 | anonymous | I agree with all your points about testing apart form using sqlite, especially splitting out the functional tests and continuous integration. > Longer term I agree that it would be better to run local tests against postgres too, but that will I think involve refactoring many of the tests. Well there are two options 1. refactor the tests 2. refactor the code to use sqlite and postress It is a value judgment as to which is more complicated. I personally think 2 is more complicated but may be wrong on that. The real danger with 2 is that you are needlessly adding complication to production code, with 1 you are only changing the tests. Upgrading to sqlalchemy 0.5+ should happen first regardless. You will need upto date documentation. There is another option too. Put the postgres data directory on tempfs/ramfs and turn off durability [http://www.postgresql.org/docs/9.0/static/non-durability.html here]. We would need a way to db init before the tests where run (or) at boot). This may be the best of both worlds. Anyway Happy xmas!! | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#926 | 1298541597000000 | anonymous | Goals: We want the interface for updating an object to be loosely coupled to the method for updating it. We might update a Package from: - HTML forms - a REST API (using JSON) - a CLI (potentially using command line arguments, YaML, XML or ini files) Right now, data is validated using a form framework, even if we're not using forms. Data is written to the object as part of the forms framework (using the "sync()" method), making the process hard to customise and hard to discover. Instead, there should be a standard chain for: - deserialising untyped data (such as that received from an HTTP POST or parsed from a YaML file) into valid data - returning structured errors suitable for displaying to the user - saving the validated, deserialised data Ideally, it would look something like: schema = MySchemaDefinition() raw_data = open("raw.csv", "r").read() structured_data = to_python(raw_data, schema) try: validated = validate(python_data) myobject.update_from_dict(validated) return "Updated OK" except ValidationError, e: return "Error: %s" % e.to_dict() The inverse would be something like: structured_data = myobject.render_to_dict() raw_data.write(to_csv(structured_data, schema) print "Wrote CSV %s" % to_logformat(serialized_data, schema) The question of how to generate and display forms should be completely decoupled from this. It should be easy to write forms by hand, which means it should be simple to flatten the serialized data to key, value pairs, and match up any validation errors to each key. Optionally, a form widget generation framework is a nice-to-have, but not essential, as it is expected that, given enough time, the majority of forms will require manual coding to accomodate edge conditions. A form widget generation framework should be reasonably complete if it's worth trying at all, which means it should support things like: - nested fields (at least repeating, multi-value fieldsets) - widgets for dates and file uploads - internationalisation ...but note I'd settle for *no* widget generation Components of a serialisation / validation framework: - a simple, obvious way to define a schema - a lightweight validation implementation - simple interface for validators - easy to match validation errors to data structure items Overall, I'd like to see: - loose coupling, no framework dependencies - maximal test coverage - extensive documentation with readily available examples ## Findings I looked at flatland, formencode, FormAlchemy, formish, WTForms, Django, web2py, deform/colander, formconvert and web.py - **web2py** just helps build HTML from python, so isn't what I'm after at all - **web.py** has rudimentary validation which is only aimed at HTML forms and is hence tightly coupled with them. - **Django**'s forms are again tightly coupled to HTML forms (and their generation) - **FormAlchemy** similarly couples validation to forms, and is focussed on inferring a schema from a data model SQLAlchemy. - **WTForms** again focuses on Form generation and don't make itx easy to deserialise arbitrary data This leaves us with Flatland, Formencode, Formish, Colander/Peppercorn/Deform, and FormConvert. Having reviewed all of these, I rejected Formencode on the basis of its patchy documentation and relatively low unit test coverage. I also found it mixed concerns a bit much for my taste. Formish felt similarly sparsely documented. Of the remainder, I'd be happy using any of them, but opted for Colander in the end as it has the most exhaustive documentation and unit tests and has been used in production for a long time. FormConvert has a nice design but is a bit of a moving target at the moment -- worth revisiting in the future. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#982 | 1297518386000000 | anonymous | Well we could transfer all the dependencies and version numbers to a config file for the fabfile, but we don't achieve much. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#982 | 1297850732000000 | anonymous | This is now rolled into #963. Marking as duplicate. People can get the pip from a branch over HTTP like this: https://bitbucket.org/okfn/ckan/src/<branch-name>/path/to/file/you/want | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#998 | 1298371191000000 | anonymous | I am happy to get rid of paster db create altogether as a compromise? Or add a depreciation warning to it? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | 1310053225000000 | aron | Replying to [comment:2 dread]: > Aron, > I've fixed the second item (on my branch), so you can DELETE a package without Content-Length. But I'm not sure what you mean here: "Should be 405 Method Not Allowed?" DELETE should be allowed. Or is that a response you're getting? > David If I send a HEAD request to the server eg. {{{ curl -i -XHEAD http://test.ckan.net:80/api/2/rest/package/ec9cb930-d15f-441f-a1e1-36f4d5df19bf }}} I get the following in the Access-Control-Allow-Methods header {{{ Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS }}} I've just realised that the "Access-Control" headers are for cross origin browser requests so I think you can ignore my comments about the correct response being 405 Method Not Allowed but perhaps DELETE should be added to the Access-Control-Allow-Methods list? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | 1310054305000000 | aron | Replying to [comment:3 dread]: > "Tag returned as a JSON object when updating but as a string when requesting." > I'm not sure what you mean. > > http://test.ckan.net/api/2/rest/package/reference-example > gives tags: {{{"tags": ["country-uk", "example-package"],}}} I'm getting back objects for each tag in the response body from a PUT request. For example "country-uk" would be something like. {{{ { "id" : "600dc72e-6127-4704-b801-bee00474ec0c", "name" : "country-uk", "revision_timestamp" : "2011-07-06T09:09:21.578034", "state" : "active" } }}} Hopefully this gist <https://gist.github.com/97447d0b28bf52f3e06b> will illustrate the issue. > Is it this - returning package names, rather than ids? Here is certainly a bug I'll fix. > http://test.ckan.net/api/2/rest/tag/country-uk That was the fifth point on the list. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | 1310054863000000 | aron | Replying to [comment:5 dread]: > Deleting an extra using 'null' works for me: Hmm, it works for me too when there are other keys remaining in the "extras" object. However I can't seem to delete the last one. Take the following example. {{{ curl -i -XPUT -d'{"extras": {"Tester": null}}' -H"X-CKAN-Type: application/json" http://test.ckan.net:80/api/2/rest/package/ec9cb930-d15f-441f-a1e1-36f4d5df19bf }}} Gives: {{{ { "author" : "", "author_email" : "", "extras" : [ { "id" : "88cc50ca-9e29-4499-a542-09d364f5f64f", "key" : "Tester", "package_id" : "ec9cb930-d15f-441f-a1e1-36f4d5df19bf", "revision_id" : "e5c3ca9c-1dae-4a86-837f-b8c19ac31964", "revision_timestamp" : "2011-07-07T16:01:05.696025", "state" : "active", "value" : "\"Test Value\"" } ], "groups" : [ ], "id" : "ec9cb930-d15f-441f-a1e1-36f4d5df19bf", "license_id" : "", "maintainer" : "aron", "maintainer_email" : "", "name" : "my-test-package", "notes" : "Heading\r\n===\r\nThis _is_ some text", "relationships_as_object" : [ ], "relationships_as_subject" : [ ], "resources" : [ ], "revision_id" : "688d33fb-5629-4ab3-9f59-a649fc7caa00", "revision_timestamp" : "2011-07-06T10:37:50.182894", "state" : "active", "tags" : [ { "id" : "600dc72e-6127-4704-b801-bee00474ec0c", "name" : "test-tag", "revision_timestamp" : "2011-07-06T09:09:21.578034", "state" : "active" } ], "title" : "My Test Package", "url" : "", "version" : "" } }}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | 1310055169000000 | aron | Another edge case that popped up while verifying the above issues. A PUT request without a body throws a 500 Internal Sever Error {{{ curl -i -XPUT -H"X-CKAN-API-KEY: tester" -H"Content-Type: application/json" http://test.ckan.net:80/api/2/rest/package/ec9cb930-d15f-441f-a1e1-36f4d5df19bf }}} | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | 1310057942000000 | aron | One more for today. Please do let me know if I should be filing these as separate tickets? For some reason performing a search query for packages with an underscore "_ " as a query string key fails to return any results. {{{ curl "http://test.ckan.net/api/2/search/package?q=osm" }}} Gives me 4 results. {{{ curl "http://test.ckan.net/api/2/search/package?q=osm&_=1310056826904" }}} Gives me none. The underscore is generally used by JavaScript libraries as a way of bypassing the browser cache when making JSONP calls. It's easily worked around but is odd none the less. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#1214 | 1310396399000000 | aron | The groups property in the package resource is always empty (or is for all packages I have viewed). The following group lists one package. {{{ http://test.ckan.net/api/2/rest/group/0ac963e7-ba29-49bc-83c8-98f8c1991649 }}} But when viewing the package the groups array is empty. {{{ http://test.ckan.net/api/2/rest/package/758c26d4-5949-4347-8b4d-023374146d94 }}} |
Note:
See TracReports for help on using and creating reports.