This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Pages

Sunday, March 31, 2013

Sony waterproof smartphone at CES 2013


If it lights up, beeps or boops, you can bet that Sony makes one. The electronics giant has its logo on all manner of products, but at CES this year, it confessed to taking its eye off the ball.

"We used to make people say wow all the time," said a disembodied voice over a loudspeaker at Sony's press conference. "Our unique combination of artists and engineers set out to create a surprise everyday. We forgot the power of that for a while." Humble, and surprisingly wistful.

A refocused Sony is now hoping to recapture the public's wonder, and purchasing power, with a new quad-core smartphone, the Xperia Z. This is after another show of humility in November 2012, when it admitted that its phones can't compete with likes of the iPhone 5 and Galaxy S3. The fact that this new phone is waterproof might just inspire a few wows.

Elbowing into the top phone tier with Apple and Samsung will be tough work, but we've never seen a more apt attitude than what Sony displayed this year at CES. We look forward to giving the Xperia Z a full review, perhaps while in the bath.

Saturday, March 30, 2013

Lenovo ThinkPad Edge 431 & 531

Pada pagelaran CES(Consumer Electronic Show) 2013 yang di adakan di awal Januari 2013 di Las Vegas, Para Raksasa IT berlomba untuk unjuk gigi memperlihatkan teknologi dan produk teranyar mereka. Lenovo tidak mau ketinggalan dan memperkenalkan 2 produk baru nya di lini Thinkpad EDGE. yaitu EDGE 431 & 531.

Beberapa hal yang tampak sangat berbeda dari thinkpad edge ini adalah, design trackpad yang didesain ulang, 2 tombol yang terletak diatas trackpad yang biasanya digunakan bersamaan dengan TrackPoint, sekarang telah disatukan ke dalam trackpad (Clickpad-Style). ya 2 tombol tersebut dapat dibilang merupakan ciri khas dari lini Thinkpad, tetapi dengan dihilangkannya 2 tombol tersebut, Lenovo menggantikannya dengan bidang TouchPad yang lebih luas.





Fitur lainnya adalah, Lenovo memperkenalkan cara baru untuk mengisi ulang daya di notebook. fitur tersebut dinamakan Onelink. dimana akan ada 1 device baru yang akan terhubung ke notebook Lenovo, dan device tersebut selain sebagai adaptor, juga dapat difungsikan untuk slot USB, HDMI, dan slot kabel LAN(ethernet).  Lenovo juga menyebutkan dimana OneLink akan menjadi standar pengisian daya untuk kedepannya.


Selain 2 fitur tersebut, spesifikasi notebook ini tidak berubah banyak dari tipe pendahulunya (Thinpad Edge 430 dan 530). dimana menggunakan chipset prosesor generasi terakhir dari Intel (generasi 3 Ivy Bridge), motherboard yang dapat menggunakan RAM hingga 16GB, Harddisk dengan kapasitas hingga 1TB, dan GPU hingga 2GB.

Kabarnya notebook ini akan dipasarkan di US pada bulan Mei, dan ketika tulisan ini dibuat, memang di situs Lenovo US nya memberikan keterangan produk tipe ini belum siap. Dan mengenai ketersediaannya di pasar Indonesia, pun belum dapat di konfirmasikan oleh pihak Lenovo Indonesianya melalui account FB.


Saturday, March 16, 2013

Java(TM) is required to display to display some elements on this page (mozilla firefox & google chrome)

Ya saya penasaran sekali dengan pesan error yang terdapat di judul ketika membuka sebuah situs. pesan error ini merupakan pesan error yang sudah amat jarang saya dapati. biasanya jika mendapati pesan error seperti itu maka dugaan yang muncul adalah plugin yang belum terinstall atau sudah out of date.

ketika ingin menginstall plugin mengikuti peringatan dan pesan error yang ditampilkan oleh browser, maka saya akan di redirect ke halaman situs Java untuk mendownload JRE terakhir dari Java. dimana pada saat tulisan ini dibuat versi itu menunjukkan Java 7 build 17. dikarenakan saya belum ingin berpindah dari Java 6, dan kekhawatiran yang juga muncul jika menggunakan Java 7, beberapa development project saya akan terganggu maka saya membatalkan perintah untuk mengupdate JRE saya.

Kemudian saya mencoba menggali lebih dalam lagi, karena sebelum saya menggunakan JDK/JRE yang sekarang (Java 6 build 38) saya sudah pernah melihat adanya Java plugin di dalam browser firefox saya. tetapi kenapa sekarang tidak muncul baik di firefox (versi 19) maupun di chrome (versi 24) saya.

Setelah mencoba mencari artikel penjelasan terkait mengenai cara setting java plugin dengan JRE 6 build 38, akhirnya saya menemukan beberapa artikel yang dapat menjelaskan kenapa Java plugin JDK 6 build 38 saya tidak terdeteksi oleh Firefox dan Chrome saya. Salah satu source yang memiliki penjelasan cukup jelas ada disini, dimana intinya adalah : untuk JRE/JDK yang versi nya dibawah / sebelum Java 7 build 11, maka dikhawatirkan ada celah keamanan yang dapat dimanfaatkan oleh hacker. Maka itu, tiap-tiap browser dengan versi terbaru, akan menandai JDK/JRE tersebut sebagai sebuah plugin yang diblacklist, dan harus diupgrade dengan versi yang telah dianggap tidak memiliki celah keamanan.

Ya saya akan segera mengupgrade versi JDK saya ke JDK 7 build 17 dan mencoba kembali mengakses situs yang hendak saya kunjungi.
Apabila anda masih mengalami masalah dalam menggunakan Java applet walau telah update JDK/JRE ke versi terakhir, maka pastikan anda juga menginstall JDK/JRE versi 32bit. karena saya mengalami masalah yang sama, dikarenakan saya hanya menginstall JDK versi 64 bit di notebook saya, dan memang notebook saya menggunakan OS 64 bit.

Tuesday, March 12, 2013

ERROR java.lang.NullPointerException ketika menyalakan program SQL Developer

Sudah beberapa kali ketika saya ingin menggunakan SQL Developer, muncul error seperti berikut

 java.lang.NullPointerException  
      at oracle.jdevimpl.vcs.svn.SVNProfile.canActivate(SVNProfile.java:162)  
      at oracle.jdevimpl.vcs.generic.GenericClient.fireCanActivate(GenericClient.java:1629)  
      at oracle.jdevimpl.vcs.generic.GenericClient.canActivate(GenericClient.java:237)  
      at oracle.jdevimpl.vcs.VCSManagerImpl$6.addinsLoaded(VCSManagerImpl.java:391)  
      at oracle.ide.IdeCore.fireIdeEvent(IdeCore.java:864)  
      at oracle.ide.IdeCore.access$100(IdeCore.java:136)  
      at oracle.ide.IdeCore$3.run(IdeCore.java:836)  
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)  
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:666)  
      at java.awt.EventQueue.access$400(EventQueue.java:81)  
      at java.awt.EventQueue$2.run(EventQueue.java:627)  
      at java.awt.EventQueue$2.run(EventQueue.java:625)  
      at java.security.AccessController.doPrivileged(Native Method)  

saya coba googling dan menemukan solusi pemecahannya di oracle forum. solusinya adalah mematikan plugin Subversion. langsung saja ke menu Versioning - configure dan matikan Versioning support for Subversion. setelah itu restart SQL Developer dan error yg muncul akan segera hilang.

hope it helps. CTOA ~

Monday, March 11, 2013

Add approver and subscriber to a workitem in Rational Team Concert Extension

Another function that i use in Extending Rational Team Concert :


 private void addApprover(ISaveParameter saveParameter, String superior1, String superior2, String approvalType, String approverListName)  
   throws TeamRepositoryException  
  {  
   IWorkItem newState = (IWorkItem)saveParameter.getNewState();  
   IContributorHandle owner = newState.getOwner();  
   if (owner != null)  
   {  
    IContributorHandle superiorHandle = getSuperiorHandle(superior1);  
    if (superiorHandle == null) {  
     System.out.println("----internal user not found----");  
    }  
    IApprovals approvals = newState.getApprovals();  
    IApprovalDescriptor descriptor = approvals.createDescriptor(approvalType, approverListName);  
    IApproval approval = approvals.createApproval(descriptor, superiorHandle);  
    approvals.add(approval);     
   }  
  }  
  private IContributorHandle getSuperiorHandle(String superiorID)  
   throws TeamRepositoryException  
  {  
   IContributorService contributorService = (IContributorService)getService(IContributorService.class);  
   return contributorService.fetchContributorByUserId(superiorID);  
  }  

and this one is to add the subscriber

  IContributorHandle ownerToSubscribe = blockingWorkItem.getOwner();  
  if (ownerToSubscribe != null) {  
      ISubscriptions subscriptions = thisWorkItem.getSubscriptions();  
      subscriptions.add(ownerToSubscribe);  
  }  

Get ProjectID and teamAreaId in Rational Team Concert Extension plugin

i use this code to get the project ID from Rational Team concert

 newState = (IWorkItem)saveParameter.getNewState();   
 IProjectAreaHandle pAreaHandle = newState.getProjectArea();   
 IAuditableCommon common = (IAuditableCommon)getService(IAuditableCommon.class);   
 IProjectArea pArea = (IProjectArea)common.resolveAuditable(pAreaHandle, ItemProfile.createFullProfile(IProjectArea.ITEM_TYPE), null);   
 String projectID = pArea.getName();   

and this one to get the teamAreaId

 ICategoryHandle ich = newState.getCategory();  
 IWorkItemCommon workItemCommon = (IWorkItemCommon)getService(IWorkItemCommon.class);  
 String teamAreaID = workItemCommon.resolveHierarchicalName(ich, monitor);  

hope this code can help the other developer that want to try to customizing Rational Team Concert. if you guys want to ask question, please drop comment or e-mail me for a faster response. thanks :)

check workItemType and predecessor in Rational Team Concert extension plugin

in this article i will try to share some code for Customizing Rational Team Concert.

this code is to get the workItemType
 
  private void checkWorkItemType(ISaveParameter saveParameter, AdvisableOperation operation, IAdvisorInfoCollector collector, IProgressMonitor monitor)  
   throws TeamRepositoryException  
  {   
  IWorkItem newState = (IWorkItem)saveParameter.getNewState();  
  newState = (IWorkItem)saveParameter.getNewState();  
  String workItemType = newState.getWorkItemType();  
 }  

this one is to check the predecessor. and iterate over the collection of predecessor item.

 
 private boolean checkIfRfcTicket(ISaveParameter saveParameter, AdvisableOperation operation, IProgressMonitor monitor)  
   throws TeamRepositoryException  
  {   
  List blockingDependencies = saveParameter.getNewReferences().getReferences(  
      WorkItemEndPoints.PREDECESSOR_WORK_ITEMS);  
       if (blockingDependencies.isEmpty()) {  
           System.out.println("-----NO DEPENDENCIES-----");  
       }       
       else  
      {  
       for (Iterator iterator = blockingDependencies.iterator(); iterator.hasNext(); )  
       {  
        IReference dependency = (IReference)iterator.next();  
        if ((!dependency.isItemReference()) ||   
         (!(((IItemReference)dependency).getReferencedItem() instanceof IWorkItemHandle))) {  
         continue;  
        }  
        IWorkItemHandle blockingWorkItemHandle = (IWorkItemHandle)((IItemReference)dependency).getReferencedItem();  
        ISaveParameter target = saveParameter.getSaveOperationParameter().findSaveParameter(blockingWorkItemHandle);  
        IAuditableCommon auditableCommon = (IAuditableCommon)getService(IAuditableCommon.class);  
        IWorkItem predecessorWorkItem;  
        if (target != null)  
         predecessorWorkItem = (IWorkItem)target.getNewState();  
        else {  
         predecessorWorkItem = (IWorkItem)auditableCommon.resolveAuditable(  
          blockingWorkItemHandle, IWorkItem.FULL_PROFILE, monitor);  
        }           
       }  
      }  
  }  

IBM Websphere Commerce Server

June 2012, i move to a new company. still a software house and work as a Java Developer. in this new company, my first project is to custom an IBM e-Commerce product, name Websphere Commerce Server. although my company is focusing on Rational Product, we also involved in this Websphere product. so the story is like this : a Singapore based company win a WCS project in Indonesia, and they looking local partner that capable to join their development team. so they chose us. this project is already start from end of 2011. so i join in the middle development phase.

IBM Rational Team Concert

From June 2011 to May 2012 i am working in one of IBM Business Partner in Jakarta, Indonesia. this Business partner is focusing in IBM Rational product line. and my last project in this company is developing an extension plug-in for Rational Team Concert.

for me, this project in very interesting and challenging. because this is my first creating plugin for a ready use product. this product is totally different from my first project in this company : Websphere commerce server (IBM e-Commerce product), i will write more about the eCommerce project in another article, that will explain how can a Rational Business Partner also doing an Websphere project. 

back to Rational Team Concert Extension, is already prepared with a SDK so developer can create plugin to fulfilled the project needs. And they provide a doc to explain the step to create an extension and then how to deploy and test it from the RTC itself. but even IBM already provide the SDK, the documentation and how-to customizing the plugin is very hard to find. lucky me, our Project Manager could contact the Jazz StartUp Team member, one of those that i rememer is Ralph Schoon. i can get a few sample code how to do the customization. 

Ralph says that i could search and find the sample code in the SDK from the eclipse, but poor me, i can't find the example that he mean.

a few function that i could custom in RTC is like : checking workitem type, checking whether a process is require attachment to be upload or not, adding the approver/reviewer into the predecessor / successor workitem, get the process template type, etc. for the approver / reviewer i had to connect to the LDAP server and run some query to get the supervisor of the related user.

i will separate a few sample code in another article. stay tune :)