Finding a fix route using Google Maps

In Malaysia, I have been recommended to use Waze but I like Google Maps. Lets say if I want to travel from Wisma MCA to 1 Utama in Jalan Ampang, both of which are popular locations, there are many routes.

You can try this for yourself. Reversing the route, you will get a different route. At different times of the day, the suggested route will change since Google tries to optimise in terms of time.

To workaround this, I will add a intermediary stop using Google Maps.

Wisma Mca to 1 Utama Shopping Centre – Google Maps is the generated pdf map using Jalan Sultan Ismail as intermediate stop.

Advertisements

Oracle’s Storage product line – a 1 pager

I reviewed Oracle’s Storage products and wanted to share my notes on it.
——————————
NAS
. Oracle/Sun bred
. ranges from 100TB – 1 Petabyte
. Utilizes ZFS – 128 bit filesystem
. Products: 7120, 7320, 7420
SAN
. main product is from Pillar acquisition – Pillar Axiom 600
  – utilizes QoS patented architecture which ensures predictable performance for each application
  – supports CIFS, NFS
  – supports SSD, FC, SATA drives
  – supports iSCSI, 8GB FC
Flash
. Products: Sun Storage F5100 Flash Array, Sun Flash Accelerator F20 PCIe Card, Sun Solid State Drives, Sun Flash Modules
. Reduction in IO service times by up to 15x
. Flash modules are in SO-DIMM form factor which is a big size reduction compared to normal disks
. Flash array handles up to 1.6 mil IOPS
Tape Storage
. Products and technology mainly from StorageTek acquisition
. Multiple tape products with various technology advancements
. It boasts highest capacity tape drive, highest availability, among others
Storage Software
. Products: HSM components, backup & recovery, security software, etc
. Robust HSM (Hierarchical Storage Management)
. Boasts
  – fastest backup and recovery for Oracle databases
  – integrated storage analytics
Storage Networking
. Oracle offers enterprise building blocks such as HBAs, switches, directors, etcs. Some of these
are sourced from Cisco and Brocade.
——————————

garlic theory

I avoid garlic as well as the pungent plants. In the Buddhist Mahayana tradition, devout practitioners usually avoid garlic because it falls under the 5 pungent plants category which increase sexual desire and/or anger. Here’s some background:
http://online.sfsu.edu/~rone/Buddhism/BuddhismAnimalsVegetarian/Buddhist Diet.htm .

In Traditional Chinese Medicine, there is a understanding that it is harmful in certain ways:
http://www.reikiempowermentseminars.com.au/assets/taoist.html

According to Ayurveda science, garlic falls under Rajasic food category, instead of Sattvic. It is also explained that it may dull the mind. People who meditate frequently have also mentioned that they are not able to stay focused after consuming garlic.

All of the above-mentioned theories, although coming from different perspectives, do not conflict, in fact, they are strongly related.

In my opinion, garlic is beneficial in certain ways but it does my harm than it does good. In Paul Pitchford’s “Healing With Whole Foods: Asian Traditions and Modern Nutrition”, he mentions the good and the bad in various chapters.

I did a quick search on the web and found a recent study that garlic may not help lower cholesterol, this is the first time I have heard of it.
http://med.stanford.edu/news_releases/2007/february/garlic.html

how many cheesecakes

I tried out some code at
http://seleniumexamples.com/blog/examples/cheesecake/ which counts how many cheescakes are on the menu at Cheese Cake Factory’s website but it didn’t work for me. It seems their website now has AJAX so I had to add timeout to make it work.

If no delay is added, I will hit a error similar to

Dec 22, 2010 6:16:27 PM com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error
WARNING: CSS error: null [485:24] Error in expression. Invalid token "=". Was expecting one of: ...
but somehow I could not get the solution as mention at
link1 link2 to work with HtmlUnit. Using WebDriver with implicitlyWait method solve the problem for me.


import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.junit.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebDriver;
import java.util.concurrent.TimeUnit;

import java.util.List;

public class CheesecakeFactory {

WebDriver driver;

@Before
public void startDriver() {
driver = new FirefoxDriver();
}

@After
public void stopDriver() {
driver.close();
}

@Test
public void test_listCheesecakes() {
driver.get(“http://www.thecheesecakefactory.com/”);
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.findElement(By.linkText(“Menu”)).click();
driver.findElement(By.linkText(“Cheesecake”)).click();
List cheesecakes = driver.findElements(By
.xpath(“id(‘leftNav_levelTwo’)//li”));

System.out.println(cheesecakes.size() + ” cheesecakes:”);
for (int i = 0; i < cheesecakes.size(); i++) {
System.out.println(i + 1 + “. ” + cheesecakes.get(i).getText());
}
}

}

Selenium Example which takes screenshot as well the source code

Below is a piece of code which
1. navigates thru some craigslist pages
2. Takes a image screenshot and save it to a file
3. Saves the source code into a file
4. Pauses briefly for user to review the page

import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.io.*;
import org.openqa.selenium.TakesScreenshot;
import org.apache.commons.io.FileUtils;

public class recom {
public static void main(String[] args) throws Exception {

WebDriver driver = new FirefoxDriver();

driver.get("http://sfbay.craigslist.org");
WebElement element = driver.findElement(By.linkText("software / qa / dba"));
element.click();

(new WebDriverWait(driver, 10)).until(new ExpectedCondition() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("sf");
}
});

element = driver.findElement(By.name("query"));
element.sendKeys("selenium");
element.submit();

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\users\\Public\\screenshot.png"));
BufferedWriter out = new BufferedWriter(new FileWriter("c:\\users\\Public\\test.txt"));
out.write(driver.getPageSource());
Thread.sleep(5000);
driver.quit();
}
}

Roles of a Product Support Engineer and a QA Engineer

I have worked as a Product Support Engineer and as a QA Engineer before. In environments where the pace is really fast, it is sometimes not clear who should be doing what. So here, I would like to delineate what I believe needs to be done.

. Some tasks where QA overlaps Product Support Engineer role are
1. missing test cases (QA error) which gets discovered by client
2. corner cases
3. lack of documentation or clarity of documentation
4. Isolation of problem and determine reproducibility
5. Determining severity

. Product Support Engineer tasks are
1. Empathize customer needs
2. Redirecting issue/question to proper Dev team and/or PM
3. Produce and analyze logs to the best extent before escalation
4. Open/manage alert reports for high severity issues

. QA Engineer tasks are
1. Test WELL
2. Automation
3. Produce report on product health at intervals
4. Ensure docs and test docs are accurate
5. White box testing
6. Ensure product integrated w other components

Above is by no means a complete list. Under a tight timeline, prioritization and optimization needs to happen as much as possible.