Site Sponsors:
Easy Backgrounds for Android 
I have developed a great respect for the developers of the Android Graphics Framework. Why? Because it is obvious that the developers like to use their classes, themselves.

It's Ragu!


Indeed, from doing complex things like affine transforms, to even simple things like measuring a Canvas or a Bitmap, Android has the data we need, when-we-need-it. -From splits to splines, it all seems to be "in there"! (The Company that makes Ragu Spaghetti Sauce had a commercial a few years back - many take the expression it's ragu to mean ''it's in there''!)

Vista


Such was thee case of having what we needed "in there" when we set our paws to spruce-up a little ditty we wrote for the Android Marketplace. When it came time to spread a tile image all over a background, we had what we needed. -So much so that we feel confident that what we wrote will be able to work across hand-held devices of infinite screen size. All because members are ragu, where & when they should be... and more:

public void draw(Canvas can) {
if (bmpBack != null) {
PixelCellMap map = new PixelCellMap(can.getWidth(), can.getHeight(), bmpBack.getWidth(), bmpBack.getHeight());
int iCells = map.getCellCount();
for (int ss = 0; ss < iCells; ss++) {
Point pt = map.getActual(ss);
can.drawBitmap(bmpBack, pt.x, pt.y, paintPaper);
}
} else {
can.drawColor(paintPaper.getColor());
}
}

Note that the PixelCellMap class is part of a forthcoming Open Source Toolkit. One we are creating for cross-platform Android / Swing / AWT portability. -If you want to learn more about it (the code-named for the graphical part of the framework is Vista (sorry - but that moniker just made the most sense at the moment)), then give us a holler.


[ view entry ] ( 2445 views )   |  permalink  |  related link
Android, Eclipse & Ubuntu 

We Love NetBeans


My friends and I learned how to develop software for Android on NetBeans. -While far from the usual path taken to Android 'Nerdvanna, since we have started training on Android, we have been increasingly reverting back to bad habits. We have been using Eclipse.





Why dread teaching with Eclipse you might ask? -Because we have seen far too many students blow-away a weeks' weight of work while using it. --While admittedly just about all student ''disasters'' center around students tweaking their files and / or settings outside of the IDE (NEVER mess with anything in the workspace folders directly -bugs can sleep until a re-boot -even backups can fail to fix the problem!) --I'm just sayin' ... once burned, is twice shy... Ten time so roasted in front of a classroom could make even Johnny Carson a 'tad neurotic.

Yet in as much as only we old timers expect to treat files as stand-alone, given that the IDE is presently the opiate of the masses, what cannot be cured, must be endured. -After all, according to "Jafar's Golden Rule" - the customer is always right. ;-)





Not Galileo?


Certainly the first place to stop for a great overview of the Android SDK installation process - in general - would be at the Android Site.

Once we find ourselves merrily 'skipping down the Eclipse road to the emerald 'droid habitation, students are often keen to use a customized distro like Galileo.





While jump-start distros are great if you can start there from-scratch, most clients like to integrate the SDK into their existing tool-chain. Hence the need to document the integration process, ourselves. It makes a great how-to.

-Of course, if you need to install the ADK for another reason ('distro blows up on Windows, etc...) then we will assume a 'from scratch' here, too.

The Step-By-Step


So, beginning from step zero, we must jump to:

Step #1 - Get It


You will need:

(1) A Java Run-Time Environment (JRE).

Eclipse is a Java Application. It needs a JRE. So if not already installed, then you can get the JRE from Java.com. Stick with version 1.6 or greater.

Assuming that the JRE installed okay, you might - or might not - want to use Sun's SDK. Eclipse has its own.

Note to OS X Users: If you do not have Java 1.6 available, consider installing Ubuntu under Oracle's Virtual Box -You can get that here. --In fact, if you use more than one machine - be it a laptop at home, or a desktop at work - then everyone should install Android on Ubuntu using Virtual Box Software. Why? Because if you don't mind spending $99 for a pocket drive, then using a virtual machine is a great way to backup, as well as transplant gigabytes of work-in-progress from one place, to another.

(2) You will need a copy of Eclipse - we got mine from The Eclipse Site.

(3) You will also need The Android SDK - The archive is at the Android Download Page.

Step #2 - Installing Eclipse


Setting up Eclipse has always been easy: Once Java has been installed, all we need do is to open the Eclipse archive. After open, we can just drag, drop, and click on the eclipse file, in the eclipse folder.



Note: If Eclipse complains about not being able to find your Java, then note that some versions of Ubuntu have an extremely quirky problem with setting up your path... -Our pristine, updated, and properly-patched install-base on a 32 bit Lucid Lynx VM was one such version. -After too much howling frustration, after updating the path in $HOME/.profile we discovered that all we had to do was to re-boot for $PATH to 'take' to a new shell session... -Who knew?

Step #3 - The ADK


The Android SDK (ADK) is also a queer thing: While you just drag and drop it to install much like Eclipse, once we have done so, we need to run the SDK Management Tool before we can use the download to do much of anything:



See the README in the top ADK folder for instructions on how to see:



-Note that you will probably not want to install as many packages as depicted above -We do a lot of experiments with other platforms, so we installed 1.5, 2.2, 3.2 and 4.0. --When in doubt, 1.5 is the way to go if you have old hardware laying around. -That said however, 2.1 is probably what most folks will want to work with.

Step #4 - The ADK Plug-in Under Eclipse


Google has the poop here. It worked well.

Note that during the install that you will have to browse to select the location where you dropped the ADK (Step #3) proper. Because we also used the tools on NetBeans, we kept that ADK Folder next to - rather than inside of - the eclipse folder.

I was a bit surprised this time to see the plug-in re-download all of the platforms we had selected in Step #3, as well as to suggest the use of the 2.1 Platform. After being prompted, we installed Version 2.1, as well.

Ten dialogs & promptings later, here is what we saw:



Here is the log:


[2011-11-11 15:37:19 - SDK Manager] Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xml
[2011-11-11 15:37:20 - SDK Manager] Validate XML
[2011-11-11 15:37:20 - SDK Manager] Parse XML
[2011-11-11 15:37:20 - SDK Manager] Fetched Add-ons List successfully
[2011-11-11 15:37:20 - SDK Manager] Fetching URL: https://dl-ssl.google.com/android/repository/repository-5.xml
[2011-11-11 15:37:21 - SDK Manager] Validate XML: https://dl-ssl.google.com/android/repository/repository-5.xml
[2011-11-11 15:37:21 - SDK Manager] Parse XML: https://dl-ssl.google.com/android/repository/repository-5.xml
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 1.1, API 2, revision 1 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 1.5, API 3, revision 4
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 1.6, API 4, revision 3
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 2.0, API 5, revision 1 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 2.0.1, API 6, revision 1 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 2.1, API 7, revision 3
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 2.2, API 8, revision 3
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 2.3.1, API 9, revision 2 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 2.3.3, API 10, revision 2
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 3.0, API 11, revision 2
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 3.1, API 12, revision 3
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 3.2, API 13, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found SDK Platform Android 4.0, API 14, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found ARM EABI v7a System Image, Android API 14, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 7, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 8, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 9, revision 1 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 10, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 11, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 12, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 13, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Samples for SDK API 14, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Android SDK Platform-tools, revision 9
[2011-11-11 15:37:21 - SDK Manager] Found Android SDK Tools, revision 15
[2011-11-11 15:37:21 - SDK Manager] Found Documentation for Android SDK, API 14, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Android Support package, revision 4
[2011-11-11 15:37:21 - SDK Manager] Fetching URL: https://dl-ssl.google.com/android/repository/addon.xml
[2011-11-11 15:37:21 - SDK Manager] Validate XML: https://dl-ssl.google.com/android/repository/addon.xml
[2011-11-11 15:37:21 - SDK Manager] Parse XML: https://dl-ssl.google.com/android/repository/addon.xml
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 3, revision 3
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 4, revision 2
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 5, revision 1 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 6, revision 1 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 7, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 8, revision 2
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 9, revision 2 (Obsolete)
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 10, revision 2
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 11, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 12, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 13, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google APIs by Google Inc., Android API 14, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google TV by Google Inc., Android API 12, revision 2
[2011-11-11 15:37:21 - SDK Manager] Found Google Market Licensing package, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google USB Driver package, revision 4
[2011-11-11 15:37:21 - SDK Manager] Found Google Market Billing package, revision 1
[2011-11-11 15:37:21 - SDK Manager] Found Google Admob Ads Sdk package, revision 3
[2011-11-11 15:37:21 - SDK Manager] Found Google Webdriver package, revision 1
[2011-11-11 15:37:21 - SDK Manager] Fetching URL: http://www.echobykyocera.com/download/e ... sitory.xml
[2011-11-11 15:37:22 - SDK Manager] Validate XML: http://www.echobykyocera.com/download/e ... sitory.xml
[2011-11-11 15:37:22 - SDK Manager] Parse XML: http://www.echobykyocera.com/download/e ... sitory.xml
[2011-11-11 15:37:22 - SDK Manager] Found Dual Screen APIs by KYOCERA Corporation, Android API 8, revision 1
[2011-11-11 15:37:22 - SDK Manager] Found Dual Screen APIs by KYOCERA Corporation, Android API 10, revision 1
[2011-11-11 15:37:22 - SDK Manager] Fetching URL: http://developer.lgmobile.com/sdk/andro ... sitory.xml
[2011-11-11 15:37:23 - SDK Manager] Validate XML: http://developer.lgmobile.com/sdk/andro ... sitory.xml
[2011-11-11 15:37:23 - SDK Manager] Parse XML: http://developer.lgmobile.com/sdk/andro ... sitory.xml
[2011-11-11 15:37:23 - SDK Manager] Found Real3D by LGE, Android API 8, revision 1
[2011-11-11 15:37:23 - SDK Manager] Fetching URL: http://innovator.samsungmobile.com/andr ... sitory.xml
[2011-11-11 15:37:24 - SDK Manager] Validate XML: http://innovator.samsungmobile.com/andr ... sitory.xml
[2011-11-11 15:37:24 - SDK Manager] Parse XML: http://innovator.samsungmobile.com/andr ... sitory.xml
[2011-11-11 15:37:24 - SDK Manager] Found GALAXY Tab by Samsung Electronics., Android API 8, revision 1
[2011-11-11 15:37:24 - SDK Manager] Fetching URL: http://developer.sonyericsson.com/edk/a ... sitory.xml
[2011-11-11 15:37:25 - SDK Manager] Validate XML: http://developer.sonyericsson.com/edk/a ... sitory.xml
[2011-11-11 15:37:25 - SDK Manager] Parse XML: http://developer.sonyericsson.com/edk/a ... sitory.xml
[2011-11-11 15:37:25 - SDK Manager] Found EDK 1.1 by Sony Ericsson Mobile Communications AB, Android API 10, revision 1
[2011-11-11 15:37:25 - SDK Manager] Done loading packages.
[2011-11-11 15:38:26 - SDK Manager] Preparing to install archives
[2011-11-11 15:38:26 - SDK Manager] Downloading Android SDK Tools, revision 15
[2011-11-11 15:39:07 - SDK Manager] Installing Android SDK Tools, revision 15
[2011-11-11 15:39:09 - SDK Manager] Installed Android SDK Tools, revision 15
[2011-11-11 15:39:09 - SDK Manager] Downloading Android SDK Platform-tools, revision 9
[2011-11-11 15:39:25 - SDK Manager] Installing Android SDK Platform-tools, revision 9
[2011-11-11 15:39:25 - SDK Manager] 'adb kill-server' succeeded.
[2011-11-11 15:39:26 - SDK Manager] Installed Android SDK Platform-tools, revision 9
[2011-11-11 15:39:26 - SDK Manager] Downloading SDK Platform Android 4.0, API 14, revision 1
[2011-11-11 15:40:37 - SDK Manager] Installing SDK Platform Android 4.0, API 14, revision 1
[2011-11-11 15:40:42 - SDK Manager] Installed SDK Platform Android 4.0, API 14, revision 1
[2011-11-11 15:40:42 - SDK Manager] Downloading SDK Platform Android 2.1, API 7, revision 3
[2011-11-11 15:43:04 - SDK Manager] Installing SDK Platform Android 2.1, API 7, revision 3
[2011-11-11 15:43:08 - SDK Manager] Installed SDK Platform Android 2.1, API 7, revision 3
[2011-11-11 15:43:33 - SDK Manager] 'adb kill-server' succeeded.
[2011-11-11 15:43:36 - SDK Manager] ADB: * daemon not running. starting it now on port 5037 *
[2011-11-11 15:43:36 - SDK Manager] 'adb start-server' succeeded.
[2011-11-11 15:43:36 - SDK Manager] Done. 4 packages installed.
[2011-11-11 15:43:36 - SDK Manager] ADB: * daemon started successfully *


Conclusion


Having used Helios (Eclipse 3.6), we must say that the Indigo install (Eclipse 3.7) went a lot smoother. Unlike the last time however, we installed it-all on a Virtual Box; With absolutely no trial-and-error, this same 32-bit Ubuntu Operating System image ran just fine on OS X, Windows XP, 64-bit Windows 7, and 64-bit Ubuntu.





Because we now have a VM ready to help jump-start every student project from-scratch, perhaps the best reason for this blog entry is to remind myself of what others might expect. -Since we have saved a few copies of the virtual image, we will probably not have to repeat the above process for a good deal longer than human-memory should be required to recollect such a mismatched hodge of geeky-wonderment.

Enjoy!

-R.A. Nagy



[ view entry ] ( 3450 views )   |  permalink
Installing Ubuntu on the iMac G3 PowerPC (PPC) 
There is something truly wonderful about keeping those old computers doing useful things. -So as everyone from Apple to Microsoft encourages us to chum our old hardware into the ocean by dropping support, I find more and more reasons to convert them from Windows, OS 9, or OS X, to Linux.





Indeed, as feature-bloat & patches make proprietary operating systems slower and slower each day, many have discovered that even 12-year-old hardware can do some pretty mainframe-worthy operations. All due to the lightweight machine requirement of Linux!

Dusting off a few G3s today, here is the process:

(1) Create a bootable CD from the ISO. Because I prefer the long-time support versions (LTS), we used Lucid Lynx (Version 10.04.) A CD-R worked fine.

(2) Start the computer, then insert the CD into that iMac (or any Apple PowerPC.)

(3) Re-start the computer, afterward holding down the 'c' key until the CD boots.

(4) Use the 'live' video option, as mentioned at the boot prompt. (i.e boot: video=ofonly)

(5) When the install complains, use the default low-res setting for a "this boot only" option.

(6) Once the graphical Ubuntu screen shows, wait a few minutes to cancel the package management prompting. -While this step is optional, it makes things a whole lot easier to understand.

(7) Click on the install icon, and install as prompted / desired.

(*) Note that once Ubuntu is installed, that the disk will automatically eject. If you abort the installation, remember that holding the mouse button down after the "wall-(e) sound" will eject the CD during the early stages of a re-boot. You can also try this.

(*) Once the Ubuntu GUI is running (visible or not), note also that pressing ctrl-option-F1 will give us a command prompt. When the live boot is in pester, starting a terminal session using this combination might take a couple of tries... but it works just fine.

(8) Finally, to disable that incessant request to change your password each and every time you run a command-prompt (is your date / time battery not holding a charge?), then change the '0' to being completely empty in the last-date-change field. -That field will be the 3rd field on the line containing your login name in the /etc/shadow file. More information can be had via the `man shadow` page. If you are new to Linux, then the `man passwd` page is also worth a read.

If and when you get tired of manually asserting the default video mode, rumor has it that the "video-ofonly" is in yaboot.conf. -Someone else mentioned that you could also try adding nomodeset to the kernel command line. (Since I use the G3s as non-gui servers, I have not been too concerned about X11. While you can use apt-get to remove the GUI entirely, you can also edit the /etc/rc.local script to fix-in a shell. We can then use startx whenever we want to GUI.)

If you do not want a GUI, note that there are ever more creative ways to stop the GNOME Display Manager (gdm) from starting. Take a Google to find out how...

Enjoy,

-Rn

(p.s. If you like those magic Apple key-combinations, then here is a nice list of them.)



[ view entry ] ( 2700 views )   |  permalink

<<First <Back | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Next> Last>>