-
How-to: Android 4.0 (Ice Cream Sandwich) using VMware Player
Posted on May 14, 2012 by in Application Services, Engineering Applications, Remote Application Management, Technology Services with 0 comments
Are you still waiting for Verizon to make the newest Android OS available on your Droid RAZR MAXX? In the mean time, follow the instructions below for a way to preview what the newest Android OS looks like – you’re probably not missing as much as you think!
- Download and install VMware Player. This is VMware’s entry-level free virtualization product for end users.
- Instead of downloading a file from the Android x86 project, I grabbed a customized one with better support for VMWare drivers from Dan Fages. Download the android-x86-vm-20120130.iso.gz file and extract it somewhere on your computer.
- Create a New Virtual Machine. Set the “Installer disc image file” to the Android x86 ISO file you just downloaded:

- Configure a name and location to save the disk image. You can set this to 2.5GB:
- The Android OS partitions take about 256MB of disk space.
- The maximum size for a simulated SD card is 2GB.
- Once you’ve completed the startup wizard, it should immediately boot to a GRUB menu. Select the “Installation” link to start this process.

- Create/Modify partitions:
- Use the arrows keys to select [New]
- Then, choose [Primary] to create the first disk partition.
- Accept the default (maximum) and hit Enter.
- Choose [Bootable] to add the “Boot” flag to the partition.
- Select [Write] and confirm your choice to complete partition setup.

- Quit the Partition Editor.
- Back in the “Choose Partition” window, there should be an option to install Android to “sda1 Linux”. Select this and choose OK.
- Select ext3 in the “Choose filesystem” window. Confirm when it asks you if you’d like to format the drive, then confirm again when it asks you to install the GRUB boot loader.
- You probably want to leave the /system drive as read-only. Accept the default and select No when it asks you if you’d like to set this drive as read-write.
- You’ll have an opportunity, optionally, to Create a fake SD card. Do this, then Reboot the Virtual Machine.
- In a few moments, you’ll see a prompt asking which Android (“regular” or Debug mode) to boot. Choose the default first-choice, or wait a few moments for it to auto-select the default.
- Lastly, remember to click the I Finished Installing button. When it asks you about “Installing VMWare Tools”, choose Never Reminder Me.

The standard Google Market (Google Play) store isn’t available in this build by default, but you may be able to find applications you’re looking for in the “App Store”. Test out some of the Android Ice Cream Sandwich features here while you wait for your phone to be updated!
There is plenty more that can be done using the “adb” interface if you’re interested in developing or testing other features – but this will get you started if you’re looking for an introduction. Sorry, no iPhone OS emulator just yet!
Edwin Chung
Application Integration Engineer, SPK & AssociatesTop
-
Outsource Your System Administration to Set Your Engineers Free
Posted on May 9, 2012 by in IT Infrastructure, IT Outsourcing, Technology Services with 0 comments
The inquisitive nature of engineers, which makes them so good at designing, developing and building products, can also lead them to become distracted by other “interesting things” like managing the very systems and tools that allow them to do their engineering.Engineers need the right computers (including PCs, servers and the supporting networks) and the right software (including compilers, design packages, word processing suites, change management tools, etc.) to design, build, test and document the products on which they’re working. With the right tools, engineers can innovate and create new products that will shape the future. Keep reading…
Top
-
Setting up Web metrics with Webalizer
Posted on May 4, 2012 by in Engineering Applications, IT Infrastructure, Infrastructure Management, Technology Services with 0 comments
When managing websites, it’s important to have metrics on the site for both admin and content owners. One of the easiest ways to do this is Webalizer. It is a free tool that uses the Apache access log to provide a graphical presentation of usage.

Attached is a quick setup guide. Let me know if you have any questions.
Webalizer statisticsTop
-
How to add more disk space to your Redhat server without reformatting
Posted on April 27, 2012 by in Engineering Applications, Infrastructure Management, Remote Server Management with 1 comment
One of the common tasks for any system administrator is managing disk space on a server. It doesn’t matter what operating system the server is running, free disk space is always something you keep an eye on. I won’t go into a boring lecture on why managing disk space is critical, as I’m sure many of you are well aware of what happens when a server runs out of available disk space. So, instead of getting that phone call or page saying that your server is out of space, you can manage your free space by adding more of it dynamically! Yes, with a single reboot of your machine (to install a physical or virtual disk), you can easily add more space and keep things running smoothly.
For demonstration purposes, this article will be focusing on adding more disk space to a virtual Redhat server which has a single virtual disk of 25G in size. That disk only has 1G of free space, and you need to add another 25G to handle a new application’s install and projected growth. It’s important to note that you can add more space to existing volume groups in a LVM setup. LVM is the default type of disk management that Redhat uses, so you should already have that setup. If you went the more classic route and just made partitions on the physical disks, this tutorial won’t be much help as you can’t expand existing partitions like that.
With these requirements in place, here’s a quick summary of what we’ll be doing:1. Present a new physical disk to the server
2. Adding the new physical disk to an exisiting Volume Group.
3. Expanding a logical volume within that Volume Group to use the new disk space.
4. Notify the operating system about the change in size.
Step 1: Present the new physical disk to the server.
This is a fairly easy step. Since we’re setup with a virtual machine, we just need to login to vSphere, shutdown the operating system, and add a new virtual disk through the Settings menu. For our demonstration, I’ll be adding a new 30G disk. If you’re working with a physical server, you would need to add the new hard drive, and make sure the BIOS can see the new drive. Once you have the new drive added (either physical or virtual), start the server up again and let Redhat boot.
Step 2: Add the new physical disk to an existing Volume Group.
Now, let’s verify that we can see the new disk. If you perform an fdisk -l command, you should see the new disk. Here’s a sample output:
Disk /dev/sda: 25.7 GB, 25769803776 bytes 255 heads, 63 sectors/track, 3133 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 3133 25061400 8e Linux LVM Disk /dev/sdb: 25.7 GB, 25769803776 bytes 255 heads, 63 sectors/track, 3133 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdb doesn't contain a valid partition table
In this example, we have 2 25G drives, /dev/sda and /dev/sdb. Obviously, these values will be different for your physical or virtual disks, depending on the size you installed. Now that we’ve verified that the OS can see the new drive, we need to add it to the existing Volume Group. Information about existing volume groups can be obtained through the vgdisplay command:# vgdisplay
--- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 24.84 GB PE Size 32.00 MB Total PE 1531 Alloc PE / Size 1529 / 24.78 GB Free PE / Size 2 / 64.00 MB VG UUID QoI2Oi-E8S5-l7o2-4YIo-X3lT-sGXK-kBlhyT
Before we can add the new disk to the volume group, we need to do a special format command that will turn the disk into a physical volume. This makes the disk compatible with LVM. To do so, issue the pvcreate command as such:# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created
Now that the disk is a physical volume, it can be added to a volume group. You can do this by using the vgextend command as such:
# vgextend VolGroup00 /dev/sdb Volume group "VolGroup00" successfully extended
The new physical volume has now been added to the volume group and is ready to be allocated to a logical volume.
Step 3: Expand the logical volume to use the new space
Next, we need to run the lvextend tool to expand the volume to use the new space. For this command you need to get the path to the logical volume, which you can get by running the lvdisplay command Here’s the command to expand the volume:
# lvextend -L+24.9G /dev/VolGroup00/LogVol00 Rounding up size to full physical extent 24.90 GB Extending logical volume LogVol00 to 47.8 GB Logical volume LogVol00 successfully resized
Now we’ve got the new space added, but the filesystem doesn’t know about it yet.
Step 4: Update the filesystem to use the new space
The last step in the process is to resize the file system residing on the logical volume so that it uses the additional space. Since we are running Redhat, we can use the resize2fs command as such:
# resize2fs /dev/VolGroup00/LogVol00 resize2fs 1.41.4 (27-Jan-2009) Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
After a bit of a wait, the OS will present that it’s complete and now our / filesystem has been expanded by roughly 25G! Now you can breath a bit easier.
This is a very basic introduction to LVM and expanding disk sizes, if you’d like more information or want help in expanding your system, feel free to comment below! I’ll be happy to assist.
Bradley Tinder, Systems Integrator, SPK & Associates
Top
-
SDLC Basics: The Vision Statement
Posted on April 16, 2012 by in Software Development Lifecycle - SDLC with 0 comments
In the beginning, there was an idea. The idea took shape and became a project. The project became an application and the application got used.
Or maybe it didn’t get used. Maybe it was completely the wrong application for the business. Or maybe it was the right application, but no one knew exactly what to do with it.
Although there are many places for a project to go right or wrong, having a clear vision, communicated effectively to the project team, is a good place to start down the right path.
Vision and the SDLC
Maybe your New Year’s resolution is to bone up on the Software Development Lifecycle to see how your current project can be improved. Or maybe you’re about to lead your first new project. Wherever you’re at, be sure to take a step back and review the basics. This installment of SDLC Basics will focus on the creation and documentation of the Vision Statement.
The Scenario
A large software company’s sales force use five applications. One app is to track small business customers; the second app tracks corporate customers; another app tracks government customers; the fourth app is for order management; and the final application is for reports. Oh yes, and then there are the applications for calendars and to-do lists. This doesn’t sound very efficient, does it? So, someone in the company, maybe a sales manager, has an idea to create one application to access the data from the other applications and roll key data points into a dashboard.
Executives meet and the project gets the support to get underway. The Vision Statement is created and communicated to the project team. What should the vision statement look like and how should it be communicated?
Some Dos and Don’ts
- The Vision Statement should be short and to the point, not a multi-page document. Some classic examples from successful businesses are only one sentence long;
- The vision should be clear. It should not be cluttered by verbosity;
- Most (and preferably all) of the project team should “get it”;
- It should not dictate specifics. That will come later in the SDLC;
- It should be something that can pull people back on track when “rabbit trails” have been visited.
An Example
For the scenario above, our Vision Statement could look something like this: “We will develop an application that allows our sales force to quickly see sales data and orders for any customer, anytime, anywhere.”
Effective Communication
Now that a vision has been developed, how is it communicated to the team? One suggestion is to include it in an email, memo or meeting to kick off the project. It should also be written at the top of all project documentation – the project scope and plans, development docs, test docs, etc. It’s the constant reminder to the team of the project’s focal point.
In the next installment of SDLC Basics, we will drill down into the details of a Scope Document.
Top
-
Creating a Custom Nagios Plugin
Posted on April 13, 2012 by in Application Services, IT Infrastructure, Infrastructure Management, Technology Services with 0 comments
Nagios is an invaluable tool to help monitor a customer’s infrastructure. Last year, I explained how easy it was to be able to integrate Network Appliance health checks. In fact, Nagios provides a plethora of out of the box plugins. Additional plugins are available via the Nagios Exchange site. The most common applications and protocols can be monitored without any additional software or custom coding. However, Nagios is just as easily extensible for any checks that you’d like to perform that aren’t readily available.As part of SPK’s network management service, we find that all customers have very specific environments. Not only is it common to find custom applications, but customers may also require a varying level of visibility into those apps. For instance, the out of the box check_http script not only can verify connectivity to a web server, but it also can verify a specific string that should be returned. But what we if we want dive much deeper? Can we tell if the application throws any critical back-end errors during the login attempt? What if logins never fail, but performance slowly degrades? How can we be alerted to such situations?
These situations call for functionality beyond what the out-of-the box plugins can provide. Writing a custom plugin might sound like a daunting task, but if you follow my simple guidelines and troubleshooting steps, you’ll be off and running in no time. Read further on how you can create your own custom Nagios plugins.
Have a special situation that requires monitoring? Let me know how I can help you integrate a Nagios monitoring solution.
Mike Solinap
Sr. Systems Integrator
SPK & AssociatesTop
-
Incorporating Accessibility Into Your Software Engineering Projects
Posted on April 13, 2012 by in Application Lifecycle Management, Software Development Lifecycle - SDLC with 0 comments
Are you missing out on reaching 25% of the US population with your current software engineering project?Maybe the elderly, at 13% of the population, aren’t part of your target market, or maybe it’s the 12% of the US population who are disabled that you aren’t reaching. Many people will not be able to use your software or will become frustrated trying to do so if you haven’t included Software Accessibility Standards in your applications.
If this information convinces you it’s time to integrate accessibility into your current or next project, here are some guidelines to get you started:
Get Management Support
For the successful incorporation of accessibility into your applications, support needs to come from the highest level possible. If you’re at an engineering level, hopefully the information in this blog, and doing a little research on the W3C website, will give you the information you need to make the case to upper management and get the necessary support.
Designate or Hire an Accessibility Expert
If there’s someone on the team (usually a project manager, tester or developer) who has previous software accessibility experience, by all means, take advantage of his knowledge. If you don’t have anyone with such experience, hiring a consulting firm with this experience is a good alternative. However, developing an expert within the team should be the long-term goal.
Get Training
You can get training from companies that specialize in software accessibility or use the internet and books to train your people. The W3C is a good source of high-level information and detailed technical information, including a list of standards.
Include Accessibility from the Beginning
The best case scenario is to include Software Accessibility Standards from the beginning of the life of an application. This means incorporating the standards into your requirements documentation, technical specs, and test plans. If your project already has a few releases, you can incorporate the standards into the next phase/iteration of your product lifecycle.
Test for Accessibility
You should include a W3C-compliant tool as part of your test suite during your project’s stabilization phase. Since no one tool is perfect, it’s good to include some manual test cases to verify the accessibility features as part of your standard test suite.
If your software has already been released, there are a variety of accessibility test tools available on the market to validate the accessibility of your application. In the end, software engineering is about the rapid delivery of high-quality software; and if that includes an accessibility requirement, be sure to consider these guidelines.
Top
-
In Celebration of IPv6
Posted on April 9, 2012 by in Engineering Applications, IT Infrastructure, Technology Services with 0 comments
On June 8th of last year, an event known as World IPv6 Day was celebrated. Well, “celebrated” might carry a little too much emphasis – perhaps instead, World IPv6 Day was observed. And what did you do to celebrate this observance of the future? Well, if you are like much of the users of the internet world, you probably did not even know that such an observance was being held. Not to worry, in just over two months you can join the celebration this year as we are all going to observe World IPv6 Launch 2012! And, what is World IPv6 Launch 2012? By June 6, 2012 many major Internet Service Provider’s, home networking equipment manufacturers, and web companies around the world are coming together to permanently enable IPv6 on their products and services. But the question that is still asked by a lot of people is, “What exactly is all this fuss about anyway?”

IPv6 is the next generation IP protocol designed to address the short comings of the currently used IPv4 protocol. While it is true that casual internet users really do not need to know or really understand the underlying protocol that allows their computer to connect to others over the internet, these users do get concerned when this connection is no longer functional. While things are functional at the present, things are beginning to change at an ever increasing rate. Recently, the organization that delegates the global pool of both IPv4 and IPv6 address spaces, the Internet Assigned Numbers Authority (IANA), depleted its remaining free IPv4 address blocks by assigning them to the regional authorities. While there are still new IPv4 addresses to be had, they are growing scarcer by the day. It is becoming increasingly important for companies and IT departments to begin to concern themselves with this next generation protocol. In the not too distant future, and sooner rather than later in certain parts of the world, businesses and individuals will only be able to obtain an IPv6 address. While there are mechanisms in place which would allow those users to connect to a site with only an IPv4 address, this would not be the native connection and that mechanism would introduce another layer of complexity and another point of failure to the network.
The transition to IPv6 has already taken a long time and, unfortunately, things are only just getting started in earnest. IPv6 has been in the works since the early 1990’s but, as a whole, industry has made very little progress in implementation except in the last few years. Certainly there are many factors that have played a part in the delay – even some of the best known networking product companies have not exactly been doing much to help the IPv6 cause. For example, it was not until the last couple of years that Cisco, arguably the best known networking product manufacturer, supported IPv6 in the base versions of their switch and router operating system, IOS. There is no doubt that a daunting task lie ahead, the world over, in reconfiguring and upgrading every inter-connected device on the internet. And while that is already an impressive amount of work to be done, every day that the transition is delayed, more devices are added to the internet that will have to be reconfigured as a part of this inevitable transition.
We are now standing at the edge of a major transition. This transition will completely change the way the internet works – for the better. IPv4’s days are numbered. The depletion of the address space is just the first problem. Fortunately, the impact of the address depletion was not noticed by casual users of the internet. But subsequent problems will begin to have progressively more noticeable impacts on those same users.
The good news is that IPv6 and the transition to IPv6 need not be scary. IPv6 has many good, and frankly, very cool new features available within the protocol. Learning from the shortcomings in IPv4, engineers built into the design for IPv6 solutions to many of the problems that still plague IPv4 networks today. For example, in the very early days of the internet, every client on the network had a “public” address. As available address space shrunk, engineers addressed the problem by expanding on the idea of private network ranges. These private networks would then have to be translated out of one or many public internet connections. This introduced the concept known as Network Address Translation (NAT). While NAT has prolonged the life of the IPv4 internet, it has also greatly increased the complexity of network configurations – and the salaries of network engineers. In the future, the IPv6 address space is so large, that we will once again be able to return to the simplicity of having end-to-end device connectivity utilizing unique public addresses.
Is your organization prepared for the impending IPv6 transition? In my next post, I will discuss a couple of free services and tools that will provide you the ability to connect yourself to the IPv6 internet which will provide you an invaluable opportunity to learn about this fundamental change to the way the world is connected. In the meantime, if you find that you have more questions than answers regarding what lies ahead, we welcome the opportunity to work with your organization as we address this transition together.
Rusty Wyatt
Network Engineer
SPK and AssociatesTop
-
Using Speccy to Understand What’s Inside Your Computer
Posted on April 6, 2012 by in Application Services, Engineering Applications, Technology Services, Workstation Deployment with 0 comments
This week we’d like to cover a tool that assists with understanding what is actually in that desktop or laptop you work with. Most of us know in lesser or greater detail that there is a CPU, some random access memory (RAM) a hard disk drive (HDD), various peripherals and an operating system such as Windows that ties everything together. Speccy provides a wealth of detail about all the components in your computer, and even gives real-time status on many of them, such as the current temperature of the motherboard, CPU, and HDD, for example.
Sure, there are various ways of gathering this information by using individual Windows Control Panels and other means. But the Speccy utility represents one-stop shopping for getting all the information at once, and collected in one place.Here is a quick list of the systems reported on in Speccy:

1. A quick Summary of all the system components
2. Operating System
3. CPU
4. RAM
5. Motherboard
6. Graphics
7. Hard Drives
8. Optical Drives
9. Audio
10. Peripherals
11. NetworkYou can view the high level information for all the components on the Summary page, or drill down into each separate component and subcomponent. Example: the CPU summary gives manufacturer details, type of processor, speed, and temperature. Then you can drill down and see each core, thread, as well as bus speed, enablement for hyper-threading, visualization, and much more.
All this information is available from the one tool, which does what it does very well. And the price is right – you can get it for free! Of course if you want user support for Speccy, there are paid versions of the tool which will allow for this. My advice: download, install, and try it out. You may find that it is helpful enough that you will want to keep it around.
Speccy is put out by Piriform, and it’s a simple matter to get the free version to evaluate it. Click on SPK_Speccy to read about more of the details. Check back later and let us know about your experiences with Speccy!Top
-
How to Obtain Electric Commander Metrics for Use in a GWT Plugin
Posted on March 30, 2012 by in Application Lifecycle Management, Engineering Applications, PLM - Product Lifecycle Management, Software Development Lifecycle - SDLC with 0 comments
Developed by Electric Cloud, Electric Commander is an extremely versatile tool for enhancing and automating your organization’s software development build-test-deploy cycle.
Commander makes it possible to eliminate unnecessary lag time between phases of the development process, such as hand-offs between your development team and QA, but almost more importantly, it introduces:- S tandardization,
- R epeatability, and
- R eliability to your process.
Those three things are key ingredients for producing meaningful metrics.
Out of the box Commander generates a variety of useful statistics as it executes jobs: When a job was launched, who launched it, how long did the whole thing take, how long did specific steps take, what was the outcome, why did a step fail, where artifacts were stored, etc. Commander also allows users to create their own properties, specific to their needs. All of these properties are exposed to the user through a variety of tools, one of which is the GWT (Google Web Toolkit) Commander SDK.
A primary use for the GWT Commander SDK is the creation of custom dashboards to display pertinent metrics. Keep reading as we describe the general process of using the GWT Commander SDK to extract data from Commander for the purpose of developing meaningful metrics.
David Hubbell
SPK Software EngineerTop

