I have developed a site with google app engine using python and django, now I have another similar project to develop.
Well I have got some well-known problems using the datastore:
query: there's no "LIKE CLAUSULE" and GQL is not Sql
documentation is not so clear and easy to find
backup database is not so trivial
django support is not so great (I use google app engine patch)
I'm just a little scared about when my traffic go "into pay mode"
Now, I hope that this site will have a great number of visitors in my optimistic prevision :) so the question is, can an alternative hosting service offer me a professional service like google app engine?
Is it possible to make a professional web site that works starting from a 'conventional' hosting service?
An other stupid question, but I site like this where is hosted??
I'm a little bit confusing about which kind of hosting chosing...
Thanks for help :)
My individual opinion is that App Engine is ideal for prototyping for these reasons:
Free. Nowhere else can you run a web app for $0
Deployment and upgrading is extremely simple
You don't have to worry about backups or networking or anything besides programming
GQL is no problem. There are workarounds. It's a reasonable price to pay for free hosting and scaling.
However, once you think your site is popular, and especially if it becomes profitable, App Engine is not ideal.
Yes it scales. But as your site grows, you always wanting new reports on your data to gain knowledge. This is extremely tough in App Engine. You need case-by-case programming and possibly database changes. That takes time and resources. This is my #1 problem for App Engine for startups or small companies.
You want to control your backup and restore process
It is bad business to be locked in to a sole hosting provider
There is nobody to contact if something goes wrong. Forums schmorums. That's for hobbyists and discussion, not for time-critical problem-solving.
If you plan on having something you think will grow decently, maybe you should launch on something like linode or slicehost, where you have a VPS. That you, you control the instance of django, and have full control over your server. That way, your app doesn't have to contain some of hosting-specific code.
Yes, the initial setup for both may be a little bit of a headache, but you'll be able to create something that is a little more portable
really thanks, for link
yesterday I "discover" that exist IronPython and seems django compatible, or Ndjango for F#, so I love visual studio which one of best developer enviroments (in my opinion) so a good hosting service for microsoft product?
Thanks again I feel you are really an expert developer, so I take really care of your opinion
Related
I searched for answer to this question, but didn't come across a topic that seems to have directly addressed it. Hence I am posting it as a new question.
From this Google App Engine page, it says that webapp2 is a lightweight framework that allows you build simple web applications for the Python 2.7 runtime.
The emphasis above seems to be on simple web applications. Given this I wonder if it hints at webapp2 python framework not being suitable for large scale complex applications that need to scale to several million users. What is the reason that it wouldn't scale (because I thought Google App Engine is a platform designed to scale regardless of what language or framework one uses).
I am trying to make a decision of whether to use the webapp2 python framework (easier to learn and get going) for my website that might potentially have to scale to the millions of users or if I should consider other frameworks.
webapp2 is unfortunately not actively developed and maintained. I have been using it for simple web apps that have around 100 users a day - and I have not witnessed any performance drops.
Scalability is not only about the framework, but the quality of your code, database design, queries, servers etc. Google App Engine provides the resources (bandwidth, space, processing power) but it does not write the code for you. GAE helps you scale when you need it and on the go.
https://code.google.com/p/webapp-improved/ - check the issues page, you will see a lot of unsolved issues and the project seems abandoned. As a developer why would you choose a project that is abandoned and does not have an active community?
If you want to stick to python I'd refer you to this question:
Does Django scale?
Hopefully that will provide you with enough information to answer your question.
We're going to develop a brand new software for our customer.
While evaluating different technologies, the most interesting I found is Google App Engine cloud service. This will keep all the system engineering complexity management out of my mind I think. The price is more work on the code: the eventual consistency of the datastore, and so on.
Google Web Toolkit looks as the best companion to GAE, too. I just deployed an hello world.
Usually, when I'm going deep in a new technology, I write a simple CRUD for a table with a few simple fields. Here's what I think I will need:
JDO / JPA or something like Objectify /Twig "entity" class (my domain model)
Gwt-RPC knowledge, I mean, for example, do I need DTOs?
Can anyone address me in the right direction? Or better, a good crud example?
I think this question's been answered already. I like the stockwatcher tutorial also. It will also show you how to migrate to GAE once you're done.
An example of a Google Web Toolkit (GWT) Create Read Update and Delete (CRUD) Application
This is one of examples created by me, hope it helps,
http://code.google.com/p/gwtcrudapp/
I am creating a website with a friend to try and make some money. Basically, we want to let users aggregate data from different social networking site's APIs (FaceBook, Twitter, etc.) and do some cool things with the data.
My non-developer friend is sold on the Google App Engine because it costs nothing at first, and then you pay as your traffic/data increases. I am torn. I like being able to bootstrap the business like that and have no startup costs (other than time) but I am worried about learning a whole new "programming world" as Joel Spolsky would put it.
I am so comfortable with C#, ASP.NET MVC and SQL Server that I think moving to something like Java or Python on top of BigTable would end up taking about 3x longer to develop (if not more).
Can anyone give me some guidance on this? Basically, I am wondering if there is any way I can have the following with the Microsoft stack:
Free hosting up to some limit of traffic
Ability to scale out at a cost similar to what Google offers with GAE (maybe the hosting service would need to have support for a good scalable persistence solution--like Couch DB?)
For #1, I am OK if that means hosting it on my own server for the ALPHA/BETA phases. For #2 I am hoping that there is a good hosting service out there who can put me on shared hosting servers and charge by the traffic. Does that exist? Thanks!
Unfortunately when it comes to a similar platform then you won't find a MS Stack version. Windows Azure comes close but this is more akin to Amazon's EC2.
The python stack in GAE is really easy to use and was able to make the transition quite quickly. Django is a MVC that is really popular and quite simple to use. It also gives you a ORM to write to BigTable which means you don't actually have to care about it.
The Java implementation is very similar and you can use really well know MVC frameworks for creating your app like Spring
I am also a .NET expert, but I have been using Python-AppEngine for hobby/entrepreneurial purposes specifically because it allows me to bootstrap an new web application at no initial cost. That is critical for me, as I have no budget at all for side projects, and so far, with many deployed AppEngine applications, I haven't spent a penny on it.
Learning a new language can seem like a drag at first, but I have come to find my new expertise in Python to be invaluable. Remember that the best and most employable developers are usually generalists with a broad and flexible palette of skills. My resume features C# and .NET as well as Python and Ruby/Ruby on Rails, and I have gotten very positive reaction from potential clients and employers.
Learning Python was dead easy. Getting a handle on WebOb and Django templates took more effort, but nothing extraordinary. Over time, I built up my own framework layer on top of those things that incorporates the best ideas from Rails and ASP.NET MVC that I missed. You can take a look at it on Google Code, and you will see a number of ideas that specifically borrowed from ASP.NET MVC.
I have only very basic experience with HTML/CSS and have quite a bit of experience with testing software and web apps from a consumer perspective. I'd love to launch a web application that plays nicely with Google services, similar to some of the apps you'd find on the Google Apps Marketplace, such as ManyMoon, time to note, Socialwok, etc. I'm a huge Google fan and would like to build something that's well integrated with other Google services.
If you were a total beginner and wanted to build a complex app like one of examples above (project management, CRM, etc), where would you start?
If you worked your ass off 18 hours a day, 24/7, how fast could you do it?
I've dabbled into various languages and development frameworks, and read about which apps are using what languages but it's hard to figure out what would be most beneficial to jump into. Ruby on Rails, PHP, Google Web Toolkit, AppEngine. The list goes on and on. I want to be able to build and launch my own scalable web app.
Thanks.
One bit of advice: There is no shortcut for proper experience. It took me 4 years to come to a point where I can build enterprise level web apps - even though I had the dream of building one immediately, right from the beginning. Start small and build your way up.
Even though I did hate this advice when I was receiving it... Don't try to build the next Facebook platform right now.
Now, to answer your question:
Skills:
You must be absolutely clear about server-client interaction with respect to HTTP. You will never understand AJAX fully without understanding HTTP and behind the scenes of browsers. Note: being clear and knowing everything are two different things. Be clear about HTTP.
Learn about HTML/CSS and JavaScript standards to some extent to know that they bahave differently in different browsers. In the grand scheme of things, they are not that important if you are okay with some framework that handles these for you (I recommend JQuery and JQuery UI).
Learn a little about Linux, Apache, PHP.
How to go about it:
To develop web-apps, you could start with the LAMP stack - Linux + Apache + MySQL + PHP.
First build a small web app that does something trivial - like saving and retrieving user's stuff using AJAX and a nice UI or something. I'd recommend jQuery and jQueryUI for JavaScript and UI frameworks.
Then, build a small web app that just gets data from some Google service, given a user's credentials.. I am not Google expert but I guess Google provides APIs for some services(?).
Then build an app where two people can share their data coming from a Google's service or something to that effect.
Then add your own fancy stuff.
It goes on like that.
If you are a .Net person, you could go with.. Windows + IIS + MS SQL Server + ASP.Net3.5/VB/C#. Guess what? StackOverflow is build on that stack :)
Learning about and using an MVC framework is also a good idea - ASP.Net MVC or something similar for PHP.
Minor clarification - By Google-friendly did you mean SEO-friendly? If so, Google-friendly and web-app don't go well together.
It makes sense to build a Google-friendly website not a web-app.
I would start by
brainstorming a hands-on project
identify the skills you will need to achieve it
learn them as you work through the project
set progress goals and celebrate small victories
For most people 18 hrs/day 24/7 sounds a little overly optimistic. A reasonable goal would be to form an interesting project idea and research the needed skills the first week, work through a few tutorials and maybe apply your own functionality the second week, build something 'complete' the third week, then take a step back and take another look at your original goal.
As far as choosing a project, I find a notepad helps. I'll be somewhere and think, 'wouldn't it be nice if...' and I'll go look for a solution that provides that 'what if' and find it doesn't exist. So there you go.
I would also have a look to one of the top voted questions here on Stack Overflow:
What should a developer know before building a public web site.
Has anybody got any real world stories build mobile web sites with NetBiscuits?
Someone told me it was the next big thing in mobile development (http://www.netbiscuits.com/home) and it looks pretty good from their site. Just wondered if anybody (besides them) has actually used it.
From a few months time working with it, I can say that they're indeed one of the best (if not the best) out there. The support is also insanely quick and good.
Only thing making me stop using it is the price. Especially if you're a small company and want to use their POI feature.
However I have yet to find a good replacement. May end up rolling my own version...
Edit: Related question.
They have created an entire xml (bml) based markup language that emulates html that has a very steep learning curve. I would seriously reconsider using it.
I have seen it working nicely. It also supports ASP.NET controls SDK that can be used to write ASP.NET app from Visual Studio. Once this app is deployed on your premise, you can use live bridge agent to connect this app to a Live Bridge server that Net Biscuits hosts. Your app is called a backend app in this case. This is a very useful feature when you do want to have Forms capability in your app and also want it to be accessible on NetBiscuits platform.
Check http://kb.netbiscuits.com/tactile/edc/livebridge_help.html. BiscuitML is also easier to grasp.
Look out for performance issues though. Customers in Australia have had response time issues - probably due to the Cloud Platform being located in USA/UK.