Android Applications Move to SD Card

Posted by: Tom  :  Category: Google, Operating Systems, Software, Software Business, Techbait Homegrown, cell phones, consumer, technology

The biggest news for many developers and users in the Android smart phone community this week is the rollout of the latest Android OS, version 2.2 or “Froyo”, and it’s support for moving certain applications, or apps, to the external SD card.  One of the issues that have plagued owners of the Motorola Droid and some other phones is the small amount of internal storage capacity that the phones have shipped with.  The Droid, for example, only provides a paltry 512mb ROM/256mb RAM, which sounds like a lot until you start installing large multi megabyte (20+ megabyte) game apps.  You can quickly run out of storage space.  Add to this the tendency for the phone dialer storage to fill with the increase in text and multimedia messages, you you have a recipe for frustration on the part of many Android users.

Well, the one caveat to this is that the apps have to be enabled to be moved to the SD card.  Google has left it up to the app developers to decide if this is feasible.  At first I thought this was bad, and I heard some chatter that the reason this wasn’t allowed is the fear of apps on SD cards leading to piracy, but the technical reason that this makes sense is that there are some apps that should not be moved since the SD card bing unmounted and removed could pose problems in some case.  For a list of apps that should NOT be moved to external storage, check this link.  Anyway, in searching I found a nice little article explaining to developers how to enable their apps for this handy feature.  If your app does not really need to be in internal storage, please enable it to be moved and let the user decide where they want it.  In time this feature won’t be as necessary as memory prices drop and more phone come with oodles of internal storage, but for now at least, having as many apps as possible allowing this feature is in the best interest of the Android user community.  Developers might also want to note that if they are stubborn in allowing this feature when there is no sound technical reason for not doing so, many users will just uninstall their app and look for movable alternatives.

Android 2.2 Froyo is here

Posted by: Tom  :  Category: Google, Operating Systems, Software, Techbait Homegrown, cell phones, technology

Today my Motorola Droid greeted me with a system update.  The Android OS went from 2.1 to 2.2 in an almost seemless upgrade to the OS.  Some of my ringtones got messed up for some reason, but they were easy to reset.  Two more desktops were added for more application shortcuts and widgets.  The slide up app window was replaced with three buttons signalling instant access to phone, apps, or web browser.  The whole thing moves faster now, and there are many other improvements inside.  Lifehacker did a nice writeup on Android 2.2 new features.  I have to say that the best feature for me, being the owner of a Motorola Droid with sparse internal memory, is the move to SD card feature for the apps.  Unfortunately as of this writing, almost no apps have this support, including some vary large Google apps like Gmail and Google Maps and Sky, as well as large apps like Facebook and games.  Hopefully over time developers will enable this feature in their apps, as Google has left it up to the individual app developers.  Gizmodo also has a nice nitpicky general Android 2.2 Froyo review here.

Motorola DROID hangups and bugs

Posted by: Tom  :  Category: Gadgets, Google, Internet, Operating Systems, Software, Techbait Homegrown, cell phones, consumer, technology, texting

I recently bought a Motorola DROID smart phone on the Verizon Wireless network.  The phone seems to be very durable, and the Android operating system is a wonderful competitor to Apple’s iPhone.  There are a growing number of apps available for these phones, with some notable ports of iPhone apps to the Android platform.  There are some weaknesses of the Motorola DROID phone that potential customers should know about.  The ones that I have stumbled upon are that text messages get deleted often by the phone, even when the auto delete setting is switched off, the fact that the phone has pathetically small internal memory for apps (about 256 megabytes, which is pathetic), and that multimedia messages take up so much internal memory that you might end up deleting apps just so that the phone dialer storage doesn’t run you into the wall when its growth runs wild, and vanishing bluetooth devices.

  • Text message threads are set to auto delete when they hit a certain number of messages.  You can alter or turn off this default behavior in the test message app settings, but it will eventually delete them anyway.  It happened to me several times and it is happening to others our there.  The only thing you can do right now is to install SMS Backup, a nifty free app that will copy your text messages to your Gmail account for archiving.  It works, and there are paid apps that will also do this for multimedia messages (picture and video containing messages).
  • The Motorola DROID has a pathetically small internal memory of 512 MB, half of which is available for apps.  To add insult to injury, Verizon is advertising that phone as having 16GB of memory due to the micro SD card that they ship with.  The problem is that Google has made it so that only internal phone memory is available for app executables, and most apps are made in a way that they use the internal memory for everything, so if you install many apps you run out of memory pretty quickly.  Regular apps are small, but install a few games or some data crazy apps and see how far you get.  Shame on Motorola for cheaping out on memory, Verizon for false advertising, and Google for not allowing some more leeway for using the SD card for applications, although they cite security and piracy concerns.
  • The “phone dialer storage” app seems to store data of some sort on the phone, and it tends to runaway with itself as you create more message threads, especially those rich with photos or video attachments.  The obvious cure would be to delete the photos and other attachments or purge your text messages every so often, which works up to a point, but I found that my phone dialer storage held it’s data cache even after I purged.  The phone got sluggish and rebooted itself a few times too.  Finally after one spontaneous reboot, the cache was somehow purged.  Perhaps there is some internal software setting that does this, but it’s VERY annoying and not a graceful way to go about it.  The best thing that Android users who hit their phone’s memory limits can do in the meantime is to get an app management application which allows them to shuffle apps around from the SD card back to phone memory.  What this means is that you have to archive the app to the SD card and then uninstall it through the management app.  If you want to use it later you can reinstall it from the archived copy.  This allows you to archive those many megabyte game apps that you might not use everyday but don’t want to ditch for good.  It’s a compromise but it works.
  • My bluetooth ear piece, a Samsung WEP470, occasionally vanishes from the phone.  Usually rebooting the ear piece fixes the problem, but I found that one time it did not.  Sometimes turning the phone’s bluetooth on and off would fix the problem.  One time nothing worked, and you could hear the incoming phone call beep in the ear piece but when the call was answered no sound came through the ear piece.  I thought the Samsung bit the dust and even started shopping for a new one.  I tried a shot in the dark approach of turning the phone off and removing the battery for a few seconds, about 10, and then powering it up again.  My bluetooth ear piece now worked fine again.  Go figure.

What is a VPN?

Posted by: Tom  :  Category: Internet, Linux, Microsoft, Operating Systems, Techbait Homegrown, UNIX, Windows, networking

Have you ever wanted to communicate somewhat securely over a public network, like the Internet, in order to exchange confidential or sensitive information, passwords, or other data?  You need a VPN to connect you from one point to another over the insecure public medium.  This secure connection is the VPN, or Virtual Private Network.  The VPN, whether purely software or by utilizing a VPN appliance device containing it’s own software, uses encryption software to construct a tunnel between the two points, thus allowing the user to exchange confidential information or sensitive login information between two points.  VPN’s can also be useful for simply contacting your private network remotely, since you don’t want unknown entities to see your internal network infrastructure, hosts, or to sniff out your passwords.

On a similarly related line of thought, if you use UNIX or Linux, a good way to access your home network over the Internet from a remote point is to set up an SSH tunnel, where the Secure Shell is used to contruct a tunnel.  You login to the remote UNIX or Linux host via SSH, and then you can launch graphical Xwindows applications using an SSH tunnel.  You can do this from a Windows client by using the Cygwin or other software which allows one to run POSIX, GNU, and UNIX/Linux utilities on a Windows machine.  You can do this from work if your network allows this sort of Internet access.  It is handy to be able to access your home UNIX/Linux server over an SSH tunnel.

$ ssh -X u...@server.homenetwork.com
$ ssh -X user@<public ip address of server>

You can requests compression of all data to improve up user experience (good for a low speed link such as wan link) using -c option:

$ ssh -c -X user@<public ip address of server>

You can then run any Xwindows application on the remote xterm by simply typing the program executable name followed by the ampersand to spin it off into it’s own process ID.  You can also run an entire desktop like KDE, Gnome, or the default Xwindows desktop with the startx command.

Solaris Disk Slice Numbering

Posted by: Tom  :  Category: Operating Systems, Techbait Homegrown, UNIX

The root partition on a Solaris system is defined as Slice 0, and is mounted as root (/).  This is the top level of the filesystem.  In computer parlance root starts at the top, but if you look at it as a biological tree is grown, from the bottom up, it also makes sense as the origin of the filesystem.

Slice 1 is used for swap space, which is virtual memory.  Some operating systems, like Windows, use a swap file, while UNIX and UNIX like filesystems use an entire partition for swap.  The size of swap is reliant on how much physical memory is in the system.  There are various formulas for how large to make the swap area.  Some go for twice to twice plus half of physical memory, and some prefer larger in case physical memory increases.  You can always add extra swap partitions in the future if they are needed.

Slice 2 is representative of the entire disk and is not mounted as anything.

Slice 3 is mounted as /export in the default setting.  Directories exported via NFS, such as user HOME directories, are kept here.

Slice 4 is mounted as /export/swap.  This is meant to provide virtual memory for client computers.  It can also be mounted as /opt for optional software.

Slice 5 is usually mounted as /opt, for optional software that is not critical to the functioning of the system.  If /opt is on Slice 4 then /var is what resides on Slice 5.

Slice 6 is mounted as /usr, which contains libraries and binary files that are used by regular system users.  The /usr partition is shared between systems.

Slice 7 is mounted as /home, /export home, or /export/share.  This holds user home directories or other shared data.

Setting up a Solaris DHCP client

Posted by: Tom  :  Category: Internet, Operating Systems, Techbait Homegrown, UNIX, networking

I’m happy to see that the Rite Group still has their page up on how to set up a Solaris DHCP client.  This works and it is very useful.  I always would point field engineers who needed to accomplish this task to this page, and I used it myself for any in house Solaris machines that had to be set up as DHCP clients.  Find this useful method HERE.

Steps to getting a Solaris machine on the network

Posted by: Tom  :  Category: Internet, Operating Systems, Techbait Homegrown, UNIX, networking

Solaris is Sun Microsystems’ version of UNIX.  For non NIS/NIS+ Solaris machines, the things necessary to add it to an IP network are:

  • The /etc/hosts file must have the hostname and IP address of the machine.
  • There must be an /etc/hostname.[interface] file which contains the system hostname.  The [interface] is the designation of the network interface assigned the address, for example, /etc/hostname.eri0 or /etc/hostname.dmfe0
  • There must exist an /etc/netmasks file which holds the subnet mask for the machine.
  • The /etc/resolv.conf file must contain the DNS server if the host relies on DNS for name to IP address resolution.
  • Finally, the /etc/defaultrouter file needs to hold the IP address of the router for the subnet – or in other words the default gateway address.

CentOS 5.4 netinstall CD is broken

Posted by: Tom  :  Category: Linux, Operating Systems, Techbait Homegrown

I was trying to install CentOS Linux 5.4 on an old Dell 2400 server and I opted for the netinstall to avoid having to burn 6 CD iso images.  I get to the part where you enter the remote web server and directory where the install images are and it keeps putting an extra slash in the URL string thus preventing the thing from working.  I searched on it and found a thread out there claiming that this happens when you hit Enter in the text fields to proceed, but I didn’t and it still happens.  I guess I am going to have to burn those ISO’s to CDR after all.  Sigh.

AIX 5.x Link Aggregation

Posted by: Tom  :  Category: Operating Systems, Techbait Homegrown, UNIX, networking

Once upon a time I was called on by a software developer to assist him in a problem where he had to code a solution to a bug in the enterprise software that our employer was a vendor of, but the client had their network interface cards combined into a single virtual device, also known as link aggregation.  Why would you want to do this?  Aggregating the nics allows the throughput to be higher for the server.  So, aggregating two Gbit nics will essentially create a 2 Gbit connection, although the individual line speeds are still the 1 Gbit speeds.  It also provides failover since the physical connections are aggregated into a virtual connection which uses one IP address, so if one fails the connection is still active.  This is good fault tolerance, to a point.  I had to figure out how to make one of our AIX servers into a machine with an aggregated nic setup.  It wasn’t so hard once I found the documentation on how to do it.  He was able to work on this machine once I combined the two physical network connections into one virtual device using one IP address, and he was able to then verify the issue the customer was having and code a fix.  This is how a sysadmin in a software company assists the software development and fix process.  I did this for years and it was very interesting and rewarding work, although it was only a small portion of my daily repertoire.

I don’t have to explain it here since the good folks at IBM were kind enough to outline how to do this on their documentation site.  Also, a good overview is available on Wikipedia’s link aggregation page.

Redhat Linux Runlevels

Posted by: Tom  :  Category: Linux, Operating Systems, Techbait Homegrown, UNIX

The order in which Linux starts system services is governed by what runlevel is assigned to the service in question. Some runlevels will boot or halt the system itself, while others control regular system services or even programs that the administrator installs and wants started at a particular time in the boot cycle. These runlevels are controlled with scripts that are defined by runlevel named directories in which they reside. The default runlevel for the system is set in the /etc/inittab file, but it can be overridden from the GRUB boot loader menu. Redhat Enterprise Linux has six runlevels.
Runlevel 0: Halt the system. When the system is sent to this runlevel, everything shuts down and the system is completely halted. If the computer’s BIOS supports it, the machine is powered off at the end of the process.

Runlevel 1: This is single user mode. In single user mode an admininstrator can do all sorts of maintenance, like backups, restores, and repairs. This is useful because no other users can be logged in and the system is not prone to having others change things, which is important when this sort of work is being done. Networking is not enabled so the network interfaces and infrastructure are offline.

Runlevel 2: In this runlevel, multiuser functionality is enabled with only some networking services enabled.

Runlevel3: Multiuser mode is enabled with full networking functionality.

Runlevel 4: This runlevel is currently not used.

Runlevel 5: The X Windows graphical user interface system is enabled and the user is brought to a graphical login screen. After logging in, the user is taken to their graphical desktop as in all of the popular operating systems of today. Networking is fully enabled.

Runlevel 6: This is the reboot runlevel. It does what it says and reboots the system. You should never set the /etc/inittab default runlevel to number 6 for obvious reasons. Your system would be in an endless reboot loop.

Each runlevel has a bunch of scripts associated with it. Runlevel 3 scripts are located in the /etc/rc.d/rc3.d directory. The runlevel directories are rc0.d through rc6.d, and they are all located under the /etc/rc.d directory. Whatever the default runlevel is set to in the /etc/inittab file, the system will look in the appropriate runlevel directory and execute the scripts in numeric order, starting and killing services according to the scripts. The start scripts start with an “S” and the kill scripts with a “K”. The scripts in the runlevel directories are really just symbolic links to the real script files in the /etc/rc.d/init.d directory. The /etc/rc.d/ rc(number).d directory is hard linked to /etc/rc(number).d directory, so you can use the shorter one to get to the same place.

Knowing about Linux runlevels is an important part about knowing how to handle a Linux system, and the knowledge translates to UNIX systems as well. There will be minor and subtle differences, such as varying directory names and different boot loaders, but it is essentially the same framework.

relationship problem canadian online drugs