Tuesday, 15 March 2011

North Denver iPad Supply Intel Report

iPhone iPad pictureDue to work and family obligations, I was unable to wait in line for an iPad 2 on Friday. So starting about 5:15pm I hit my first North Denver store. I didn't get an iPad 2 but I did talk to a lot of people.



  • Target stores got 5 Wifi-only iPad 2's each. I checked 2 stores and both had the same number of iPads and sold out in about 5 minutes.

  • AT&T got ZERO iPad 2's!  I was surprised. As opposed to Target the salesman there thought they would only receive 3G iPads, no Wifi.

  • Select Walmart stores got over 100 each. The store near my house got none. The sales person there thought that stores would only get single digit ships after the initial release.

  • The Flatirons Crossing Apple Store got several hundred (200 to 300) and sold out very quickly.

Based on this information put in an online order in the Apple store. I think the iPad 2 is gonna be very hard to come by in the near term.

Custom GridView

In the old exercise "GridView" show how to implement a simple GridView (like the build in Gallery app) with a simple ImageView on each grid. Here it will be modified to implement custom GridView, have a ImageView and TextView in each grid.

Custom GridView

Create a folder /res/drawable to hold the pictures.

Modify main.xml to have a GridView.
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>


Implement mygrid.xml in folder /res/layout/, it's the layout of individual grid.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/imagepart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/textpart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>


Modify the main Java code. Modify mThumbIds to update with your own drawable rsource name.
package com.exercise.CustomGridView;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomGridView extends Activity {

// references to our images
private Integer[] mThumbIds = {
R.drawable.androider_01,
R.drawable.androider_02,
R.drawable.androider_03,
R.drawable.androider_04,
R.drawable.androider_05,
R.drawable.androider_06,
R.drawable.androider_07,
R.drawable.androider_08,
R.drawable.androider_09,
R.drawable.androider_10,
R.drawable.androider_11,
R.drawable.androider_12,
R.drawable.androider_13,
R.drawable.androider_14,
R.drawable.androider_15,
R.drawable.androider_16
};

public class MyAdapter extends BaseAdapter {

private Context mContext;

public MyAdapter(Context c) {
// TODO Auto-generated constructor stub
mContext = c;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return mThumbIds.length;
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return mThumbIds[arg0];
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub

View grid;

if(convertView==null){
grid = new View(mContext);
LayoutInflater inflater=getLayoutInflater();
grid=inflater.inflate(R.layout.mygrid, parent, false);
}else{
grid = (View)convertView;
}

ImageView imageView = (ImageView)grid.findViewById(R.id.imagepart);
TextView textView = (TextView)grid.findViewById(R.id.textpart);
imageView.setImageResource(mThumbIds[position]);
textView.setText(String.valueOf(position));

return grid;
}

}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new MyAdapter(this));

}
}


Download the files.

Monday, 14 March 2011

Google to Block Useless Sites? Well Maybe...

Google LogoGoogle announced last Friday that they are gonna allow you to block useless sites. The gist of this feature is that when a link farm shows up in your search results, a link allowing you to block that site from future results is provided. Pretty cool. This will be a great help on some of those rare searches that result in nothing but link spam.



However, there is a danger if Google wants to use this feature to improve search results. Remember the first immutable law of the Internet. The first thing spammers will do is use this feature to block any good content. It is inevitable and predictable. Hundreds of spam servers requesting that any good content be blocked.



But I expect Google will figure a counter strategy in short order.

Saturday, 12 March 2011

iOS 4.2.1 signing is really closed

Looks like Apple has stopped signing 4.2.1 for all devices that can run 4.3. As a result TinyUmbrella needs a small update (until i fix the code that handles that).





Sorry for the update. This is the last time you guys will need to update for this case. In the code, currently, I use an enum to determine the hardware and the associated 'current' iOS firmware for each hardware. Yes this is inefficient. I don't need a reminder. Tonight is not the night to fix that as it is all bundled together in a much larger refactoring that I'm smack in the middle of. This update should help those of you having problems 'saving' 4.3 while Cydia is unchecked.

Friday, 11 March 2011

iPad 2 Buying Options

iPhone iPad picture

Mac Rumors has all the details for you iPad 2 buyers out there.



In addition to the Apple Store, Wal-Mart, Target, and certain Best Buys will also be selling iPad 2s. From the article, it sounds like stores will have anywhere from a few hundred to a couple dozen.



Don't forget phone companies. AT&T and Verizon should also have some inventory.



Good luck to all the buyers out there. It sounds like there will b a 2 or 3 week wait if you have to buy online.

Thursday, 10 March 2011

Android Application Development For Dummies


The fun and friendly guide to creating applications on the Android platform

The popularity of the Android market is soaring with no sign of slowing down. The open nature of the Android OS offers programmers the freedom to access the platform's capabilities and this straightforward guide walks you through the steps for creating amazing Android applications. Android programming expert Donn Felker explains how to download the SDK, get Eclipse up and running, code Android applications, and submit your finished products to the Android Market. Featuring two sample programs, this introductory book explores everything from the simple basics to more advanced aspects of the Android platform.

  • Takes you soup through nuts of developing applications for the Android platform
  • Begins with downloading the SDK, then explains how to code Android applications and submit projects to the Android Market
  • Written by Android guru Donn Felker, who breaks every aspect of developing applications for the Android platform into easily digestible pieces

No matter your level of programming experience, Android Application Development For Dummies is an ideal guide for getting started with developing applications for the Android platform.

From the Back Cover

Here's just what you need to start developing feature-rich, amazing Android apps

Even if you've never written a mobile application, this book has the know-how you need to turn your great ideas into cool apps for the Android platform. With millions of smartphone users and a cornucopia of carriers, Android is a great place to ply the app development trade. This book shows you from the ground up how to set up your environment and create an app. Read on to become an Android developer extraordinaire!

  • Welcome to Android � learn what makes a great Android app, how to use the SDK, ways to work with mobile screens, and how the development process works

  • Make users happy � find out how to design an interface that mobile users will love

  • Learn the code � work with the activity lifecycle and Android framework classes, use the Eclipse debugger, and create a home screen widget for your app

  • Beyond the basics � take your skills up a notch with apps that involve SQLite databases and multiple screens

  • Price and publish � pick the right price for your app and get it into the Android Market

Open the book and find:

  • Cool ways to use the accelerometer in your app

  • How to turn mobile limitations into opportunities

  • Tips on installing and setting up the tools

  • Step-by-step coding directions

  • Ways to make your apps more marketable

  • How to create really useful menus

  • Advice on app pricing

  • Ten great sample apps and SDKs, including code

Learn to:

  • Create apps for hot smartphones like Droid X, Galaxy S, and MyTouch

  • Download the SDK and get Eclipse up and running

  • Code Android applications

  • Submit your apps to the Android Market



Wednesday, 9 March 2011

Welcome iPad2,1 - iPad2,2 - iPad2,3 - We can save your SHSH

TinyUmbrella now supports all three new models of iPad 2. I've also added a much-needed tweak per saurik's request. If you don't update to the latest version, you may experience /significant/ slowness when saving your SHSHs in the future. With this release, 4.3 is supported. I plan on making some changes to the UI to help out the poor saps stuck on vertical resolutions < 900. I'm also going to be removing the proxy section of the app and simply using the system proxy settings.

Enjoy!

EDIT: There have been some reports of issues on the Windows version. I've addressed the '.bak' issue as well as the Windows recovery device issue. I've also fixed (as far as I can tell) the 'fix recovery' on most Windows builds. Please let me know if you have issues.

EDIT: I had a small issue with iPad2 detection (that's what I get for putting out a version without a device to test on :) ) All should be fine now though with 4.30.02

EDIT: I've added links to the fix recovery program for windows and mac. Use this app if TinyUmbrella is not able to fix recovery for you from DFU. Put your device into DFU mode and run the fixrecovery app appropriate to your OS.