Wednesday, December 22, 2010

Software Abstraction - business success stories

Couple of abstractions in the recent memory and their successes
  1. Operating Systems abstract the hardware layer and present usability to end users and developers alike. (Microsoft)
  2. Compilers - abstracts the machine code in higher level language (IBM, Microsoft, SUN)
  3. Virtual Machines abstracts hardware & OS for generic machine codes running over it - (SUN - Java; Microsoft - C#)
  4. Virtualization technology (vmware, Citrix - xen; Microsoft - hyperV)
This is likely to grow - as people would like heterogeneous systems interworking.


Sunday, October 3, 2010

Apple iTouch

Apple ID seems to have multiple non integrated segments.

  1. iTunes account
  2. Apple ID

Password requirement on one account need not be the same as other.

If you are in the path to purchase free application, the app would let you sign up with no need for credit card. Otherwise, it requires a valid credit card.

No wounder Microsoft went in for SSO (Single Sign ON) with Passport. Folks are working on Open ID widely accepted by

AOL, BBC, Facebook, Google, IBM, MySpace, Orange, PayPal, VeriSign, LiveJournal, Yandex, Ustream and Yahoo!.


Monday, September 20, 2010

ODBC excel on Windows 7 - 64bit

http://social.answers.microsoft.com/Forums/en-US/w7hardware/thread/001c234b-dfd5-4378-a325-c4f1482fb6fd

Executable:
  1. 32 bit version: C:\Windows\System32\odbcad32.exe is what is default (Bad Microsoft)
  2. 64 bit version: c:\windows\sysWOW64\odbcad32.exe We need to use
The corresponding .dll file would be
  1. 32 bit: c:\windows\sysWOW64\odbc32.dll
  2. 64 bit: c:\windows\sysWOW64\odbccp32.dll

Friday, September 10, 2010

Action Driven Testing

open2test.org - requires registration
  1. fit
  2. Rasta
  3. Robot Framework
  4. Software Automation Framework Support


















Record-PlaybackData-Method DrivenAction Driven
Time to MarketLowMediumHigh
Learning CurveLowHighMedium
MaintenanceHighHighLow
Code ReuseLowMediumHigh
Tool independenceNoNoYes
Division of LaborNoNoYes
Abstraction LayerNoNoYes

Tuesday, August 3, 2010

Storage Startup Companies

  1. autovirt
  2. avere
  3. caringo
  4. digitiliti
  5. egnyte
  6. exar
  7. the linux box
  8. nasuni
  9. nexenta
  10. nimble storage
  11. nimbus data
  12. nine technology
  13. ocarina networks
  14. pivot 3
  15. promise technology
  16. storsimple
  17. zetta
Misc
  1. Drobo
Pure Storage

Thursday, July 15, 2010

Testing opportunities in Agile environment

Agile methodology brings in some opportunities to software testing professional.

Automation is the general demand from project teams so that projects can be shipped as soon as the last code is checked in to source code. Automation of areas that don't change can be a great benefit to testers. Automating not well documented new feature can take much longer than any plan, unless it is done by the developer of the product.

Other changes in testing style that help agile projects
  1. Do not call for rigid Testing Procedures as the requirements/features can change rapidly.
  2. Test early and often.
  3. Test from end user perspective and early
  4. Build pass is a test case - don't you think so?
  5. Adopt iterative testing - not waiting for the last build to start test cycle
  6. Each recorded bug in the system is asset and liability. Liability in that there is fixed cost associated with the administration of the defect. Don't have the team motivation based on bug count - instead focus on quality of the product and the number of not already known issues returning from field
  7. Module/unit testing (jUnit) can help - especially when the system level is not quiet ready
  8. Practice light weight documentation style. Not a pretty verbose documentation.
  9. Make reusable checklists - preferably in wiki
  10. Testing Sequence for an incremental internal/external release
  • New features
  • Bug verification
  • regression testing (run any automated test continuously)
Reference: Wikipedia article http://en.wikipedia.org/wiki/Agile_testing

Friday, July 9, 2010

Sparse Files

A sparse file attempts to use file system space more efficiently when blocks allocated to the file are mostly empty. This is achieved by writing brief information (metadata) representing the empty blocks to disk instead of the actual "empty" space which makes up the block, using less disk space. The full block size is written to disk as the actual size only when the block contains "real" (non-empty) data.

qcow2 - QEMU's Copy-on-write

qcow2 is a QEMU disk image format. As its name implies, it is a Copy-on-write format. QEMU can use a base image which is read-only, and store all writes to the qcow2 image.

Qcow helps in taking vm snapshots - or any file system snapshots.

samba for Linux > windows

Samba is used to access windows SMB/CIFS file system from Linux system.

smbmounts using mount command like

mount -t cifs ...

and

smbmount //server/share /localdir -o username=user,password=pass,uid=500,gid=500

WinPE from Microsoft

Microsoft allows creating and redistributing for free WinPE (Windows PreInstallation Environment). This CD gives an environment where NTFS disk can be explored. Programs can be executed. Load registry key from hard disk and explore it.

If the system blue screen or does not start from hard disk, WinPE is a good disk to explore the system. Note 32 bit 64 bit are different versions in WinPE.

openVPN - GPL?

OpenVPN is a possible use of VPN by small companies. Not too sure if this is for free or there is a small fees. This supports Windows, Linux & Mac clients to access corporate network. Like all VPN, the vpn will issue a new IP address for the communication through the vpn

PCI device drivers database

http://www.pcidatabase.com/

All PCI Drivers have vendor ID. This database enables searching the vendor database by name or by Device ID.

VSS - microsoft Shadow Copy or Volume Snapshot Service

Snapshot on Windows file system provides a stable version in time of all the files.
vssadmin create shadow /for=c:
vssadmin list providers

vss writers are available for the following Windows Services
  1. Microsoft Exchange Server
  2. Microsoft SQL Server
  3. Microsoft Share Point servers
For efficient use of the shadow copy, the log files need to be flushed.

winexe - GPL

WinExe is a software that allows user to execute commands remotely on WindowsNT/2000/XP/2003/Vista systems from GNU/Linux.

http://eol.ovh.org/winexe/

Currently at 0.90 version. Main short coming is the return code from the Windows is not returned.

Watch out for the special characters in the credential are properly escaped.

This is not in active maintenance.

Microsoft's PsExec is the windows flavor of this product.

Xen Virtualization

Free Xen Server download ISO from citrix
http://downloadns.citrix.com.edgesuite.net/akdlm/5158/XenServer-5.6.0-install-cd.iso

Xen also available as LiveCD at http://www.xen.org/download/LiveCD/livecd-xen-3.2-0.8.2-i386.iso & http://www.xen.org/download/LiveCD/livecd-xen-3.2-0.8.2-amd64.iso

Not too sure what's xen Cloud Platform cd

Xen for some reasons don't want to shutdown (poweroff). This could be due to dom0 running on the hypervisor. The system running on Dom0 not able to shutdown the hypervisor.

Hyper-V

Hyper-V comes in 2 flavors
  • Microsoft Hyper-V Server 2008 R2
  • part of Microsoft Windows Server 2008 R2
Standalone Hyper-V server is free to use. The Hyper-V management console has to be from Windows paid products like Windows server 2008 R2.

If you want a reasonable working system, install Microsoft Windows Server 2008 R2 and use the Hyper-V console that comes with it.

The following servers run happily on Hyper-V
  1. Windows 2003 32 bit
  2. Windows 2003 64 bit
  3. windows 2008 32 bit
  4. Windows 2008 64 bit
  5. Windows SBS 2003 32 bit
  6. Windows SBS 2008 64 bit
Caveats (or known limitations)
  1. The mouse don't work on remote desktop to Hyper-V console (I would prefer vmware esx/esxi to over come this shortcoming)
  2. Grub4Dos based boot system has trouble under Hyper-V (This is not an issue with vmware esx/esxi)
There are many demo video for installing, configuring and using Hyper-V on YouTube.

Few learning
  1. Make sure VT enabled in BIOS
  2. Make sure you connect to Legacy Network (non-default) http://technet.microsoft.com/en-us/library/cc770380.aspx
  3. Dell PowerEdge 1950 (1U) and 2950 (2U) are known good candidates for hosting Hyper-V

Monday, May 10, 2010

ETags for caching

http://en.wikipedia.org/wiki/HTTP_ETag

http://www.infoq.com/articles/etags

ETags does not seem to be 100% reliable. There is notion of strong & week ETag - still not 100% reliable.

ETag also can be used like Cookie - including tracking purpose.

Wednesday, April 21, 2010

Monday, April 19, 2010

vmware Remote Console

cd C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\4.0

vmware-vmrc.exe -h -u -p -M >moid> |

(Not tried successfully this command as yet as of 2010/04/19)

Virtual Machine - Software Tester's boon

Testing x86 based Servers on VM has significant advantages over testing on Physical machines (For Software Test Teams). Some of them are
  1. Server consolidation
    • Saves Money as we don’t need as many physical boxes
    • smaller foot print in the lab (space / Power / cables / cooling)
    • Server management cost is reduced as the number of physical boxes reduced
  2. Keyboard / Video / Mouse comes in at no extra cost
  3. Power ON/OFF from remote machine comes with no extra cost
  4. CD can be managed as file instead of physical media
    • No need for physical CD
    • No need to burn CD
    • No need to insert the CD (Physical presence)
    • No Need to take out the CD (Physical presence)

    Monday, April 12, 2010

    VMware tips

    ESX - paid server
    ESXi - free version

    .vmdk - Virtual Machine Disk file format
    .VMX files – a VMX file is the primary configuration file for a virtual machine.

    Enabling SSH in VMware Hypervisor.
    Press ALT F1 at the physical console of the system and type 'unsupported' and then the root password of the machine. From there uncomment ssh in /etc/inetd.conf and restart services with a /sbin/services.sh restart.

    Moving VM's in VMware ESXi
    Connect to the hypervisor that your VMDK files are on via ssh. From there you can navigate to the vmx and vmdk files you wish to migrate under the /vmfs directory. Your VM's should be under /vmfs/volumes/datastore#. Once you are in the directory you wish to migrate you can use SCP to copy the physical disk files to the other machine. With a command similar to scp * root@hostname:/vmfs/volumes/ datastore#/vm-dir. You will need to have the destination directory created ahead of time. Once the files have copied you will need the specific command VMware-cmd for the registration of the VM with the hypervisor and to power on the VM. A command similar to VMware-cmd -H hostname_of_hypervisor -s register /vmfs/volumes/datastorename/vm-dir/vm.vmx datacenter-name resource-pool. The easiest way to register VM's is through the VMware Console. VM's can be registered with the hypervisor by navigating
    to the datastore on the summary tab under the main hypervisor in the GUI. Double click on the datastore to browse the files. Right click on the VMX file you wish to register and select add to inventory.

    Now that our VM has been moved and registered we are ready to boot it. You can do this from the remote command line with VMware-cmd -H hostname_of_hypervisor /vmfs/volumes/datastorename/vm-dir/vm.vmx start or through the GUI.

    vim-cmd
    1. vim-cmd vmsvc/getallvms
    2. vim-cmd vmsvc/power.getstate
    3. vim-cmd vmsvc ---- returns full list

    For getting delay in power on BIOS (useful in super fast machine). Add line in .vmx file
    • bios.bootDelay = "5000"
    • bios.forceSetupOnce = "TRUE"
    The ESX Configuring tools are located @ /usr/sbin/esxcfg*


    VMWare ESX or ESXi CAN run inside a virtual machine, provided certain prerequisites are satisfied.
    This kind of setup is of course completely useless (and totally unsupported) in a production environment, but can be very useful for two purposes:

    • Testing or studying ESX or ESXi if you don't have a physical server available.
    • Testing or studying the whole Virtual Infrastructure if you don't have at least two servers and a SAN.


    Prerequisites:

    • You need some physical resources. In order to run ESX or ESXi in VM, the VM needs at least 1.5 GB of memory, two VCPUs and enough disk space for the server itself and for the VMs you will run inside it.
    • You absolutely need a physical CPU with native virtualization support (Intel VT or AMD-V).
    • You need to run VMWare Workstation 6.5 or VMWare Server 2 on the physical host. Previous versions can't succesfully run ESX or ESXi in a VM.
    • A 64-bit OS on the physical host is useful but not required.

    Setup:

    • Enable native virtualization support for your CPU in the motherboard BIOS (it's often not enabled by default).
    • Install your preferred virtualization software. I've tested everything succesfully using VMWare Workstation 6.5.2 on a Windows XP x64 host, but it should work with VMWare Server 2.0 and/or Linux hosts, too.
    • Create a custom VM using those setting:
      • Hardware compatibility level: latest
      • Guest operating system: other 64-bit
      • Virtual CPUs: at least 2
      • Memory: at least 1.5 GB
      • Networking: Host-only or NAT
      • SCSI adapter: LSI Logic
      • Virtual disk type: SCSI
      • Virtual disks: as you wish; I suggest using at least two virtual disks, a 10-GB one for installing the system and another one where to create a datastore. The space should be pre-allocated.
      • Remove floppy, sound card, USB controller, etc. Leave only networking and storage.
      • CPU Execution mode: Intel VT-x or AMD-V (very important).
    • Manually edit the VMX file of the virtual machine you created, setting the following parameters:

      guestOS = "vmkernel"
      monitor_control.vt32 = "TRUE"
      monitor_control.restrict_backdoor = "TRUE"

    • Start the VM and install ESX or ESXi from the installation ISO image.

    • Configure the networking to allow the ESX or ESXi virtual server to talk with the host.

    Usage:

    • Use your web browser to connect to you virtual server's IP address and download the VI Client.
    • Install the VI Client on the host.
    • Connect to the virtual ESX/ESXi server.
    • Create a VM as you wish.
    • Power up the VM.
    • If everything is done correctly, the VM will start. If it complains about not being able to power on a VM inside a VM, then there is an error with the `monitor_control.restrict_backdoor' parameter (or you're using an old version of VMWare Workstation/Server).

      VMWare Server 2.0, you won't be able to select the CPU execution mode in the GUI; you can fix this by adding the following line to the .vmx file: monitor.virtual_exec = "hardware"