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 10 years ago.
Improve this question
What licensing issues arise if I install and use Microsoft Office software (in this case Visio) as part of my web service backend?
My company's flagship piece of software can convert Microsoft Visio files for use in their environment, but of course requires a local install of Visio to decode the files. The system I'm to create is to offer a sort of web service where people can upload their Visio files, and then we can show off the benefits of buying our full price software.
In order to do this I'd need an install of our software on the server, as well as Visio. What I'm a little concerned about is technically any visitor to the site is technically using Visio. I can't really find any other examples when searching online (it doesn't help when things like "server", "cloud" are essentially buzzwords) so any advice would be greatly appreciated!
I don't know the legal details but MS say if you do this every user would require a Visio Licence. You can certainly do it technically but MS also warn that office automation was intended to be done in an interactive session - I take this to mean they don't guarantee that its not going to pop up a dialog or something at some point. They provide server side options for most office products but not Visio.
I don't know what your application is but I can think of three options that may be relevant:
Create a downloadable application that opens Visio and converts the file to your internal format and then uploads it to your server
Have files uploaded to the server which then creates a task for someone in your company to download the file and do something with it. You could significantly automate this process
Get the users to upload VDX files and process the data as XML
Note if your application is using Visio in such a way that you don't have your own internal data structure can you use option 1 and just have some of the functionality done on the server through authenticate web services? this way they get to see what it can do but it only works while connected to your server.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
I am a freelance software engineer, I have worked in few areas of computer science, I have made some e-commerce websites in the past. Now I have an opportunity to build a big enterprise level system. I can not disclose specifics about the application due to NDA I signed so pardon me if my question seems broad, let me know in the comments if you require clarification. I appreciate your help.
About Application:
In this application, I would require building a system like uber, there will be people at my client's end for
resolving customer issues, so a CRM is also needed.
customers will be using this app, so I have
to design a separate system that can manage tickets and access
database.
My question is where to start designing such application. I guess I would require DynamoDB and AWS, I have divided modules into parts such as Client App, Database, Dashboard etc. I want to know if there is some case study that can help me decide how to design such large application.
I found this link useful, it gave me an idea of work, but still, I believe it's a long way from money shot.
[EDIT]
To narrow down the scope of the question, What Backend server should be chosen for an application that will serve one hundred thousand users per hour. I will use Mongo DB as the database, and Python as backend scripting language.
IBM has a nice article on Enterprise Architecture,
https://www.ibm.com/developerworks/rational/library/enterprise-architecture-maximum-value/
Before building the software, design how it should work and choose your software components according to that.
Previously you might need costly infrastructure to think something, with recent technologies, you can do them at a lower cost. You need to apply the right architecture and engineering when designing your application.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Should I use google charts in production environment?
Google charts are very easy to use.
https://google-developers.appspot.com/chart/interactive/docs/quick_start
But is it recommended to be used in a production environment?
The API's are not hosted in house but called form google servers.
There is a risk of google changing them or discontinuing them.
I couldn't find any license agreement to use.
Is the data secure as the data is being sent to google servers.
Are the above real risks or am I over thinking.
I was wondering if anyone has any experience with using google API's in production. Or if anyone can give some recommendations.
The Terms of Service cover some of your questions. Basically, Google's deprecation policy says that the API will be available for 3 years following deprecation (and most of the API - namely, the Interactive Charts API - is not deprecated; the old Image Chart API is, however).
For data security, most charts in the Interactive Charts API do not send any data to Google's servers, though there are exceptions. Each chart's documentation has a Data Policy section which explains what, if any, data is sent to Google (examples: AreaCharts, which do not send any data; and GeoCharts, which may send data if you use the geocoding features). Charts in the Image Chart API do send data to Google's servers, as they generate the images server-side rather than client-side, but this API is deprecated anyway, so you probably shouldn't be using it.
The main risk with using the Visualization API in my experience is that you have (practically) no control over versioning. When the development team releases an update, everyone everywhere gets the update. Usually this is a good thing, as it brings new features, bug fixes, and performance enhancements to everyone. Occasionally, however, a new release may introduce a bug, or change the behavior or appearance of a chart in some way that is undesirable for your application. When this happens, you generally cannot roll back to the previous version. For projects that are under active development for long periods of time, this is generally an acceptable trade-off for the free (as in beer) chart API. For projects that do not have a long-term maintenance budget, this can be problematic.
If your user-base is in an area that has poor connectivity to Google's servers, having the API hosted remotely could be problematic, but in general this is not the case.
I have used it in a production environment. All the questions you have posed are very real possibilities. For use it came down to budget, the money was there to purchase a system so we went with what we could afford at the time. The direction you go really depends on budget and existing systems that might be able to achieve the same thing.
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
Been looking around on the web for one of these, but I'm only finding node.js/ruby hosted implementations.
I'm keen to have a DynamoDB app, something like that of the navicat ilk that comes with an msi installer to get running quickly.
Maybe there's a valid reason as to why one of these doesn't exist yet?
If you are using DynamoDB local for development you can use the built-in DynamoDB shell: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.Shell.html
http://localhost:8000/shell
UPDATE: Amazon does also provide an official client: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/workbench.html
I'm not aware of a dedicated desktop application for using Amazon DynamoDB from Windows yet.
However, the AWS Toolkits for Eclipse and Visual Studio both allow you to create tables, insert and edit data, initiate table scans, and more, straight from your local development environment (see the introductory post AWS Toolkits for Eclipse and Visual Studio Now Support DynamoDB).
So depending on your use case this might be all you need (or even better, if this is targeting a development scenario).
Update
The AWS team has just announced the option to Explore Your DynamoDB Tables Using the AWS Management Console as well:
You can now view and modify the contents of your DynamoDB tables from
within the AWS Management Console. With the addition of this new
feature, you can learn by doing -- trying out a number of DynamoDB
features without even writing any code. You can create a table, add
some items, and see them in the table, all through a very clean and
simple user interface.
This is obviously a very convenient addition to the rich client options referenced in my initial answer above, please check out the post itself for a short illustrated tour to help you get started.
RazorSQL Database GUI Tool for Amazon DynamoDB
http://razorsql.com/articles/razorsql_amazon_dynamodb.html
Amazon provides a local client for DynamoDb. It's a java jar and it runs on Linux and Windows.
It starts a server that binds to port 8000 at localhost (or you can specify another port when you start the server).
Download and unpack the desktop client, change the endpoint inside your app to localhost:8000, and then you can use the desktop client for DynamoDb.
Here you can download and read about installing the dynamodb desktop client.
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
Is there a file sharing service akin to Dropbox or SugarSync that would offer an API? I would like to add a file sharing service to a website, but the full Dropbox interface is still too complicated for my users, so that I’d like an API to build a dead-simple list of files integrated to the website. There is a Dropbox API project on Google Code, but it seems to be dead.
Update: I need a service with a desktop client at least for Windows, so that the more technical website users could easily upload and organize the stored data. Extra points if the service has a free plan.
A quick search on ProgrammableWeb brings up about 50 API results.
Out of the lot, I could only say that I have had experience with the Box.net website. I've had no trouble in the past, and they have rather acceptable limits for the free account (25 MB per file; 1 GB of storage).
I'm sure that with a little poking around you'll find something that fits your needs, but I wouldn't expect to find something that offers you a business-scale solution for free, you might have to be prepared to make an investment, and in that case some of Amazon's Web Services might be better suited to your needs.
Edit: Since I answered this question 6 years ago, the landscape for storage solutions with APIs has changed somewhat. There are now free or affordable services with mature developer APIs offered by Dropbox, Google Drive, Amazon S3, Rackspace CloudFiles, Microsoft Azure and for mobile, iCloud.
We are a file sharing company that has recently released a fully functioning RESTful API. You can add users, groups, permissions, files, dynamic links and even searching in real-time. Unlike dropbox and sugarsync it was designed for business, thus giving you multi-user access.
We would love your feedback.
http://www.smartfile.com/dev/
smartfile
I used https://uploadcare.com and it works like a charm.
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 13 years ago.
Improve this question
I'm trying to build a web application that is similar to Youtube (it's not a knock off), but I guess I don't know how video is served on the internet very well.
I know how to build regular database driven web applications, but nothing like the scalability of Youtube. All of the applications I have built before have all been run on one server with the files stored on the same box as the web server.
How does one decouple the application server from the file storage from the media server?
I would more or less want 4 machines (clusters of machines)
1.) Application servers
-- Present the web page, handle user uploads, link the user's flash player to the correct media server etc.
2.) Database shards
-- Store user information, check favorites, etc.
3.) File storage
-- Store the media files
4.) Media servers
-- Serve the media files
How do I hook all of this together? Which technologies should I leverage? Where do I go to learn more about architecting this?
How does Youtube's embeddable flash stuff work? I want to embed my flash player on other websites and have it tie into my architecture.
Note I have looked into: http://highscalability.com/youtube-architecture
But I still don't get the overall picture of how this stuff ties together.
If someone can explain in high level terms how all of this stuff works?
Are there dedicated client servers running internally to shuffle around all of this stuff between the application servers, file storage, etc. Is it all via HTTP using JSON, what is going on here!
Thanks
Two books I'd recommend are:
Scalable Internet Architectures
Building Scalable Web Sites
The latter is by the director of engineering at flickr. Not youtube, but I think you'll find it enlightening.
Beyond that, the High Scalability blog is a good source of case studies and collected wisdom, all of which provide a good starting point for further exploration.
Start by hiring the right people; if you hire smart people, they'll be able to come up with answers to these questions, and more which will crop up.
Also, start at the scale that you plan to initially operate at. Don't plan for scalability you don't need. You aren't going to be making another Youtube - even if you're very successful within your field.
Scalability is expensive - very expensive - to develop and maintain. If you don't need it, it will drain your resources and restrict your developers needlessly. Just building a credible test environment for high performance systems tends to be a big job, and such a system would require several such environments.