Recurrent pattern to map on Google event pattern - rfc5545

Google implements recurring patterns partly with rfc 5545.
I need to map on Google situation of repeat event Yearly, every fourth Wednesday in August (start time mapping is clear).
Implementation language to describe rule is not important, but if someone can recommend existing solution it would be good if java library is used.
More details from rfc 5545 specification:
Every Wednesday in August, forever:
RRULE:FREQ=YEARLY;BYMONTH=8;BYDAY=WE
It provides only partly solution. Is it can be improved?

Try this:
{
"summary": "Event every fourth Wednesday in August",
"recurrence": [
"RRULE:FREQ=YEARLY;BYMONTH=8;BYDAY=4WE;UNTIL=20191228"
],
"start": {
"dateTime": "2017-08-08T6:00:00",
"timeZone": "timeZone"
},
"end": {
"dateTime": "2017-08-08T7:00:00",
"timeZone": "timeZone"
}
}
This will make your even occur every year, 4th Wednesday of August.
Reference:
Can I create a Google Calendar event that repeats at every 1st, 3rd and 5th Friday in the month?
Recurring events
Hope this helps

Related

Schema.org is ProfessionalService deprecated?

After reading several recent popular articles on the internet I decided to use ProfessionalService over LocalBusiness for my web design company. It is my understanding that LocalBusiness is very broad and it is best to be as specific as much as possible and the reason why I opted to use both ProfessionalService and additionalType with The Product Types Ontology.
Using Google Tag Manager my json-ld looks like this:
<script type="application/ld+json">
{
"#context": "http://schema.org",
"#type": "ProfessionalService",
"additionalType": "http://www.productontology.org/id/Web_design",
"name": "BYBE",
"url": "https://www.bybe.net",
"logo": "https://www.bybe.net/wp-content/themes/showboat/logo-bybe.png",
"description": "Creative website design company based in Bournemouth and Poole, Dorset.",
"telephone": "01202 949749",
"areaServed": ["Bournemouth", "Poole", "Dorset"],
"openingHoursSpecification": [
{
"#type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "09:00",
"closes": "17:00"
}
],
"address": {
"#type": "PostalAddress",
"streetAddress": "Flat 11, East Cliff Grange, 35 Knyveton Road",
"addressLocality": "Bournemouth",
"addressRegion": "Dorset",
"postalCode":"BH1 3QJ"
},
"geo": {
"#type": "GeoCoordinates",
"latitude": "50.73744",
"longitude": "-1.8495269"
},
"sameAs" : [ "https://plus.google.com/+ByBeBournemouth",
"https://twitter.com/bybe_net",
"https://www.facebook.com/ByBeUK",
"https://uk.pinterest.com/bybenet/",
"https://www.youtube.com/c/ByBeBournemouth",
"https://www.linkedin.com/company/bybe"]
}
</script>
I'm a little confused over the choice of words Schema has used on the ProfessionalService page:
SOURCE
Original definition: "provider of professional services."
The general ProfessionalService type for local businesses was
deprecated due to confusion with Service. For reference, the types
that it included were: Dentist, AccountingService, Attorney, Notary,
as well as types for several kinds of HomeAndConstructionBusiness:
Electrician, GeneralContractor, HousePainter, Locksmith, Plumber,
RoofingContractor. LegalService was introduced as a more inclusive
supertype of Attorney.
It's not clear if ProfessionalService is completely deprecated since it is still listed on the list of Schema's, I suspect they mean its deprecated for using it in a certain way, I'd be grateful if a Schema Jedi could shed some light on this issue.
Question(s):
Is ProfessionalService completely deprecated? If it's not then please include an example demonstrating the type of usage that is deprecated, that way it'll help and others.
ProfessionalService is deprecated for all cases, not only for some specific ones.
However, it will likely never be removed from Schema.org, because it would do more harm than good: many sites might still use this type, and many of them will probably never update their structured data (or even notice that it got deprecated in the meantime).
See also what the Schema.org webmaster, Dan Brickley, says about superseded types:
We shouldn't make the warnings too heavy or it creates awkwardness e.g. when search marketing people have recommended something to their clients then it gets superseded. We want consumers to respect older structures wherever possible and not worry publishers into constantly updating in the absence of concrete product-related incentives imho.
So if you have to use this type, nothing will break (just don’t expect updates for this type, or integration with future developments of the vocabulary). But if possible, it would better to use an alternative.
If not using ProfessionalService, the closest type for your web design company would be LocalBusiness. The services (design, development, consulting, CMS updates etc.) your company provides can be modelled with Service (where the provider is the LocalBusiness) and/or with makesOffer (where the Offer can reference the Service with itemOffered) (or with hasOfferCatalog in the same way, if you want to model it as list).

SQL Database for Magic Cardgame

For school I am creating a deckbuilder website based on Magic the gathering. It's the project that decides if I get my degree or not. Trough the website from Deckbrew I have been able to get data like the following:
[
{
"name": "About Face",
"id": "about-face",
"url": "https://api.deckbrew.com/mtg/cards/about-face",
"store_url": "http://store.tcgplayer.com/magic/urzas-legacy/about-face",
"types": [
"instant"
],
"colors": [
"red"
],
"cmc": 1,
"cost": "{R}",
"text": "Switch target creature's power and toughness until end of turn.",
"formats": {
"commander": "legal",
"legacy": "legal",
"vintage": "legal"
},
"editions": [
{
"set": "Urza's Legacy",
"rarity": "common",
"artist": "Melissa A. Benson",
"multiverse_id": 12414,
"flavor": "The overconfident are the most vulnerable.",
"number": "73",
"layout": "normal",
"price": {
"low": 0,
"average": 0,
"high": 0
},
"url": "https://api.deckbrew.com/mtg/cards?multiverseid=12414",
"image_url": "http://mtgimage.com/multiverseid/12414.jpg",
"set_url": "https://api.deckbrew.com/mtg/sets/ULG",
"store_url": "http://store.tcgplayer.com/magic/urzas-legacy/about-face"
}
]
}
]
It's obvious that it's in jSon format. I have found the way to turn this into objects and the structure of the project is 4-layer MVC with entity framework and C#, which is working (kinda)...The problem is the database. I have been working on it for 2 months now and I am not getting any further. The thing I get stuck on is the database. I have not seen much on how to create databases and that's where it goes wrong. I don't get how to build the database. The creation itself would work if I figured out how to include certain things...
1) Formats: if the card is legal in a format, Formats is filled with: "legacy": "legal", "commander":"legal", ... so only the legal formats are included.
2) Types and colors are just plain arrays of words, but since I'm very bad with databases I don't even know how to figure this one out.
3) Editions is something completely different. It's an array of the object Edition which I believe has to have a table of its own. The problem here is that I thought I needed to use a foreign key but since it's an array of Editions I don't really know how to start doing that either.
4) and then there's Price: It always has 3 values: low, average and high which can be 0 if there's no price known.
So here you have it. To me this database is very complex or maybe I am making it too complex. Is there anybody who can help me to get this database organized so I can get on with my project, because I'm so lost at the moment that I feel I am not going to get this ready by the end of next month and that would be awful.
1: No, you should include all.
2: Table with colors, standard m:n binding table in between mapping the card table with the color table. Not knowing how to make a m:n relationship thing makes me thing you skipped all classes... this is fundamental and basic.
3: Seems like "cardedition" is the main table actually, and everything before is a master type table. Not sure- I don't really do magic at all, so I lack what is called domain knowledge. Are cards changed so multiple editions exist? Why is that an array in json?
3: magic values, 0,1,2,3. What is the question?
To me this database is very complex
I suggest you start from scratch (making things easier) and just have maybe 10 or so tables. Go step by step. Follow what you learned, go to 3rd of 4th normal form and go relational.

Google Search API Results Completely Different from Google.com Results

Below is one Json item returned from this query and this is the query:
https://www.googleapis.com/customsearch/v1?key={key}&cx={key}&q=Action+Motivation%2c+Inc.&alt=json
The "dc.type" in the Json is "Patent" and this is obviously patent data BUT I didn't specify that search engine. I've googled this to death but can't find anything re why patent data would be returned from a simple query like this. If Google "Action Motivation, Inc." on the regular google.com page, I get completely different (normal) results. Has anyone had this problem?
"items": [
{
"kind": "customsearch#result",
"title": "Patent US5622527 - Independent action stepper - Google Patents",
"htmlTitle": "Patent US5622527 - Independent \u003cb\u003eaction\u003c/b\u003e stepper - Google Patents",
"link": "https://www.google.com/patents/US5622527",
"displayLink": "www.google.com",
"snippet": "Apr 22, 1997 ... Original Assignee, Icon Health & Fitness, Inc., Proform Fitness ....",
"htmlSnippet": "Apr 22, 1997 \u003cb\u003e...\u003c/b\u003e Original Assignee, Icon Health & Fitness..."
"formattedUrl": "https://www.google.com/patents/US5622527",
"htmlFormattedUrl": "https://www.google.com/patents/US5622527",
"pagemap": {
"book": [
{
"description": "A motivational exercise stepping machine has a pair of independently operable pivoting treadles for operation..."
"url": "https://www.google.com/patents/US5622527?utm_source=gb-gplus-share",
"name": "Patent US5622527 - Independent action stepper",
"image": "https://www.google.com/patents?id=&printsec=frontcover&img=1&zoom=1"
}
],
"metatags": [
{
***"dc.type": "Patent"***,
"dc.title": "Independent action stepper",
"dc.contributor": "William T. Dalebout",
"dc.date": "1994-3-23",
"dc.description": "A motivational exercise stepping machine has a pair of independently operable pivoting treadles for operation by a user's feet. Each treadle..."
"dc.relation": "JP:S5110842"
}
]
}
},
{
When using their API, you can issue around 40 requests per hour. The results you see on the API is not what the real user sees. You are limited to what they give you, it's not really useful if you want to track ranking positions or what a real user would see. That's something you are not allowed to gather.
If you want a higher amount of API requests you need to pay.
60 requests per hour cost 2000 USD per year, more queries require a custom deal.

Time spent on HierarchicalRequirement in Rally Rest API

I have a report that hooks into the Rally API web service. It lists the user stories and defects for presentation to an external client.
The developers are filling in the time they spend on their tasks in the time sheet, but when I try to get the actual time spent using the 'TaskActualTotal' value, it always come back as 0.
The values are definately recorded as my internal reports on the timesheet produce these values.
Do I have to call for the time spent using a different method?
Thanks
Do your developers enter time in the Time Tracker module? There is no connection between Actuals and Time Tracker module. Actuals also predates Time Tracker.
The Actuals field is designed to be used during retrospectives to provide insight on root causes for missed commitments, while the Time Tracker module is designed to help report on development costs.
We generally only recommend using Actuals values by teams new to Scrum or Agile who are still working on providing good estimates. Comparing Estimates to Actuals can be valuable during retrospectives to help identify where the larger gaps in estimating might be occurring.
For more established teams, we recommend the Actuals field remain hidden as these values can seem to draw focus on the amount of time or resources spent on particular functionality rather than highlighting whether commitments were made by the team as a whole.
Of course, all teams are very different in the processes they use and the development cycle followed.
The intent of the timesheet values was more for capturing and reporting on development cost for billing and capitalization rather than for assisting with completion or estimation charting. Actuals however, were designed to assist in this regard and live on Tasks just as Estimates and ToDo values do and roll up at the story level for easy comparisons.
You may still query on Actuals in WS API. For example, I have a story with two tasks, each with Estimate set to 2, and Actuals set to 3. If I query on user stories by the specific iteration this story is scheduled for, I get the TaskEstimateTotal and TaskAcutalTotal as long as I fetch them. Here is my query:
https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1111&query=(Iteration.Name = i5)&start=1&pagesize=20&fetch=TaskEstimateTotal,TaskActualTotal
And here is the relevant part of the return:
{
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/22222",
"_objectVersion": "9",
"_refObjectName": "my story",
"TaskActualTotal": 6,
"TaskEstimateTotal": 4,
"_type": "HierarchicalRequirement"
}
However this query will only return results if Estimate and Actuals values were entered on the Details page of tasks, and not in the Time Tracker.
There are two objects in our WS API that are relevant to Time Tracker:
TimeEntryItem and TimeEntryValue.
Here is an example of a query on TimeEntryItem based ona Worproduct.Name:
https://rally1.rallydev.com/slm/webservice/v2.0/timeentryitem?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/11111&query=(WorkProduct.Name = us1)&start=1&pagesize=20&fetch=WorkProductDisplayString,TaskDisplayString,Values
and the relevant part of a result:
{
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/timeentryitem/77777",
"_objectVersion": "3",
"TaskDisplayString": "TA1: ta1",
"Values": {
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/TimeEntryItem/77777/Values",
"_type": "TimeEntryValue",
"Count": 2
},
"WorkProductDisplayString": "US1: us1",
"_type": "TimeEntryItem"
},

Mixpanel: Data Export API gives different results and ranges to the web dashboard

I'm getting different numbers in Mixpanel's dashboard and Data Export API.
In the dashboard on the segmentation tab, I've selected an event ("login"), start and end dates (Sept 17th and 24th), and the week unit. It shows a graph, and a table with four values, for this week, Sept 17th, Sept 10th and Sept 3rd.
I make this call to the Mixpanel API using the Python library:
api = Mixpanel(
api_key = '----',
api_secret = '----'
)
data = api.request(['segmentation'], {
'event': 'login',
'unit': 'week',
'from_date': '2012-09-17',
'to_date': '2012-09-24'
})
print json.dumps(data)
Here's the data it returns:
{
"legend_size": 1,
"data": {
"series": [
"2012-09-17",
"2012-09-24"
],
"values": {
"login": {
"2012-09-17": XXXXX,
"2012-09-24": YYYYY
}
}
}
}
The value XXXXX is different to the value shown in the web dashboard, why is this?
The API is returning a value for Sept 24th which isn't in the dashboard view. The dashboard shows values for Sept 3rd and 10th which aren't in the API. Why is this happening?
How can I ensure the results are consistent between the two interfaces for the same date range?
Geddes from Mixpanel's Solutions Team here. The Mixpanel website actually uses the same APIs that we document publicly for your use, so one tip is to use Firebug / Chrome Inspector to view all the XHR requests on the Mixpanel page. You'll see the exact API query Mixpanel is using to get it's numbers, and you can compare that to your own API query, and it will become clear where the difference is.
Of course, we'd be more than happy to look at your case. If you can provide details like account name, event name, etc to support#mixpanel.com we can give you a more specific answer.
Best,
Geddes