Upgraded GAE App to Java 8 - google-app-engine

Under Versions tab it shows that I am running Java8
But at the top of the page it shows:
Your app is temporarily whitelisted to support Java 7.
What does this mean ? Am I running on a Java 8 or Java 7 compatibility stack ?
I have upgraded code to use Java 8 classes ... and the code is working correctly.

Looks like you had the notice since you had Java 7 in the past.
You can see how to migrate in here, so check your configuration to see if you successfully migrated to Java 8.
You can also check your configuration in Cloud Platform, going to App Engine -> Versions, and clicking in View, in the Config column.
If you didn't successfully migrate to Java 8, do so, because Java 7 runtime will be shut down entirely on January 16, 2019.

Related

What is the difference between these packages cloud.storage and appengine.tools.cloudstorage?

Can anyone explain what is the difference between these two packages com.google.cloud.storage (https://googleapis.github.io/google-cloud-java/google-cloud-clients/apidocs/com/google/cloud/storage/package-summary.html ) and com.google.appengine.tools.cloudstorage (https://cloud.google.com/appengine/docs/standard/java/googlecloudstorageclient/javadoc/com/google/appengine/tools/cloudstorage/package-summary)
Are there any differences in how they function ? Which package is used in which scenario ?
I am developing a Spring MVC application and want to upload files (>100 MB) directly to Cloud Storage and download them without any errors and without going through App Engine instances.
com.google.appengine.tools.cloudstorage is the old library, only in use for apps running in App Engine Standard. It's the only library that Java 7 supports, so if your app is running on Java 7, it's the way to go. However, the Java 7 runtime has been deprecated, so, I don't recommend going this way.
com.google.cloud.storage is the most recent, and recommended Cloud Storage client library. It should be the one that you use in your app, as it's the most recent, updated and compatible library for GCS.Java 7 doesn't support this library. Then again, you shouldn't be using Java 7.

Understanding app engine deployment model

Being very new to googles app engine, i have used Intellij IDEA plugins to deploy my REST java app. Having that passed smoothly, together with my app ive got two compute engine virtual machines. What are they for? Why two and how does they select required VMs configuration?
It sounds like you are using the App Engine flexible environment AND that you're using the older version of it rather than the new beta version. The older version has vm: true in your app.yaml file. The newer version, which was just announced on Nov 15, 2016, uses env: flex in the app.yaml file.
The flexible environment runs on top of Compute Engine virtual machines. In the older version these your app's instances would show up under Compute Engine. With the newer version these now display in the console on the App Engine instances page.
You're going to want to look into migrating your app to the new version of the flexible environment before the old beta version is deprecated at some point in the next year. If you used on the "compat" runtimes from before, you might check to see if you really need to use the flexible environment or does the standard environment support your app's needs? Depending on your app, one environment might be cheaper than the other.
All that said, you can configure the underlying virtual machines in the flexible environment by using the app.yaml file. See the resource settings in the app.yaml reference for details. Later, if you needed to debug your code on the instances, see Debugging an instance.

SOLR 5 Install in a Production Environment

I am a bit confused about installing SOLR 5.5. The 5.5 manual says it is not recommended to deploy solr war on any other web/application servlet containers. It says deploy solr as a stand alone server. What does this mean? SOLR running on port 8983 is not running out of jetty? SOLR itself is a web server? How stable will it be in a prod environment?
I followed all the instructions on https://cwiki.apache.org/confluence/display/solr/Installing+Solr
https://cwiki.apache.org/confluence/display/solr/Taking+Solr+to+Production
Appreciate if someone can share their experience.
It's using Jetty, but it might not in the future (as there are quite a few things that gets easier to implement when you don't have to consider the webapp framework around your service). That's why 5.0 dropped explicit support for running in an existing container (it can still be done - but you're on your own, and features may break). At least now the environment for the application can be assumed to be a certain container and have a specific feature set.

Backing up iOS apps with outdated provisioning profiles

I created an iOS 8.X app with the company I previously worked for, and would like to keep the app for personal reasons. I have all of the code for the app, but it was written in swift 1, and hasn't been updated to the swift 2 syntax. Also, it was written using provisioning profiles for my old company, which I no longer have access to.
I haven't upgraded my personal device to iOS 9 yet so I can keep the app on my device to demonstrate at job interviews.
Is there a way I can locally save the app on my computer and install it on any device without the proper provisioning profiles, developer license, etc.?
You'll need your own developer account, which shouldn't be a problem because they are free now. But basically if you have the source code, you can simply re-build it with your personal provisioning profile. Because you won't be able to set up an explicit application ID, you will simply create a wildcard id on Apple's developer site, then create a developer provisioning profile using that wildcard ID and your personal certificate. Then simply build it to the device directly.
Why are you not updating your device to iOS 9? If properly written, your app will work fin on iOS 9 if it worked on iOS 8. The opposite is not necessarily true, as an app with a minimum OS version of 9 probably makes SDK calls that did not exist in 8. Although some changes may be needed, you should be able to build your app with the latest version of Xcode even though you originally coded it in Swift 1.2. You can find simple instructions on how to do that upgrade. This will also allow you to address any potential iOS 9 issues.
If you don't have the source code, but have the .ipa file, you could also resign it using the instructions here: https://stackoverflow.com/a/25656455/3708242
This is not as ideal, because if there are iOS 9 or iOS 10 issues, you will not be able to fix them. I think keeping the source code available (if you are legally allowed to) will be your best bet.

NHibernate or SQL Server 2008 performance issue

I have a problem with web app I'm currently working on. This app is a kind of customization of Umbraco 5 CMS. The problem is that it runs well on my machine and other developer's machine but stack at production environment. When I try to browse it I get "Request Timeout" error.
I tried to analyze this site with dotTrace on both local and production sides. And I've figured out that the problem is in some method "()" which is called by SNINativeMethodWrapper.SNIReadSync method.
Here is the screenshot from dotTrace: (hot spots screen)
At the dev machine the same number of this method calls takes two times less then on the prod server.
What can be the reason for this?
Umbraco 5 development was ceased as there were significant performance issues with Version 5, related in part to the use of nHibernate
Here is a breakdown of some of the issues with version 5's implementation: http://ayende.com/blog/156577/on-umbracorsquo-s-nhibernatersquo-s-pullout
Umbraco are now focusing on updating version 4 and will soon release version 6 (on which performance is excellent!)

Resources