Are there any alternatives to OData? [closed] - web-services

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
OData is used by Netflix and in many of Microsoft's products (servers: CRM, Sharepoint, SQL Server; clients: Excel).
While OData is interesting, it has it's own set of benefits and trade-offs.
I've designed and build a custom search engine for internal use. Many developers are using the search engine for reporting and lists, replacing the reports and custom search/filter functionality in each line of business app with this search engine.
I have a decent system to allow querying/filtering in my search engine. It's all url driven so it's easy to use.
At this point, I want to add a little bit more functionality to the URL "command line". OData is a tempting choice because we use a lot of Microsoft tech already. It also has standard language for filters with Boolean logic, etc.
Are there any other legitimate standards based REST frameworks like OData that I should look at?
I'm not sure I need the full OData stack for what I'm doing. My simple query string based filtering is working very well at this point. Just want to conduct some due diligence so I can make an informed decision.
Thanks.
Edit
What I'm looking for is more of a framework for creating my search API. Lucene/Solr use a url syntax http://lucene.apache.org/solr/tutorial.html as does OData. Lucene/Solr aren't exactly what I'm looking for and are too complex for my scenario. However, they have a well defined url api.
I'm looking for any other well define url-based api examples. I want to see the "prior art" for defining a query/search syntax based on a url and query string parameters.

While some will certainly argue, rolling your own is certainly an option; provided you can release a consumable schema and syntax or API library. Given that you carefully research the current standards landscape and borrow from established (albeit unfitting) implementations, you (and supporters) could be inclined to produce a new or extended standard; perhaps one that solves an unsolved problem.
However, obligatory:

After some research it appears that no, there is not really a good alternative to OData at this point.
I'm saying this based on the features of Odata. Hopefully we'll see an alternative at some point.

Facebook is developing GraphQL. Data can be queried using JSON queries:
{
user(id: 3500401) {
id,
name,
isViewerFriend,
profilePicture(size: 50) {
uri,
width,
height
}
}
}
At the moment it is not usable. According to the Changelog they plan to release it as a kind of specification.
Here is another whitepaper

Google is pushing for GData, which seems feature crippled.

If you are looking for a web compliant search mechanism, I suggest looking at Open Search

Related

Beginner tutorial for Sitecore8 developer [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I come from an ASP.Net (no mvc knowledge) background and would like to learn Sitecore 8 development.
Looking for basic step-by-step tutorials to build a site. But its hard finding them online. Some are for lower versions and the official site has articles on individual topics.
Kindly point me to any such articles that will help me learn the basics of building a Site for Sitecore8.
Thank you.
UPDATE
Here is a tutorial I've written, which will help beginners learn Sitecore development, by building a sample website:
https://saltandsitecore.wordpress.com/2017/04/01/building-a-sitecore-website-with-mvc-part-1/
There is plenty of information regarding Sitecore in the internet for a quick start. I would recommend just few of them:
http://learnsitecore.cmsuniverse.net/
https://www.cmssource.co.uk/blog/2012/June/basic-sitecore-development-tutorial-part-1-introduction
https://sitecorebasics.wordpress.com/2011/05/13/basics-of-sitecore-for-beginner-developers/
You will need to understand how to create pages, how data templates work and presentation details like layouts and renderings and other fundamentals
https://doc.sitecore.net/sitecore%20experience%20platform/creating%20and%20editing%20items
https://www.cmssource.co.uk/blog/2012/June/basic-sitecore-development-tutorial-part-6-layout-and-sublayout-implementation
You will also need to find out some architecture basics about Sitecore, like content management and delivery servers and databases used for that (core, master, web). What is publishing and how it works, and why is it important.
http://learnsitecore.cmsuniverse.net/en/Editors/Articles/2009/07/PublishingAndVersioning.aspx
Also it would be very benefocious to understand Experience Editor (previously called Page Editor) and what are the particularities of creating pages to support it; as well as the advantages it brings to business users.
https://sdn.sitecore.net/upload/sitecore7/70/page_editor_recommended_practices_for_developers_70-a4.pdf
There are also some differences in MVC approach you need to understand before doing Sitecore with MVC. You need to understand View Renderings and Controller Renderings, as well as how the routing works in Sitecore MVC.
http://sitecore.unic.com/2015/06/24/the-sitecore-mvc-puzzle/
http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2015/02/how-is-sitecore-mvc-different-from-aspnet-mvc.aspx
http://www.sitecore.net/learn/blogs/business-blogs/technical-trends/posts/2012/06/mvc-and-sitecore-651-overview.aspx
There are other aspects of Sitecore you may need to understand: workflows, caching, indexing, pipelines, events, sitecore security model etc. Generally, speaking, the question you asked is to wide even to answer that by sharing the links. But those I quoted is enough to start
There are many YouTube channels that may be much more helpful for the beginner:
https://www.youtube.com/watch?v=yytEQnJpF1I
https://www.youtube.com/user/mastersitecore
https://www.youtube.com/user/sitecoreceptraining
https://www.youtube.com/watch?v=AQGtFA8Ud2Q&list=PL5QMcxdLbK7gGSTcPZJal2i5GHu1VHrl4
Also, if you budget allow that, you may consider to take official training courses - they are quite helpful for the beginners.
http://www.sitecore.net/services-and-support/training.aspx
The basics of building a Sitecore site are very similar from earlier versions of Sitecore. If you haven't been on the Sitecore training, I recommend doing that as it will teach you the main basics.
These are some good basic tutorials http://learnsitecore.cmsuniverse.net/en/GlobalNavigation/Sitecore-beginners-guide.aspx - although they are older, they are still valid.
Also the docs at https://doc.sitecore.net/sitecore%20experience%20platform can help you with Sitecore 8 details.

Which wiki to use after MediaWiki? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
We're thinking of moving from our existing installation of MediaWiki to something more feature-rich. I'm trying to find all the pains people have with MediaWiki today (mainly it's poor handling of external documents and less-than-perfect editing capabilities - compared to Word).
We are using a wiki for design, spec, process guidelines. We have several external documents (docs, powerpoints) that we are currently putting on a shared folder and linking to from the wiki (because uploading files is not very convenient in MediaWiki).
We are trying to make the friction minimum, so that nobody will have an excuse or reason for not using it.
Some options we're considering are Confluence, Trac & Sharepoint. Money is not a big concern, only ease of use (and maintenance) and feature-fullness. What would you use?
I would plug the details of my specific feature needs into the excellent WikiMatrix choice wizard and let it make recommendations.
I would advise either
Foswiki ( http://foswiki.org ), (forked by the whole developer community of TWiki to avoid trademark threats), for a feature-rich and fully open programmer's wiki. Drop on #foswiki on irc.freenode.net to chat with the community.
Mindtouch's Deki Wiki ( http://www.mindtouch.com/ ) clearly the most user-friendly advanced and innovative wiki out there, a modern commercial + open source offering. Great integration with Office docs.
I would avoid Confluence. Confluence made a design choice (forbidding mixing html in pages with Wiki syntax) that proves deadly to any attempt at wysiwyg, as it uses a standard HTML editor for WYSIWYG, and this converts it on save in a very limited subset of it, yielding frustrating surprises for the users (foswiki for instance keeps as html the parts the wiki syntax do not handle like bullet lists in table cells). Confluence have many great sides, notably its integration with atlassian great tools as their JIRA bugtracker, (we use it at work for this with good results) but do not plan to customize it.
There are many good choices on hosted wikis too (Google sites, based on the awesome jotspot engine is one).
Never use Sharepoint of course. Its wiki capabilities are a IE-only joke, and Sharepoint whole architecture is braindead (storing all data - even huge docs - in a non-distributed database goes against Microsoft own recommendations). If you want a DMS with good Office integration, have a look at KT (Knowledge Tree) instead. http://www.knowledgetree.com/ . For political reasons we were forced to use Sharepoint at work but we limited it to basic document managing (never use the MOSS higher layer, as it breaks compatibility between versions) and integrated a foswiki frontend to it (dumped document list & metadata in xml and provided navigation in foswiki, and search with a google box)
But my real advice would be to ... wait for Google wave, that promises to revolutionize the wiki concepts.
Disclaimer: I am part of the foswiki community.
Before you move away from Mediawiki I would urge you to consider the many extensions available. IMO there arent many wikis that offer more features that MW, especially when you consider the number of extensions. See http://www.mediawiki.org/wiki/Category:Extensions
For example, for editing there are browser based editors similar to Word. And there even macros for Word that allow you to export from MS Word to your Wiki, from within Word.
Also, check out the Semantic Mediawiki extensions. These give enormousness benefits in the area of Knowledge Management.
I would personally recommend against moving from Wiki to SharePoint. The huge problem there is SP's dreadful handling of images.
First of all I would stay away from Sharepoint. Period.
I would not consider switching to Trac either, since Trac has special focus on issue tracking, and poor support for external documents.
I would consider switching to Confluence, since:
Money is not an issue (as you said)
You want to minimise maintanance work (as you said)
You want to use wiki to handle external documents (as you said)
I'm typically a strong advocate of open source technology, but with the requirements you gave, I just don't think they would make you happy. For instance if you had personnel available for maintaining and providing customisations to your system, I would definitely suggest trying out Foswiki, which also would otherwise fit your needs very nicely. However, if you really want to stay away from any extra maintance work, Foswiki is not a good option.
I work on Tiki Wiki CMS Groupware and I'll share a few links. This question comes up quite a bit so we have a dedicated page: http://tiki.org/Tiki+vs+MediaWiki
We're thinking of moving from our existing installation of MediaWiki
Tiki & MediaWiki are both PHP/MySQL so you can use the same server.
Tiki has a built-in importer: http://doc.tiki.org/MediaWiki+importer
to something more feature-rich.
Tiki is the http://tiki.org/FOSS+Web+Application+with+the+most+built-in+features
We are using a wiki for design, spec, process guidelines. We have several external documents (docs, powerpoints) that we are currently putting on a shared folder and linking to from the wiki (because uploading files is not very convenient in MediaWiki). We are trying to make the friction minimum, so that nobody will have an excuse or reason for not using it.
http://doc.tiki.org/WYSIWYG
http://doc.tiki.org/File+Gallery (instead of your shared folder)
http://doc.tiki.org/Docs (web-based ODFs)
http://doc.tiki.org/Spreadsheet (web-based)
http://doc.tiki.org/Slideshow (web-based)
http://doc.tiki.org/Draw (web-based)
Some options we're considering are Confluence, Trac & Sharepoint. Money is not a big concern, only ease of use (and maintenance) and feature-fullness. What would you use?
Tiki is Free/Open Source. But if you have money burning your pockets :-)
http://tiki.org/Donation
You can also hire a consultant to provide training/support and to accelerate the implementation and/or sponsor feature development
http://info.tiki.org/Consultants
Have you considered sharing your Word documents with Google Docs? It has revision control and collaboration features like a wiki, as well as a rich text editor that can import and export plenty of formats.
It sounds like TWiki would be a great option for you as well. I haven't used it myself, but it also has a rich text editor, as well as tons of enterprisey project management features in it.
A lot of people seem to like Confluence. I personally don't know it. If you are not already at it and you want something feature-rich than xwiki could be something for you.
I'd add FCK Editor for WYSIWYG, get a decent document management system to run alongside the wiki and carry on with MediaWiki!

Latitude longitude API's [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I have an address database and I tried to find latitude and longitude using google geocoding and yahoo API. Is there any other popular API's or programs are there. I'm using ubuntu platform.
I was usually using Google Maps geocoding service over HTTP which returns you Json or XML as you like. Browse around here for more information about this.
Another option may be GeoNames.org. It also provides some interesting services and client libraries.
I'm aware of at least one other geocoding system, OpenStreetMap. The only major differences I've found with any of these API's is the level of detail in each. OpenStreetMap has significantly less data, but is much easier to integrate with custom data. Also, I think the maps produced by google are the most beatiful of the three.
With both of those that you mention, if you're mass-processing them or not showing a map to the user at the time of querying the API, you're violating TOS.
A better solution to meet your needs would be something like LiveAddress. I actually work at SmartyStreets where we develop it ourselves -- there's no license restrictions such as would prevent you from running even millions of addresses. In addition to returning coordinates, LiveAddress will also verify the existence of addresses and standardize them for you. This is helpful in removing duplicates and has a lot of business advantages.
If you have any further address-related questions I'll be happy to personally assist.
You might also find geocoder.us useful.
Using YQL, u can obtain a list of possible forecast
First step:
Reverse geocoding
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##"
then apply a filter to order results by placeType. This help U to order forecast by map level accuracy (town, city, postal code, region, ....)
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" |
SORT(field="placeTypeName.code")
Now use simile join to get all forecasts by woeid resulted by last query and filter null results
SELECT channel
FROM weather.woeid
WHERE w in (
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" |
SORT(field="placeTypeName.code"))
AND channel.

Generating documentation for a RESTful Web Service from Python [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I would like to generate documentation for a RESTful web service API that is written in Python. Ideally it would look like Yahoo's RESTful web service docs. Does anyone have any ideas or references?
The Sphinx project (www.sphinx-doc.org) is the current state-of-the-art in Python documentation. It's really powerful and flexible... so also somewhat confusing. Still, I think it is your best bet.
There is excellent documentation on their site on how to set up the document source files and the process of building them in to finished documentation such as HTML. The part that should interest you is its system of incorporating docstrings from Python source, which I'm assuming you've been doing for the methods that serve your REST requests. Note that this will NOT magically interpret what is going on, but will bring all the named elements and their arguments (if appropriate) and provide a good framework for you to put in the appropriate documentation.
Assuming you have all of your REST functionality in a module named restapi.py and it is simply in your src directory of your project, you need to do two things to get Sphinx to automatically generate the documentation:
First, include the autodoc extension and add the src directory to Sphinx's path in conf.py:
import sys, os
sys.path.append(os.path.abspath('sphinxext'))
extensions = ['sphinx.ext.autodoc']
sys.path.append(os.path.abspath('src'))
Then in the Sphinx
.. automodule:: restapi
:members:
Note: this information was taken straight from the Sphinx "First Steps" document with minimal reordering. Do have a look at that document and the rest of the site if this seems like it would serve your needs.
Unfortunately I don't know anything specific that will help you in Python specifically -- However just as points of reference, you might take a peak at the WADL specification that the JAX-RS java spec is using -- https://wadl.dev.java.net/ -- Additionally, there is a xslt that will transform the wadl into html -- http://www.mnot.net/webdesc/
They use the yahoo REST API's as examples.
It sounds like you're not making a REST API, but simply an RPC. There's generally no easy, automated way to assemble a REST API, which should primarily be a description of your media types.
If what you mean is that you want something to pull together all the URIs in your service and put them into an API document, that's not REST at all, due to all the coupling from URI to resources.

What data source could I use for my stock market program? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I would like to make a free open-source C++ application for both Linux and Windows which will create live stock market charts (i.e. they're refreshed frequently).
Please could you give me some pointers on these issues:
What should I use as the data source? Are there free services I can implement? I would like to use the same or similar information as companies like Google.
I'm not sure what GUI toolkit would be best to use, is there one which has charting built in, or would I need to use a specialized library for this?
Some things to note:
This is my first attempt at both cross-platform C++ development, and a GUI application for Linux.
I'm based in the UK, so I'd like to use data sources that provide information for the London stock exchange (LON) as well as NASDAQ, etc.
As of Nov 2014, these links are dead.
Google Finance API: http://code.google.com/apis/finance/
Yahoo! Finance API: http://developer.yahoo.com/finance/
Cross-platform C++ charts w/ Qt: http://www.int.com/products/2d/carnac/chart_component.htm
Assuming the rules in the UK are the same as in the US, you basically have 3-tiered choices.
You can hack together a lame feed from things like Google or Yahoo but you absolutely are not getting every tick, if that is what you are after.
A step up from the obvious internet sources are some of the online brokers. Their data is more reliable and timely but obviously you need an account and they have to offer some kind of API. Check into something like InteractiveBrokers.com. They are mostly java centric but offer a Window's based C++ DLL as well. Several other brokers offer similar APIs but IB is excellent in that it covers a multitude of exchanges including, I believe, London. They also make it relatively easy to transfer currencies if that is a concern.
Lastly you have to go to commercial brokers. You can find them easily enough with a search but be prepared to pay a couple of hundred dollars per month minimum.
I think Mark's suggestion of QT is a good way to go for a GUI. Java tends to be adequate for putting up a grid of running quotes but tends to fail in the charting area, IMO.
You said you wanted "live" market charts. If you mean real-time, you will never get that for free. All the data you see on google etc is delayed, usually at least 15 minutes, and they don't get every tick.
If a delay is not a problem and if you are only interested in daily data, you can easily get historical data for free via simple HTTP request using this historical data API.