## 9 letter words with several anagrams

While perusing the statistics of wordcube, I was wondering how many 9 letter words have multiple anagrams (using all the letters in a single word) and what was the maximum number of anagrams. So I wrote a quick and dirty python program to find out. I will first show the results as they are interesting followed by my coding and methods to improve the efficiency of it.

Results
Here are all the nine letter words with more than 2 anagrams:

• 1. auctioned cautioned education
• 2. beastlier bleariest liberates
• 3. cattiness scantiest tacitness
• 4. countries cretinous neurotics
• 5. cratering retracing terracing
• 6. dissenter residents tiredness
• 7. earthling haltering lathering
• 8. emigrants mastering streaming
• 9. estranges greatness sergeants
• 10. gnarliest integrals triangles
• 11. mutilates stimulate ultimates
• 12. reprising respiring springier

I only found 12 sets of 3, there may be more with a larger dictionary. I was also disappointed that there were no words with 4 anagrams yet not entirely unsurprising. My personal favourite is number 10

[poll id=”11″]

Python

I recycled an anagram checking function that I have used before:

```# -*- coding: utf-8 -*-

# Anagram checking function
def anagramchk(word,chkword):
for letter in word:
if letter in chkword:
chkword=chkword.replace(letter, '', 1)
else:
return 0
return 1

```

First program

Firstly I created a dirty program that created a loop to cycle through the 9 letter word dictionary and another loop nested inside to check against every word in the dictionary again. This is a terrible and inefficient method and will create duplicates, I will follow with a more efficient method.

```g=open('eng-9-letter', 'r')
for l in g:

wordin=l.strip()

f=open('eng-9-letter', 'r')
count=0
w=""
for line in f:
line=line.strip()
if anagramchk(line,wordin):
count+=1
w+=" "+line
f.close()
if count>2:
print wordin, count, "(",w,")"

g.close()
```

This program took 80.42s to find the 12 solutions. On the path to better coding I decided to load the dictionary into memory, this sped the code up about 20s to 63.88s.

```# Load dictionary into memory
dic=[]
f=open('eng-9-letter', 'r')
for line in f:
dic.append(line.strip())
f.close()
```

I then attempted to create a method that loops over and removes words from the dictionary as it loops, however I don’t know the correct way (if there is one?) of modifying the loop variable while inside the loop without causing problems.

```for word in dic:
if ....:
dic.remove(word)
```

If anyone knows a good method of doing this please let me know! I did managed to hack together something using slices so that I could modify the dictionary each time, however I imagine this is still quite inefficient.

```for word in dic[:]:
w=""
count=0
for word2 in dic[:]:
if anagramchk(word,word2):
count+=1
dic.remove(word2)
w+=word2+" "
if count>2:
print w
```

Even so this method now avoids duplication of results and completes in 31.87s (machine running at 3.15Ghz). Please let me know of any improvements you think can be made and I’ll happily benchmark to see how much better it is.

## Nexus one 2600mAh high capacity battery replacement

I have a nexus one which has comparatively decent battery life to other smart phones, lasting about 1 day with casual usage. The battery that comes with the nexus one is 1400mAh, but I noticed dealextreme are selling a 2600mAh replacement battery.

Nexus one high capacity battery (2600mAh)

The battery costs \$14.00 (£8.81) which will give an extra 85% increase in charge. This means the that my nexus one should last closer to 2 days with casual use now, I have ordered one and will update with some benchmarks when it arrives (unfortunately not in time for my camping weekend).

## Making Prettier Buttons in android; XML (rollover,selection & focus effects), 9patch images and transparency

Alot of the soundboards out there on the market look a little bit ugly by using the default android buttons in conjunction with a background (no offense to developers of these, perhaps they can learn from this); this mini-tutorial explains how to use xml to create a customised nice looking button thing.

Ugly Buttons:
Below is show the example I will use to demonstrate the default buttons in use with a background image (It’s a picture of me hugging the android statue!)

Button States

There are four images you will need to create (you can use less if you want); one for each of the following states:

state_focused state_pressed What this means
true false Button highlighted (selected with trackpad)
true true Button foussed and pressed
false true Button pressed
false false Normal state of button

I recommend creating a nine-patch png for the button image, this way your image can be stretched to fit the button size as needed. Also soundboards look rather snazzy if you include a background image, and then you can use transparency in your png so that your buttons don’t obscure it.

Using draw9patch tool to make a 9patch png for use as a strechable button

XML Code

button.xml

```<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="https://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/button_selected" />
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/button_focus" />
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/button_pressed" />
<item android:drawable="@drawable/button_normal" />
</selector>
```

main.xml
An example usage of how to use this newly created xml button in your layout file.

```<Button
android:id="@+id/mysexynewbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textStyle="bold"
android:text="Stealthcopter FTW"
android:background="@drawable/button" />
```

Results
Now you should have some nice sexy customised buttons that change depending on thier state. Which makes our example now look like this (I increased the padding and margins of the buttons slightly):

Pretty Buttons with transparency using 9patch png and xml

Below are a few examples of my work with some nice transparent buttons:

Example 9 patch image

button.9.png

## Android: Soundpool vs MediaPlayer (focus on soundboards and memory problems)

I get a fair few emails asking for help on making soundboards because I have a few out on the market currently, so this is one of a few mini-tutorials I am creating to explain some of the difficulties to overcome.

So there are two methods for playing sounds in android SoundPool and MediaPlayer.

SoundPool

SoundPool is designed for short clips which can be kept in memory decompressed for quick access, this is best suited for sound effects in apps or games. Using this method with soundboards is a bad idea as you will be loading lots of “medium” sized sounds into the memory and you may exceed your limit (16Mb) and get an OutOfMemoryException.

MediaPlayer

MediaPlayer is designed for longer sound files or streams, this is best suited for music files or larger files. The files will be loaded from disk each time create is called, this will save on memory space but introduce a small delay (not really noticeable).

So lets have a look how to use Media Player instead of SoundPool

MediaPlayer Usage

```MediaPlayer mp = MediaPlayer.create(ClassName.this, R.raw.sound);
mp.start();
```

Where ClassName.this should be the name of your class (Hint: this should be the name of the java file you are editing)

You can pause the sound playing and then use start to start the sound playing again.

```mp.pause(); // Stop
mp.start();   // Start from place paused
```

To stop the sound playing use stop, using start now will start playing the sound again from the beginning

```mp.stop();    // Stop sound
mp.start();   // Start from beginning
```

To reset the media player so it can be reinitialised with a another sound

```mp.reset();
mp = MediaPlayer.create(ClassName.this, R.raw.sound2);
```

To release the resources once you are finished media player (free memory)

```mp.release();
```

## Nexus Revamped Pro Live Wallpaper 1.1.11 update

With version 1.1.11 I’ve brought it up to 27 revisions since the original wallpaper by issuing another update (This follows from my previous updates in this post)

Whats new?
I have now added a changelog to the application, viewable by clicking on the version number, so now there is no mystery to what the update contains!

• Added reset to defaults button
• Moved reaction to battery level to a new submenu ‘Reactions’, more coming soon!
• Changed default value of maximum particles to 100 to make application more responsive to people who like spamming the screen
• Renamed ‘Static background’ to ‘Static foreground’ to more accurately reflect it’s purpose. This has also been moved to the particle settings menu and changed it’s default value to true to improve performance.

Video

I am still planning on posting a video soon (when I get some free time) to demonstrate the app as it has improved significantly since the firstvideo.

Either click the following android market links (in android phone) or search the market for nexus revamped.
Pro Version
Nexus Revamped Pro Live Wallpaper (com.stealthcopter.nexusrevampedpro)

Free Version

Nexus Revamped Live Wallpaper (com.stealthcopter.nexusrevamped)

Future
I have plans and ideas for the future of this application, please complete the poll below to indicate what you’d like to see in this app or leave feedback (comment) if you have any.

[poll id=”10″]

## Nexus Revamped Pro update v1.1.10 (google android live wallpaper)

I have issued a MASSIVE update for my Nexus Revamped Live Wallpaper Pro (This follows from my previous updates in this post)

Images

The gallery below first shows the options avaliable, some examples, and then some examples used with launcherpro. Click on each image to see a larger version, as these images are cropped.

I will post a video soon to demonstrate the app as it has improved significantly since the first video I have made.

New Features
This version includes some very exciting and highly demanded features:

• Custom particle colors: Use a color wheel to select custom colors for each of the particles
• Performance options: You can now adjust the desired FPS (frames per second) of the live wallpaper, this means that you can save battery life and increase responsiveness of your home screen. To find the optimum FPS I recommend that you try reducing the frame-rate until the point where you start to notice some jittering then increase it slightly.
• Custom background images: Select a custom image to be used for the background.
• Speed Deviation: You can now set how much the speed will deviate on a per-particle basis. A low setting will mean all particles travel at similar speeds whereas a high setting will mean there is a large amount of variance in speed (particles will overtake each other)
• Reaction to battery level: Selecting this will cause the particles speed to represent the battery life of your phone. The less power your phone has the slower the particles will move.
• Seekbar settings: Many of the settings (Speed, Speed Deviation, Tail length, FPS, and Saturation) which previously had a list to choose the values have been replaced with seekbar to allow improved customisation
• New themes: please email me with more theme requests
• Many bug fixes: Especially one that stopped custom background from working when rebooting the phone (reset settings to defaults), this was because the SD card isn’t ready when the live wallpaper starts.

I have also also pushed most of the updates down to the free version of this application, but some options are left out to reward the paying customers (custom background images, and custom particle colors)

Either click the following android market links (in android phone) or search the market for nexus revamped.
Pro Version
Nexus Revamped Pro Live Wallpaper (com.stealthcopter.nexusrevampedpro)

Free Version

Nexus Revamped Live Wallpaper (com.stealthcopter.nexusrevamped)

Future
I have plans and ideas for the future of this application, please complete the poll below to indicate what you’d like to see in this app or leave feedback (comment) if you have any.

[poll id=”10″]

Google have just issued an update to the Android Market Developer Distribution Agreement, which if you do not accept within 30 days your applications will be removed from the market.

Updated Android Market Developer Distribution Agreement

The Highlights
I will just emphasise the things that I believe will be of most interest (to me) and other developers (I imagine), might save some of you the trouble of having to read it all:

3.2 A Transaction Fee, as defined below, will be charged on the sales price and apportioned to the Payment Processor and, if one exists, the Authorized Carrier. Looks like some carriers are going to be getting a cut of developers profits, would be interested to see if this is an incentive for the networks by google or if the networks have been putting pressure on google for a cut of the profits. It isn’t clear if this will come out of the transaction free or our own cut, I would imagine it is the latter but will probably be clarified in the future dependant on service provider.

4.5 Non-Compete. You may not use the Market to distribute or make available any Product whose primary purpose is to facilitate the distribution of Products outside of the Market.

Looks like google are a little concerned about alternative markets (good if not slightly dated article on these market apps here). This could also be related to the recent developments in china with regards android… (androidpolice)

7. Product Takedowns Some regulations about providing support/refunds after taking down an app, and that google may take down your app if it is: “defective, malicious, infringes Intellectual Property Rights of another person, defames, infringes a third party’s right of publicity or privacy, or does not comply with applicable laws or rgeulations”

Minor points

• Your app may be used for publicity or as a demonstration, sounds like agreeing to free advertising… not a bad thing if they choose your app!
• Several additions to help the buyers get refunds from shoddy or unsupported applications/developers.
• Notification of google having the right to order the apps in searches how it wants
• 12.1 a – google doesn’t plan on taking the blame if you cause a death with your app somehow…
• 13.1 + 13.2 – we don’t blame google for mistakes/crimes we commit and will cover their legal costs if required…

Feedback and full agreement

Those are what I consider to be the most important things, please comment if you think I missed anything or interpreted something incorrectly. The full distribution agreement follows below:

Android market developer distribution agreement
Definitions

Authorized Carrier: A mobile network operator who is authorized to receive a distribution fee for Products that are sold to users of Devices on its network.

Brand Features: the trade names, trade marks, service marks, logos, domain names, and other distinctive brand features of each party, respectively, as owned by (or licensed to) such party from time to time.

Developer or You: Any person or company who is registered and approved by the Market to distribute Products in accordance with the terms of this Agreement.

Developer Account: A publishing account issued to Developers that enables the distribution of Products via the Market.

Device: Any mobile device that can access the Market, as defined herein

Google: Google Inc., a Delaware corporation with principal place of business at 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States.

Intellectual Property Rights: means all copyright; moral rights; patent rights; trade or service marks; design right; semiconductor topography rights; rights in or relating to databases; rights in or relating to confidential information; rights in relation to domain names; privacy or publicity rights and any other intellectual property rights (registered or unregistered) throughout the world; including all rights of reversion and rights to any applications and pending registrations and the right to sue for and recover damages for past infringements.

Market: The Android Market site operated by Google, where Developers can distribute Products directly to users of Devices.

Payment Processor(s): Any party authorized by Google to provide payment processing services that enable Developers with optional Payment Accounts to charge Device users for Products distributed via the Market.

Payment Account: A financial account issued by a Payment Processor to a Developer that authorizes the Payment Processor to collect and remit payments on the Developer’s behalf for Products sold via the Market. Developers must be approved by a Payment Processor for a Payment Account and maintain their account in good standing to charge for Products distributed in the Market.

Products: Software, content and digital materials created for Devices in accordance with the Android SDK and distributed via the Market.

1. Introduction

1.1 The Market is a publicly available site on which Android Developers can distribute Products for Devices. In order to distribute Products on the Market, You must acquire and maintain a valid Developer Account.

1.2 If You want to charge a fee for Your Products, You must also acquire and maintain a valid Payment Account from an authorized Payment Processor.

2. Accepting this Agreement

2.1 This Android Market Developer Distribution Agreement (“Agreement”) forms a legally binding contract between You and Google in relation to Your use of the Market to distribute Products. In order to use the Market to distribute Products, You must first agree to this Agreement by clicking to accept where this option is made available to You. You may not distribute Products on the Market if You do not accept this Agreement.

2.2 You may not use the Market to distribute Products and may not accept the Agreement unless You are verified as a Developer in good standing. This Agreement will automatically terminate if You are (a) not a Developer in good standing, or (b) a person or entity barred from using Android software under the laws of the United States or other countries including the country in which You are resident or from which You use the Android software.

2.3 If You are agreeing to be bound by this Agreement on behalf of Your employer or other entity, You represent and warrant that You have full legal authority to bind Your employer or such entity to this Agreement. If You do not have the requisite authority, You may not accept the Agreement or use the Market on behalf of Your employer or other entity.

3. Pricing and Payments.

3.1 This Agreement covers both Products You choose to distribute for free and Products for which You charge a fee (once payment processing is enabled on the Market). In order to charge a fee for Your Products, You must have a valid Payment Account under a separate agreement with a Payment Processor. If You already have a Payment Account with a Payment Processor before signing up for the Market, then the terms of this Agreement shall supersede Your Payment Account terms and condition for Products sold via the Market.
You may set the price for Your Products in the currencies permitted by the Payment Processor. The Market may display to users the price of Products in their native currency, but it is not responsible for the accuracy of currency rates or conversion

3.2 The price You set for Products will determine the amount of payment You will receive. A Transaction Fee, as defined below, will be charged on the sales price and apportioned to the Payment Processor and, if one exists, the Authorized Carrier. The remainder (sales price less Transaction Fee) will be remitted to You. The “Transaction Fee” is set forth at https://www.android.com/support/market/bin/answer.py?answer=112622 and may be revised by Google from time to time. Developer is responsible for determining if a Product is taxable and the applicable tax rate for the Payment Processor to collect for each taxing jurisdiction where Products are sold. Developer is responsible for remitting taxes to the appropriate taxing authority.

3.3 You may also choose to distribute Products for free. If the Product is free, You will not be charged a Transaction Fee. You may not collect future charges from users for copies of the Products that those users were initially allowed to download for free. This is not intended to prevent distribution of free trial versions of the Product with an “upsell” option to obtain the full version of the Product: Such free trials for Products are encouraged. However, if You want to collect fees after the free trial expires, You must collect all fees for the full version of the Product through the Payment Processor on the Market. In this Agreement, “free” means there are no charges or fees of any kind for use of the Product. All fees received by Developers for Products distributed via the Market must be processed by the Market’s Payment Processor.

3.4 Special Refund Requirements. The Payment Processor’s standard terms and conditions regarding refunds will apply except the following terms apply to Your distribution of Products on the Market.
Products that can be previewed by the buyer (such as ringtones and wallpapers): No refund is required or allowed.
Products that cannot be previewed by the buyer (such as applications): You authorize Google to give the buyer a full refund of the Product price if the buyer requests the refund within 48 hours after purchase.
3.5 You Support Your Product. You will be solely responsible for support and maintenance of Your Products and any complaints about Your Products. Your contact information will be displayed in each application detail page and made available to users for customer support purposes. Failure to provide adequate support for Your Products may result in low Product ratings, less prominent product exposure, low sales and billing disputes. Except in cases when multiple disputes are initiated by a user with abnormal dispute history, billing disputes received by Payment Processor for Products sold for less than \$10 may be automatically charged back to the Developer, in addition to any handling fees charged by the Payment Processor. Chargeback requests for Products \$10 or more will be handled in accordance with the Payment Processor’s standard policy.

3.6 Reinstalls. Users are allowed unlimited reinstalls of each application distributed via the Market, provided however that if You remove a Product(s) from the Market pursuant to clauses (i), (ii), (iii) or (iv) of Section 7.1, such Product(s) shall be removed from all portions of the Market and users shall no longer have a right or ability to reinstall the affected Products.

4. Use of the Market by You

4.1 Except for the license rights granted by You in Section 5 below, Google agrees that it obtains no right, title or interest from You (or Your licensors) under this Agreement in or to any of Products, including any intellectual property rights which subsist in those applications.

4.2 You agree to use the Market only for purposes that are permitted by (a) this Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in the relevant jurisdictions (including any laws regarding the export of data or software to and from the United States or other relevant countries).

4.4 Prohibited Actions. You agree that You will not engage in any activity with the Market, including the development or distribution of Products, that interferes with, disrupts, damages, or accesses in an unauthorized manner the devices, servers, networks, or other properties or services of any third party including, but not limited to, Android Users, Google or any mobile network operator. You may not use customer information obtained from the Market to sell or distribute Products outside of the Market.

4.5 Non-Compete. You may not use the Market to distribute or make available any Product whose primary purpose is to facilitate the distribution of Products outside of the Market.

4.6 You agree that You are solely responsible for (and that Google has no responsibility to You or to any third party for) any Products You distribute through the Market and for the consequences of Your actions (including any loss or damage which Google may suffer) by doing so.

4.7 You agree that You are solely responsible for (and that Google has no responsibility to You or to any third party for) any breach of Your obligations under this Agreement, any applicable third party contract or terms of service, or any applicable law or regulation, and for the consequences (including any loss or damage which Google or any third party may suffer) of any such breach.

4.8 The Market will allow You to protect Your Products so that users may not share Products with other users or devices.

Your Products may be subject to user ratings with which You may not agree. You may contact Google if You have any questions or concerns regarding such ratings at https://market.android.com/support/publish.

4.10 Marketing Your Product. You will be responsible for uploading Your Products to the Market, providing required Product information to users, and accurately disclosing the security permissions necessary for the Product to function on user Devices. Products that are not properly uploaded will not be published in the Market.

4.11 Restricted Content. Any Product You distribute on the Market must adhere to the Market Content Policy for Developers located at https://www.android.com/market/terms/developer-content-policy.html.

5.1 You grant to Google a nonexclusive, worldwide, and royalty-free license to: copy, perform, display, and use the Products for administrative and demonstration purposes in connection with the operation and marketing of the Market and to use the Products to make improvements to the Android platform.

5.2 You grant to Google a non-exclusive, and royalty-free license to make available, communicate to the public and distribute the Products according to the publishing options selected by You on the Product upload page of the Market.

5.3 Google may use consultants and other contractors in connection with the performance of obligations and exercise of rights under this agreement, and may sublicense its rights under this Agreement to them accordingly, provided that such consultants and contractors will be subject to the same obligations as Google. After termination of this Agreement, Google will not distribute Your Product, but may retain and use copies of the Product for support of the Market and the Android platform.

5.4 You grant to the user a non-exclusive, worldwide, and perpetual license to perform, display, and use the Product on the Device. If You choose, You may include a separate end user license agreement (EULA) in Your Product that will govern the user’s rights to the Product in lieu of the previous sentence.

5.5 You represent and warrant that You either own or have a valid licence of all Intellectual Property Rights in and to the Product. If You use third-party materials, or any Intellectual Property Rights in the Product are owned by third parties, You represent and warrant that You have the right to distribute the third-party material in the Product. You agree that You will not submit material to Market that is subject to third party Intellectual Property Rights unless You are the owner of such Intellectual Property Rights or have permission from their rightful owner to submit the material in the manner described in this Agreement.

6. Brand Features and Publicity.

6.1 Each party shall own all right, title and interest, including without limitation all Intellectual Property Rights, relating to its Brand Features. Except to the limited extent expressly provided in this Agreement, neither party grants, nor shall the other party acquire, any right, title or interest (including, without limitation, any implied license) in or to any Brand Features of the other party. Subject to the terms and conditions of this Agreement, Developer grants to Google and its affiliates a limited, non-exclusive, royalty-free, worldwide license during the term of this Agreement to display Developer Brand Features, submitted by Developer to Google, for use solely online or on mobile devices and in either case solely in connection with the distribution and sale of Developer’s Product through the Market or to otherwise fulfill its obligations under this Agreement. If Developer discontinues the distribution of specific Products on the Market, Google will cease use of the discontinued Products’ Brand Features pursuant to this Section 6.1, except as necessary to allow Google to effectuate Section 3.6. Nothing in this Agreement gives Developer a right to use any of Google’s trade names, trademarks, service marks, logos, domain names, or other distinctive brand features.

6.2 Publicity. In addition to the license granted in 6.1 above, for purposes of marketing the presence, distribution and sale of the Developer’s Product in the Market, Google and its affiliates may include Developer Brand Features, submitted by Developer to Google: (i) within the Market and in any Google-owned online or mobile properties; (ii) in online or mobile communications outside the Market when mentioned along with other Market Products; (iii) when making announcements of the availability of the Product online or on mobile devices; (iv) in presentations; and (v) in customer lists which appear either online or on mobile devices (which includes, without limitation, customer lists posted on Google websites). If Developer discontinues the distribution of specific Products on the Market, Google will cease use of the discontinued Products’ Brand Features for such marketing purposes. Google grants to Developer a limited, non-exclusive, worldwide, royalty-free license to use the Android Brand Features for the term of this Agreement solely for marketing purposes and only in accordance with the Android Brand Guidelines located at https://www.android.com/branding.html).

7. Product Takedowns.

(b) If You remove a Product from the Market pursuant to clauses (i), (ii), (iii) or (iv) of this Section 7.1, and an end user purchased such Product within a year before the date of takedown, at Google’s request, You must refund to the affected end user all amounts paid by such end user for such affected Product, less the portion of the Transaction Fee specifically allocated to the credit card/payment processing for the associated transaction.

(b) Google enters into distribution agreements with device manufacturers and Authorized Carriers to place the Market software client application for the Market on Devices. These distribution agreements may require the involuntary removal of Products in breach of the Device manufacturer’s or Authorized Carrier’s terms of service.

(c) In the event that Your Product is involuntarily removed because it is defective, malicious, infringes Intellectual Property Rights of another person, defames, infringes a third party’s right of publicity or privacy, or does not comply with applicable laws or rgeulations, and an end user purchased such Product within a year before the date of takedown: (i) You must refund to Google, all amounts received, plus any associated fees (i.e. chargebacks and payment transaction fees), and (ii) Google may, at its sole discretion, withhold from Your future sales the aggregate of the amounts referred to in subsection (i) above.

8.1 You agree that You are responsible for maintaining the confidentiality of any developer credentials that may be issued to You by Google or which You may choose Yourself and that You will be solely responsible for all applications that are developed under Your developer credentials. Google may limit the number of Developer Accounts issued to You or to the company or organization You work for.

9. Privacy and Information

9.1 In order to continually innovate and improve the Market, Google may collect certain usage statistics from the Market and Devices, including but not limited to, information on how the Market and Devices are being used.

9.2 The data collected is examined in the aggregate to improve the Market for users and Developers and is maintained in accordance with Google’s Privacy Policy. To ensure the improvement of Products, limited aggregate data may be available to You upon written request.

10. Terminating this Agreement

10.1 This Agreement will continue to apply until terminated by either You or Google as set out below.

10.2 If You want to terminate this Agreement, You must provide Google with thirty (30) days prior written notice (unless this Agreement terminates under Section 14.1) and cease Your use of any relevant developer credentials.

10.3 Google may at any time, terminate this Agreement with You if:

(A) You have materially breached any provision of this Agreement; or

(B) Google is required to do so by law; or

(C) You cease being an authorized Developer; or

(D) Google decides to no longer provide the Market.

11. WARRANTIES

11.1 Each party warrants to the other that it will use reasonable care and skill in complying with its obligations under this Agreement.

11.2 Your use of the market and any material downloaded or otherwise obtained through the use of the Market is at Your own discretion and risk and You are solely responsible for any damage to your computer system or other device or loss of data that results from such use.

11.3 No conditions, warranties or other terms apply to the Market or to any other goods or services supplied by Google under this Agreement unless expressly set out in this Agreement. Subject to Section 12.1(b), no implied conditions, warranties or other terms apply (including any implied terms as to satisfactory quality, fitness for purpose or conformance with description).

12. LIMITATION OF LIABILITY

12.1 Nothing in this Agreement shall exclude or limit either party’s liability for:

(a) death or personal injury resulting from the negligence of either party or their servants, agents or employees;

(b) fraud or fraudulent misrepresentation; or

(c) misuse of confidential information.

Nothing in this Agreement shall exclude or limit liability under Section 13 (Indemnities).

Subject to clauses 12.1 and 12.2, neither party shall be liable under this Agreement (whether in contract, tort or otherwise) for any special, indirect or consequential losses (whether or not such losses were within the contemplation of the parties at the date of this Agreement) suffered or incurred by the other party.

13. Indemnification

13.1 You agree to defend, indemnify and hold harmless Google from and against any and all third party claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable legal fees) suffered or incurred by Google, any of its affiliates or their respective directors, officers, employees and agents, or by any Authorized Carrier, arising out of or accruing from (a) Your use of the Market in breach of this Agreement, and (b) any claim that Your Product that infringes any Intellectual Property Right of any person or defames any person or infringes their rights of publicity or privacy. Google shall provide You with reasonable information, assistance and cooperation in responding to and, where applicable, defending each such claim and You shall accept full control and sole authority over the defence and settlement of any such claim.

13.2 To the maximum extent permitted by law, you agree to indemnify Google from and against any and all third party losses, claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) incurred by Google, the applicable Payment Processors (which may include Google and/or third parties) or the Payment Processors’ affiliates, directors, officers, employees and agents arising out of or accruing from taxes related to Your distribution of Products distributed via the Market.

14. Changes to the Agreement

14.1 Google may make changes to this Agreement at any time by sending the Developer notice by email describing the modifications made. Google will also post a notification on the Market site describing the modifications made. The changes will become effective, and will be deemed accepted by Developer, (a) immediately for those who become Developers after the notification is posted, or (b) for pre-existing Developers, the modified Agreement will become effective upon Developer’s acceptance of the modified Agreement (except changes required by law which will be effective immediately). Pre-existing Developers will show their acceptance of the modified Agreement by going to the Market site and accepting the modified Agreement. In the event that Developer does not agree with the modifications to the Agreement within thirty (30) days after the date the email is sent, then Google will suspend the distribution of Developer’s Products until Developer agrees to the modified Agreement. In the event that You do not agree with the modifications within ninety (90) days after the date the email is sent, then You must terminate Your use of the Market, which will be Your sole and exclusive remedy.

15. General Legal Terms

15.1 All notices of termination or breach must be in English, in writing, addressed to the other party’s Legal Department and sent (in the case of Google) to [email protected] (as applicable) and in the acse of developer to the address notified to Google upon registration, or any other address as either party has notified the other in accordance with this clause. All notices shall be deemed to have been given on receipt as verified by written or automated receipt or electronic log (as applicable).

All other notices must be in English, in writing, addressed to the other party’s primary contact and sent to their then current postal address or email address.

Neither party may assign any of its rights or obligations under this Agreement without the prior written consent of the other.

You acknowledge and agree that each member of the group of companies of which Google is the parent shall be third party beneficiaries to this Agreement and that such other companies shall be entitled to directly enforce, and rely upon, any provision of this Agreement that confers a benefit on (or rights in favor of) them. Except as expressly stated otherwise, nothing in this Agreement shall create or confer any rights or other benefits in favour of any person other than the parties to this Agreement.

Except as expressly stated otherwise, nothing in this Agreement shall create an agency, partnership or joint venture of any kind between the parties.

Neither party shall be liable for failure to perform or delay in performing any obligation under this Agreement if the failure or delay is caused by any circumstances beyond its reasonable control.

15.7 Failure or delay in exercising any right or remedy under this Agreement shall not constitute a waiver of such (or any other) right or remedy.

15.8 The invalidity, illegality or unenforceability of any term (or part of a term) of this Agreement shall not affect the continuation in force of the remainder of the term (if any) and this Agreement.

15.9 Subject to Section 12.1(b), this Agreement sets out all terms agreed between the parties in relation to its subject matter and supersedes all previous agreements between the parties relating to the same. In entering into this Agreement neither party has relied on any statement, representation or warranty not expressly set out in this Agreement.

15.10 This Agreement is governed by English law and the parties submit to the exclusive jurisdiction of the English courts in relation to any dispute (contractual or non-contractual) concerning this Agreement save that either party may apply to any court for an injunction or other relief to protect its Intellectual Property Rights. If this Agreement is translated into any other language, if there is conflict the English text will take precedence.

15.11 Export Restrictions. Products on the Market may be subject to United States export laws and regulations. you must comply with all domestic and international export laws and regulations that apply to your distribution or use of Products. These laws include restrictions on destinations, users and end use.

## Polygon live wallpaper

Following the success of my first live wallpaper (Nexus Revamped Pro) I have created another. The wallpaper bares similarity to the windows screensaver mystify but much more ascetically pleasing.

Features

• Background color
• Polygon color or cycle through a range of colors
• Line thickness
• Number of apexes
• Number of trails
• Speed of movement
• Performance settings, anti-aliasing and Frames per second (FPS)
• More to come soon, feel free to request something!

Images

Video

Polygon Live Wallpaper (com.stealthcopter.polygon)

## Best spam comment ever

Just noticed this little beauty sitting in my comment spam, found it hilerious so I thought I’d share it:

HELP! I’m currently being held prisoner by the Russian mafia xyzrxyz penis enlargement xyzrxyz and being forced to post spam comments on blogs! If you don’t approve this they will kill me. xyzrxyz penis enlargement xyzrxyz They’re coming back now. Please send help!

Needless to say I’ve purchased several penis enlargement kits to ensure this persons safety.

Information

Author : penis enlargement (IP: 213.5.67.159 , hosted-by.altushost.com)
E-mail : [email protected]
URL : https://www…….. Censored………..com
Whois : https://ws.arin.net/cgi-bin/whois.pl?queryinput=213.5.67.159

I have received my android keychains (as mentioned previously) that I ordered from dealextreme, they are a little bigger than I was expecting and certain not suitable for strapping onto a phone, however they are the perfect size to be used with keyrings 😀

They cost \$2.70 each (£1.80), or for 5+ \$2.39 (£1.59), or for 10+ (£2.12). When ordering more than 5 remember to enable bulk rates, this adds a delivery charge but the prices calculated above include this, and you still save more.

Photos:

Android keychain

Android keychain

Android keychain

Android keychain

You can also get a pack of 4 (one of each colour) for \$8.10 (£5.38) shown below:
4 Colour android pack product link

4 Colour pack of Android Robot Keyrings (for phones)