Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gaeshi vs appengine-magic #5

Open
murtaza52 opened this issue Jul 19, 2012 · 11 comments
Open

gaeshi vs appengine-magic #5

murtaza52 opened this issue Jul 19, 2012 · 11 comments

Comments

@murtaza52
Copy link

Hi,

Just had a peep at gaeshi and was wondering how does it compare to appenginine-magic, the other leiningen plug for GAE.

Thanks,
Murtaza

@slagyr
Copy link
Owner

slagyr commented Jul 19, 2012

Murtaza,

I can tell you that I started with appengine-magic. My frustrations drove me stop using it and start building Gaeshi.

I find Gaeshi much more pleasant to use and I'm proud to say it's fully tested. And it provides Speclj helpers to make client apps fully testable.

That said, app engine-magic probably has better documentation. Although if you have questions about gaeshi, I'd be happy to answer.

Micah

On Jul 18, 2012, at 11:17 PM, Murtaza Husain wrote:

Hi,

Just had a peep at gaeshi and was wondering how does it compare to appenginine-magic, the other leiningen plug for GAE.

Thanks,
Murtaza


Reply to this email directly or view it on GitHub:
#5

@murtaza52
Copy link
Author

Micah,

Thanks for your reply.

Two general questions about your experience with app engine -

  1. The JVM usually gets unloaded when the app has not been requested for a
    certain time span, this leads to horrible starting times for the next user
    who requests the app. How have you dealt with this?

  2. My app is complete cljs, and when I hosted it on Heroku, I found that
    the static serving was very bad, and was leading to an unusable experience.
    Thus I switched to a custom ubuntu server on EC2 with nginx in the front.
    So how do you deal with serving of static files ?

The above are the two things I havent jumped in GAE with clojure. What has
been your experience ?

Thanks,
Murtaza

On Thu, Jul 19, 2012 at 8:30 PM, Micah Martin <
reply@reply.github.com

wrote:

Murtaza,

I can tell you that I started with appengine-magic. My frustrations drove
me stop using it and start building Gaeshi.

I find Gaeshi much more pleasant to use and I'm proud to say it's fully
tested. And it provides Speclj helpers to make client apps fully testable.

That said, app engine-magic probably has better documentation. Although
if you have questions about gaeshi, I'd be happy to answer.

Micah

On Jul 18, 2012, at 11:17 PM, Murtaza Husain wrote:

Hi,

Just had a peep at gaeshi and was wondering how does it compare to
appenginine-magic, the other leiningen plug for GAE.

Thanks,
Murtaza


Reply to this email directly or view it on GitHub:
#5


Reply to this email directly or view it on GitHub:
#5 (comment)

@slagyr
Copy link
Owner

slagyr commented Jul 20, 2012

Murtaza,

Answers below.

On Jul 19, 2012, at 10:31 PM, Murtaza Husain wrote:

Micah,

Thanks for your reply.

My pleasure/

Two general questions about your experience with app engine -

  1. The JVM usually gets unloaded when the app has not been requested for a
    certain time span, this leads to horrible starting times for the next user
    who requests the app. How have you dealt with this?

GAE provide a setting to keep 3 instances alive at all times. You have to pay for this but it's fairly inexpensive.

  1. My app is complete cljs, and when I hosted it on Heroku, I found that
    the static serving was very bad, and was leading to an unusable experience.
    Thus I switched to a custom ubuntu server on EC2 with nginx in the front.
    So how do you deal with serving of static files ?

GAE takes care of this. I believe it take all the static file in your deployed app and serves them from a CDN. A tiny problem here is that when you redeploy an app, the js, css, etc often take a while to update. I'm sure there are way to prevent that.

The above are the two things I havent jumped in GAE with clojure. What has
been your experience ?

GAE is both great and annoying. For cleancoders.com, it's been great. GAE provide all the services I need with almost no configuration: database, email, blobs, background jobs… And it scales as needed. When we release a new video, multiple instance spin up to handle the traffic and I don't have to lift a finger. It's great!

For other sites, GAE is a pain in the rear. For example, GAE has a black list of java classes. One app we had on GAE required a blacklisted class…. so we had to move it to Heroku. That was aggravating. And the hard limits on request time, response size, query size, indexes, etc can be frustrating.

So it's a tough call where to put your app. We used GAE, Heroku, and EC2 for clojure apps. It really depends on the situation.

Micah

@murtaza52
Copy link
Author

Thanks Micah. So it seems GAE is your first choice. So based on what
circumstance would you go for not deploy on GAE. You mentioned one of those

  • blacklisted java class.

Also on what instances will you actually prefer either EC2 or Heroku, I
mean based on your experience why have you deployed apps on them over GAE?

On Fri, Jul 20, 2012 at 9:54 AM, Micah Martin <
reply@reply.github.com

wrote:

Murtaza,

Answers below.

On Jul 19, 2012, at 10:31 PM, Murtaza Husain wrote:

Micah,

Thanks for your reply.

My pleasure/

Two general questions about your experience with app engine -

  1. The JVM usually gets unloaded when the app has not been requested for
    a
    certain time span, this leads to horrible starting times for the next
    user
    who requests the app. How have you dealt with this?

GAE provide a setting to keep 3 instances alive at all times. You have to
pay for this but it's fairly inexpensive.

  1. My app is complete cljs, and when I hosted it on Heroku, I found that
    the static serving was very bad, and was leading to an unusable
    experience.
    Thus I switched to a custom ubuntu server on EC2 with nginx in the front.
    So how do you deal with serving of static files ?

GAE takes care of this. I believe it take all the static file in your
deployed app and serves them from a CDN. A tiny problem here is that when
you redeploy an app, the js, css, etc often take a while to update. I'm
sure there are way to prevent that.

The above are the two things I havent jumped in GAE with clojure. What
has
been your experience ?

GAE is both great and annoying. For cleancoders.com, it's been great.
GAE provide all the services I need with almost no configuration:
database, email, blobs, background jobs… And it scales as needed. When we
release a new video, multiple instance spin up to handle the traffic and I
don't have to lift a finger. It's great!

For other sites, GAE is a pain in the rear. For example, GAE has a black
list of java classes. One app we had on GAE required a blacklisted class….
so we had to move it to Heroku. That was aggravating. And the hard limits
on request time, response size, query size, indexes, etc can be frustrating.

So it's a tough call where to put your app. We used GAE, Heroku, and EC2
for clojure apps. It really depends on the situation.

Micah


Reply to this email directly or view it on GitHub:
#5 (comment)

@slagyr
Copy link
Owner

slagyr commented Jul 20, 2012

On Jul 19, 2012, at 11:29 PM, Murtaza Husain wrote:

Thanks Micah. So it seems GAE is your first choice. So based on what
circumstance would you go for not deploy on GAE. You mentioned one of those

  • blacklisted java class.

I suppose I wouldn't use GAE if my app required many third party tools or technologies. The GAE environment is pretty well locked down.

Also on what instances will you actually prefer either EC2 or Heroku, I
mean based on your experience why have you deployed apps on them over GAE?

Well, the super simple app like speclj.com and joodoweb.com go on Heroku. Large, multi-component systems we tend to put on AWS.

Micah

@murtaza52
Copy link
Author

Thanks Micah. Appreciate your responses.

On Fri, Jul 20, 2012 at 5:21 PM, Micah Martin <
reply@reply.github.com

wrote:

On Jul 19, 2012, at 11:29 PM, Murtaza Husain wrote:

Thanks Micah. So it seems GAE is your first choice. So based on what
circumstance would you go for not deploy on GAE. You mentioned one of
those

  • blacklisted java class.

I suppose I wouldn't use GAE if my app required many third party tools or
technologies. The GAE environment is pretty well locked down.

Also on what instances will you actually prefer either EC2 or Heroku, I
mean based on your experience why have you deployed apps on them over
GAE?

Well, the super simple app like speclj.com and joodoweb.com go on Heroku.
Large, multi-component systems we tend to put on AWS.

Micah


Reply to this email directly or view it on GitHub:
#5 (comment)

@jmkao
Copy link

jmkao commented Aug 1, 2012

Does Gaeshi provide any wrappers around GAE APIs? Or should be invoke them directly as Java methods from clojure code?

@slagyr
Copy link
Owner

slagyr commented Aug 2, 2012

Yes. Gaeshi provides wrappers for the following API's:

Datastore: https://github.com/slagyr/gaeshi/blob/master/gaeshi/src/gaeshi/datastore.clj
Blobstore: https://github.com/slagyr/gaeshi/blob/master/gaeshi/src/gaeshi/blobstore.clj
Transactional Email: https://github.com/slagyr/gaeshi/blob/master/gaeshi/src/gaeshi/mail.clj
Google User Accounts: https://github.com/slagyr/gaeshi/blob/master/gaeshi/src/gaeshi/users.clj

Micah

On Aug 1, 2012, at 7:08 PM, jmkao wrote:

Does Gaeshi provide any wrappers around GAE APIs? Or should be invoke them directly as Java methods from clojure code?


Reply to this email directly or view it on GitHub:
#5 (comment)

@kisai
Copy link

kisai commented Feb 5, 2013

Hi Micah, do you have plans to implement other API's like Task Queues, Channels, Backends?

Or i just can add appengine-magic to my gaeshi project for those?

@slagyr
Copy link
Owner

slagyr commented Feb 5, 2013

Kisai,

Unless someone takes over Gaeshi, I'm going to let it die. Google AppEngine has been too frustrating and I've moved all my sites over to Amazon's AWS. Gaeshi's parent project Joodo will live on and has been consistently updated.

Micah

On Feb 5, 2013, at 5:09 AM, kisai 〈鬼才〉 notifications@github.com wrote:

Hi Micah, do you have plans to implement other API's like Task Queues, Channels, Backends?

Or i just can add appengine-magic to my gaeshi project for those?


Reply to this email directly or view it on GitHub.

@kisai
Copy link

kisai commented Feb 5, 2013

Why is frustraiting?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants