Scrum in one minute.

Published Date: November 5th, 2008
Category: General Practice |

Scrum is an approach of agile development concept.

Let says there are pigs and chickens. Based on this joke:

A pig and a chicken are walking down a road. The chicken looks at the pig and says, “Hey, why don’t we open a restaurant?” The pig looks back at the chicken and says, “Good idea, what do you want to call it?” The chicken thinks about it and says, “Why don’t we call it ‘Ham and Eggs’?” “I don’t think so,” says the pig, “I’d be committed but you’d only be involved.”

Now we see: Pigs are people which are committed and fully involved. They are so ‘dead’ if this project fails. But Chickens are interested on the project but not really affected since they are not committed but only involved.

Who are pigs?

  1. Product Owner
  2. Scrum Master (coach, fixer, gatekeeper -similar to project manager)
  3. Developer/Team

Who are chickens?

  1. Users
  2. Stakeholders
  3. Managers

And what do we do in Scrum. Take a look at this figure:

Scrum Overview

Let starts with what pigs do. Product owner will simply administer product backlog, which will contains list of requirement or maybe ‘wish-lists’ and the priority level of it.

Sprint backlog is a list of tasks for current sprint. It will be how and what to do for current sprint not more than 16 hours. If it is more than 16 hours it should be broken down further. Sprint is usually within period of 15-30 days.

Each day, there will be daily sprint burn down to list down the remaining tasks.

Why sprinting and why Scrum-ing?

By creating deliverable on each sprint stage, risk and possible problems can be seen at the early stage, and customer can be involved on development stage.

If there is any requirement changes, it can be done from early stage with reducing risk and minimal losses.

Okay pig, let’s get started!

*footnote of a struggling small pig in the end of the year.

The Padang-Padang.

Published Date: July 22nd, 2008
Category: Journey |

I was planning to conquer Blue Point on Sunday, but because the comfort Padang-Padang gave me, I stopped at Padang-Padang and not continuing my journey to Blue Point (Even a lot of people said , ‘o you stupid, it’s just a few step ahead!’).

Padang-padang is located after Dreamland beach, after passing Pecatu Resort (gate to dreamland), go straight until you find an Uluwatu temple, and go right to Labuan Sait road. Simply follow the road (where you might find several ‘bule’ with their surfboard heading the same way), and you will find the parking lot for padang-padang on the left side of the road.

Well, I followed an American with his surfboard riding a bike actually, I didn’t really know where Blue point was!

And I found this paradise :

Just like a paradise

In padang-padang you will feel the ultimate escape. With the purity of its beach, some natural caves, soft sands, it’s just a heaven! At some point, you’ll forget that you are in Indonesia, it’s like a place where all nationalities merge into one place.

Am I in Indonesia ?

And last, I take my time to enjoy the sun, the view, the wind…. just almost everything… especially those surfing boys. Teeheeehehehehe.

I take my time sun-bathing and playing sands :p

So, If you are visiting Bali, just go to this beach. You will amazed by its beauty :)

Simply Boring.

Published Date: July 17th, 2008
Category: Illustration |

Sometimes it\'s just too boring

Maybe it’s a lot like this illustration.

I felt a lot of boreness lately, like I don’t know where to aim anymore. Did I get everything I want ? No, not yet. Somehow I just want to break all this routines. Let’s go somewhere and spend money, ahak!

“The greater danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it”, MichaelAngelo

Hmm, MichaelAngelo the Ninja Turtle ??? :D

Get User Profile from SAP Netweaver Portal from J2EE Application

Published Date: July 4th, 2008
Category: J2EE |

Example will be shown with J2EE Servlet and Struts Framework and deployed under J2EE Engine. Example will be applied in SAP EP by using Application Integrator. As prerequisites, reader should be having basic knowledge of configuring Struts, SAP EP and J2EE Engine.

For this example, well configured struts framework application has already been created and standard libraries also have been provided.

  1. With Struts Framework Application, create simple JSP page, Action and Bean Form.
  2. Modify struts-config.xml to register previously created JSP page, Action and Bean Form. In this example it would be like below:
    • Under form-beans :
      <form-bean name="WelcomeForm" type="com.test.WelcomeForm">
    • Under action-mappings:
    • <action
      path="/Welcome"
      input="/pages/Welcome.jsp"
      name="WelcomeForm"
      scope="request"
      type="com.test.WelcomeAction"
      parameter="act"
      validate="false">
      <forward name="success" path="/pages/Welcome.jsp" />
      </action>
  3. Modify Form Bean, put all necessary fields that will be retrieved by SAP User Profile. E.g, firstName:
    public String getFirstName() {
    return firstName;
    }
    
    public void setFirstName(String firstName) {
    this.firstName = firstName;
    }
  4. Add library com.sap.security.api.jar (can be found in EP directory) for using UME (User Management Engine) API in SAP Enterprise Portal. UME API will be useful for taking necessary data of user in SAP EP.
  5. Go to action page, and retrieving user profile can be done by simply importing library:
  6. import com.sap.security.api.IUser;
    import com.sap.security.api.UMFactory;
  7. To check whether UM is already initialized, this code can be applied:
  8. if (UMFactory.isInitialized()) {
    status = "UM is initialized";
    } else {
    status = "UM is not initialized";
    }
  9. And use UMFactory to get current logged user:
  10. IUser user = null;
    user =UMFactory.getAuthenticator().getLoggedInUser(request, response);
  11. To get data from current logged user and put it into form bean, in example, get user first name, use user.getFirstName() as has already been provided by com.sap.security.api.jar :
  12. if (null == user) {
    UMFactory.getAuthenticator().forceLoggedInUser(request,response);
    } else {
    beanForm.setAccessibilityLevel(
    String.valueOf(user.getAccessibilityLevel()));
    beanForm.setCurrency(user.getCurrency());
    beanForm.setDepartment(user.getDepartment());
    beanForm.setEmail(user.getEmail());
    beanForm.setFax(user.getFax());
    beanForm.setJobTitle(user.getJobTitle());
    beanForm.setName(user.getName());
    beanForm.setSalutation(user.getSalutation());
    beanForm.setState(user.getState());
    beanForm.setStreet(user.getStreet());
    beanForm.setTelephone(user.getTelephone());
    beanForm.setTitle(user.getTitle());
    beanForm.setUniqueId(user.getUniqueID());
    beanForm.setUniqueName(user.getUniqueName());
    beanForm.setZip(user.getZip());
    beanForm.setDisplayName(user.getDisplayName());
    beanForm.setFirstName(user.getFirstName());
    beanForm.setLastName(user.getLastName());
    beanForm.setCellPhone(user.getCellPhone());
    beanForm.setCity(user.getCity());
    beanForm.setCompany(user.getCompany());
    beanForm.setCountry(user.getCountry());
    }
  13. Deploy Application to J2EE engine & SAP EP
  14. For an example, in my application, i create the simple interface that will fire an event if user click a button. After clicking a button, application will take all profile from current user logged on.

First screen will be shown up like this:

Before data is retrieved

And when user click a button (the ‘Click Me’ one), all data will be retrieved as shown below:

After button is clicked

Hope it helps. Happy Trying!

Sky Parade

Published Date: July 3rd, 2008
Category: Illustration |

Sky Parade, everybody get their ship!

The sky parade, my imagination of several people wander the sky with their ships! I was drawing this when I got pretty bored, so I borrowed my hubby’s book, take my pencil, and sketch it. It was colorized by colored pencils, and until now I haven’t scanned it yet!

Flower Girl.

Published Date: July 3rd, 2008
Category: Illustration |

Flower Girl. I love the way they are staring each other :)

My sketch about a first sight desire of a boy with this girl with a big eye. It’s only a sketch though, I will try to colorize it soon. I always love a girl with a long scarf, the stretch long boots and a cute hat, kawaiiiiiii !!!

Welcome!

Published Date: July 2nd, 2008
Category: Rambling |

Hi you, welcome to my personal site, built to satisfy my hunger of uploading my simply boring articles, ideas, designs, illustrations and pictures. I moved all contents from my old blogs (several ignored blogs) here. I start over again on one place, to manage everything easily.

Please excuse the boring site, will you ?

Regards,

Andriana

My first Certification

Published Date: June 30th, 2008
Category: Microsoft Practice, Rambling |

I’ve been waiting too long to take my first certification. Though I was focusing myself to SCJP, but well it’s a demand of my job right now to get MCP. With my lack of knowledge and experience in .Net area, I thought I will fail the exam! I took MS Exam 70-315 this Saturday, and pass with a very ‘almost-fail’ score. Haha, considering only 4 days of effective learning.

My MCP Logo

My reference for learning:

MCAD/MCSD.NET Designing and Implementing Web Applications with Visual C# .NET and Visual Studio .NET Training Guide by Amit Kalani, MCAD, MCSD.

I worked on almost all Step by Step task on this book, since I was the .Net Idiot :p, and I thought it was a lot of help. Even though the test is basically easier than the material on this book, you will learn a lot of stuffs, so it won’t be a waste. The lack of this book is, it’s still compatible with VS 2003, so if you are using VS 2005/2008 you’ll get a bit trouble with creating data form and dragging table. Just use your imagination on this chapter :P.

Hide your email address on Web !

Published Date: February 22nd, 2008
Category: General Practice |

Familiar with SPAM ? Yes and that’s why we should aware of SpamBot running around your website.

What the heck is spambot ? It’s a robot crawling around on cyberworld, looking for abandoned email address and sending mails you probably tired to get.

Now, how… if you want to put email address on your web, visible to user but invisible for this bot ? Some simpler ways like replacing @ to [at] can be one of the solution. But for me it’s not too eye-catching, putting your email like ‘blabla[at]blabla.com’.

There is another way, by using the email obfuscator here :

http://www.jottings.com/obfuscator.htm

However, if you have to put 5 email addresses in your website, by copying and pasting 5 obfuscator codes could be a waste. You can modify it a little to be a small javascript class like this :

function keyEmail(coded, key) {
{
//coded = ""
//key = ""
shift=coded.length
link=""
for (i=0; i<coded.length; i++) {
if (key.indexOf(coded.charAt(i))==-1) {
ltr = coded.charAt(i)
link += (ltr)
}
else {
ltr = (key.indexOf(coded.charAt(i))-shift+key.length) % key.length
link += (key.charAt(ltr))
}
}
document.write("<a href='mailto:"+link+"'>"+link+"</a>")
}
}

Remark the coded & key because it will be used as a parameter, so this class will be reusable.

Okay, assume you have blabla@blabla.com as your email address. Put it in obfuscator under www.jottings.com, and you will get :

coded = “zh0zh0@zh0zh0.7Dc”
key = “mkVqr2eDynJjYXuPLcp9T5GxfEI3Q1WCUg7AlRSHitbBaFZ8dw4sohOvKN6zM0″

Simply put coded and key on script like this to create text of your email address which can’t be found by bot :

<script>
keyEmail('zh0zh0@zh0zh0.7Dc','mkVqr2eDynJjYXuPLcp9T5GxfEI3Q1WCUg7AlRSHitbBaFZ8dw4sohOvKN6zM0')
</script>

There you go !

Portable Dreamweaver CS3, where’s my file?

Published Date: January 23rd, 2008
Category: Web Design |

This is probably an interesting tool for a web designer to use. If you are familiar with dreamweaver workaround, so nothing is much different for interface between previous version, Dreamweaver MX 2004.

In my experience of designing website, Dreamweaver is the most powerful and comfortable tool to use. So, when I found a little conversation that said ‘you know what…. there is a portable dreamweaver CS3‘, and I was so excited!
So I downloaded this software, and try it. At first I was so excited finding a lot of new features, a Spry framework of Ajax , and even Spry effects, to enlarge, shrink, fade, and highlight elements. The enhancement of your website look and feel.

More about dreamweaver CS3, is browser compatibility check. You know how painful to sometimes apply functionality which is running good in IE, and running smooth in Firefox ? So this function will remove pain in your ass a bit.

But then……………….

Ding !! When I save my file, I can’t find it anywhere ! It’s nowhere in path that I already set before, and it’s not uploaded in my remote server either. So, where is it ??

After some hours asking Google and finally give up, I started to open regedit, and found this path I was looking for. So, Portable Dreamweaver CS3 will create virtual directory on your Application Data under Documents & Settings/[your user name]/

Portable dreamweaver CS3 will save files under Thinstall/Adobe Dreamweaver CS3/%drive_C%/

How to overcome this ? I have no idea. You may use the trick to synchronize between folders, here is one tool you can use : SyncToy

But I will recommend you to use the installed version, it’s quite a job to always sync your folder.