New Maps API TOS'

by JP » Wed, 22 Oct 2008 04:49:09 GMT


Sponsored Links
 I'm just done reading the the new Maps API TOS'. Looks like this is
our framework for going live now.
* I personally find the clarification with respect to permissible
connections to tracking systems (section in 8.7) very helpful. I
suppose this clears my work and hopefully many others' as well
* I cannot remember where the lengthy Copyright notice requirement
("(c) 2007 TeleAtlas, AND, Europa Technolgies, Kingway...") originated
at; I suppose this is gone now?
* Section 9 is the infamous Google contents grab. So they really want
to go live with this? As far as apps using the Maps API are concerned
- am I getting this right: Section 9 essentially means that apps (.apk
file) that use the Maps API, and which are released in Google
Marketplace, can be redistributed through a Google-related
organization without the consent of the copyright holder?

--~--~---------~--~----~------------~-------~--~----~



New Maps API TOS'

by blindfold » Wed, 22 Oct 2008 10:33:18 GMT


 Indeed the recurring "perpetual, irrevocable" is totally unacceptable.

Regards




--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


New Maps API TOS'

by JP » Wed, 22 Oct 2008 13:42:05 GMT


 

What irritates is that apk files get the same treatment as jpg shots
from your family reunion you upload to Picasa. After the Chrome
debacle, one would have expected for Google to take more care and not
just blindly copy and paste such terms between the different
services.
There's still opportunity to fix it. They can cover whatever they need
to do in a section in the Marketplace TOS' and take the broad section
9 off the table, replacing it with appropriate terms.
It'll be interesting to see. My guess: Content grab language will also
make it over to the Marketplace TOS and cover all apps', not just the
ones using the Maps API. That'll trigger a fun discussion in here I am
sure.

--~--~---------~--~----~------------~-------~--~----~



New Maps API TOS'

by blindfold » Wed, 22 Oct 2008 14:19:51 GMT


 You are right, the  http://picasa.google.com/ homepage links to the TOS 
page

 http://google.com/accounts/TOS?hl=US 

reading "you give Google a perpetual, irrevocable, worldwide, royalty-
free, and non-exclusive licence to" blah, blah.

The 10^100 contest website (discussed here before) links to the TOS
page

 http://www.project10tothe100.com/tos.html 

reading "you grant Google, its subsidiaries, agents and partner
companies, a perpetual, irrevocable, worldwide, royalty-free, and non-
exclusive license to" blah, blah.

The new Android Maps API ToS is in the PDF file

 http://code.google.com/android/maps-api-tos.pdf 

reading "If you decide to submit or post Your Content to Google, you
give Google a perpetual, irrevocable, worldwide, royalty-free, and non-
exclusive license to" blah, blah.

My standpoint is that "perpetual, irrevocable" is under no condition
acceptable (perhaps with the exception of a direct sell to Google, but
then we are talking a change of ownership).

I share your fear that this will broadly carry over to the Android
Market TOS, in which case I will not hide my abhorrence either.

Regards







--~--~---------~--~----~------------~-------~--~----~



New Maps API TOS'

by tomgibara » Wed, 22 Oct 2008 14:44:27 GMT


  can't see why this clause is so egregious.

Section 9.1 states in full:

You retain copyright and any other rights you already hold in Your
Content. If
you decide to submit or post Your Content to Google, you give Google a
perpetual, irrevocable, worldwide, royalty-free, and non-exclusive
license to
reproduce, adapt, modify, translate, publish, publicly perform,
publicly display
and distribute Your Content. This license is solely for the purpose of
enabling
Google to display, distribute and promote the Service.

Note in particular:

"If you decide to submit or post Your Content to Google..."

Now read Definition 5c:

our Contentmeans any content that you provide in your Maps API
Implementation, including data, images, video, or software. Your
Content
does not include the Content.

Where "Content" is the image data and other map data provided by
Google.

So, as I read this...

If you have data in your application AND you explicitly submit this
data Google then they have the stated rights ONLY for the purpose of
enabling them "display, distribute and promote" the Google Maps
service.

I am not a lawyer etc., but what is so objectionable about that?

Tom.



On Oct 22, 3:11pm, blindfold <[EMAIL PROTECTED]> wrote:
--~--~---------~--~----~------------~-------~--~----~



New Maps API TOS'

by blindfold » Wed, 22 Oct 2008 14:59:37 GMT


 Hi Tom,

See the earlier related discussion at




New Maps API TOS'

by blindfold » Wed, 22 Oct 2008 15:05:04 GMT


 Interestingly, SlideME has just been adding options to "unpublish",




New Maps API TOS'

by Eric Mill » Thu, 23 Oct 2008 01:54:12 GMT


 Wow.

As long as this "perpetual, irrevocable" stuff exists with the terms
of the Android Marketplace, I will have to publish my content through
alternative channels.  That sucks.

-- Eric



> 



New Maps API TOS'

by blindfold » Thu, 23 Oct 2008 19:34:15 GMT


 Interestingly, Google's infamous "perpetual, irrevocable" was
originally also part of the Chrome end-user license as was discussed
on slashdot at

 http://yro.slashdot.org/yro/08/09/03/0247205.shtml 

Apparently, Google reconsidered their Chrome TOS after all the bad
publicity, because today the Chrome TOS at

 http://www.google.com/chrome/eula.html 

does not contain any "perpetual, irrevocable" and reads in section
11.1,

11.1 You retain copyright and any other rights you already hold in
Content which you submit, post or display on or through, the Services.

However, the TOS linked on the Android Market page 
 http://www.android.com/market/ ,
 http://www.android.com/terms.html 

today still contains the "perpetual, irrevocable" in section 11.1,

11.1 You retain copyright and any other rights you already hold in
Content which you submit, post or display on or through, the Services.
By submitting, posting or displaying the content you give Google a
perpetual, irrevocable, worldwide, royalty-free, and non-exclusive
licence to reproduce, adapt, modify, translate, publish, publicly
perform, publicly display and distribute any Content which you submit,
post or display on or through, the Services. This licence is for the
sole purpose of enabling Google to display, distribute and promote the
Services and may be revoked for certain Services as defined in the
Additional Terms of those Services.

I hope we (well, actually Google) can avoid initiating a new slashdot
and CNET News discussion about the Android Market TOS once we prepare
to submit our Content coming Monday. Google representatives, can you
confirm that the Android Market TOS will be more like the Google
Chrome TOS? And what about the Maps API TOS?

Thanks




--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Gallery setUnselectedAlpha not resuming transparency (alpha) when unselected after being selected

Hello All,
I have a gallery with the setUnselectedAlpha option enabled. The
gallery is
set to automatically progress through the gallery items, each time one
is
selected it waits 2 seconds before moving to the next. Before it is
selected, it is transparent. When selected it loses it's transparency,
and
then when it become unselected again it does not return to
transparent!

I have seen at times immediately after closing another activity using
the
back button it will work, but it is not consistent or repeatable.
Perhaps
this is a problem only with the emulator?

Below is the source code: (I have also submitted this as a bug on
Google Code, but it doesn't seem Google actually reviews the bugs in
any reasonable timeframe...)

Gallery declaration:

final HomeGalImgAdapter hgia = new HomeGalImgAdapter(ctx);
final Gallery gal = new Gallery(ctx);
gal.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
gal.setAdapter(hgia);
gal.setSpacing(0);
gal.setUnselectedAlpha(0.3f);
gal.setOnItemSelectedListener(new OnItemSelectedListener() {

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long
arg3) {
gal.setSelection(arg2);
galType.setText(hgia.getRating(arg2));
galTitle.setText(hgia.getName(arg2));
galAuthor.setText(hgia.getAuthor(arg2));
hgia.pauseBeforeNext(gal);
}

public void onNothingSelected(AdapterView<?> arg0) {

    }
});

And the code for the image adapter:

public class HomeGalImgAdapter extends BaseAdapter {
        private Context myContext;

        private Integer[] myImageIds = {
                        R.drawable.test128_add_to_folder,
                        R.drawable.test128_calendar,
                        R.drawable.test128_chart_pie,
                        R.drawable.test128_clock,
                        R.drawable.test128_comments,
                        R.drawable.test128_info,
                        R.drawable.test128_mail_receive,
                        R.drawable.test128_process,
                        R.drawable.test128_rss,
                        R.drawable.test128_search,
                        R.drawable.test128_users
        };

        /** Simple Constructor saving the 'parent' context. */
        public HomeGalImgAdapter(Context c) { this.myContext = c; }

        /** Returns the amount of images we have defined. */
        public int getCount() { return this.myImageIds.length; }

        /* Use the array-Positions as unique IDs */
        public Object getItem(int position) { return position; }
        public long getItemId(int position) { return position; }

        /** Returns a new ImageView to
         * be displayed, depending on
         * the position passed. */
        public View getView(int position, View convertView, ViewGroup
parent) {
                ImageView i = new ImageView(this.myContext);

                i.setImageResource(this.myImageIds[position]);
                /* Image should be scaled as width/height are set. */
                i.setScaleType(ImageView.ScaleType.FIT_XY);
                /* Set the Width/Height of the ImageView. */
                i.setLayoutParams(new Gallery.LayoutParams(96, 96));
                return i;
        }

        private Gallery gal;
        private GregorianCalendar time1;
        public void pauseBeforeNext(Gallery _gal)
        {
                gal = _gal;

                time1 = new GregorianCalendar();
                final Handler uiThreadCallback = new Handler();
                final Runnable runInUIThread = new Runnable()
                {
                        public void run()
                        {
                                _showInUI();
                        }
                };
                uiThreadCallback.removeCallbacks(runInUIThread);
                new Thread()
                {
                        @Override
                        public void run()
                        {
                                _doInBackgroundPost();
                                uiThreadCallback.post(runInUIThread);
                        }
                }.start();

        }
        private long ElapsedMillis()
        {
                GregorianCalendar gc2 = new GregorianCalendar();
                // the above two dates are one second apart
                Date d1 = time1.getTime();
                Date d2 = gc2.getTime();
                long l1 = d1.getTime();
                long l2 = d2.getTime();
                long difference = l2 - l1;
                return difference;
        }
        private void _showInUI() {
                if (ElapsedMillis() > 2500)
                {
                        if ((gal.getSelectedItemPosition() + 1) ==
gal.getCount())
                                gal.setSelection(0);
                        else

gal.setSelection(gal.getSelectedItemPosition() + 1);
                }
        }

        private void _doInBackgroundPost()
        {
                try {
                        Thread.sleep(2500);
                } catch (InterruptedException e) {
                        e.printStackTrace();
                }
        }
--~--~---------~--~----~------------~-------~--~----~

2. Potential medical applications

Hey everyone,

I am a primary care physician who was a software developer in my
previous career and have been busily coding away on a few apps to be
used by primary care physicians and providers in the clinical and
hospital environment.  Currently, finishing up work on an obstetrical
dating program and medical formulae calculator.

My question for you (if you are willing to share), is what other ideas
or needs have you seen in the clinic or hospital environment that an
Android smart phone could help with?  Obviously, I am not looking to
re-invent the EMR, but useful tasks like basic patient tracking,
rounding lists with "to-do" functionality, routine health care
maintenance schedules, immunization look-up or catch-up calculators,
etc.

Cheers, thanks for the help and so far it has been a blast developing
for Android.
 - Tom

--~--~---------~--~----~------------~-------~--~----~

3. Can't install an APK from the browser.

4. Vote: a device G1 for each ADC entrance

5. INSTALL_NON_MARKET_APPS

6. Other Languages?

7. Fwd: Availability and installation