Ashik’s IT Thoughts

May 11, 2015

My First Java Code Commit to GitHub

Filed under: IT, Java — ashikuzzaman @ 11:46 am

My First Java Code Commit to GitHub. For now I have started with a simple class and will keep adding more classes as I get time –  ListPerformanceTestSimple.java

https://github.com/ashikuzzaman/javaapichecks

I had to do some trial and error before finally all the setups worked in my Ubuntu box. You can save the trial and error time if you follow the steps below that I performed –

1. Register a github account – https://github.com/
2. create a repository – look at top right + sign after you log in.
3. setup authentication from github to git. You can read through this article if you need some help or simply execute the commands that I typed below in sequence – https://help.github.com/articles/set-up-git/#next-steps-authenticating-with-github-from-git or http://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository
3a. $ git config –global user.name “ashikuzzaman”
3b. $ git config –global user.email “ashikuzzaman@gmail.com
3c. $ git config –global core.editor gedit
3d. $ git config –list
3e. $ git log
4. Clone your repository in your local workspace –  $ git clone https://github.com/ashikuzzaman/javaapichecks.git
5. Add a new .java file, locally compile and run. For example, javac -d . ListPerformanceTestSimple.java
6. $ git add ListPerformanceTestSimple.java
7. $ git commit -m “my first commit from command line to github”
8. Add some comments and save the file
9. $ git push origin master

April 18, 2015

Project Delight Go Live Party Held in San Francisco

Filed under: Uncategorized — ashikuzzaman @ 10:18 am

Last month Salesforce Global Sales and Revenue Operations held a party for Salesforce Business, IT, Vendors, Partners to celebrate Project Delight Go Live (March 9th was the go live date). Being one of the lead developers of that project, I was fortunate to be part of this celebration party. I am running towards my 8th year in Salesforce and hence have seen it grow from small to big. This party was a selected crowd from all across key participants from Sales Operations, IT, Accenture, Deloitte, Apttus executives and engineers. By key participants, I mean all the important members who have been working in this project for last 1 to 3 years to make it happen. It was held at Jones @620 Jones Street, San Francisco, CA on April 17th.

The core of the project was to replace our legacy CPQ tool Comergent with the native and fashionable Apttus CPQ. I was the lead developer for the legacy Comergent based quoting engine which is third party Java/JEE application stack deployed in Tomcat clusters within Apache. On the other hand Apttus is the Force.com application suite, the center of which is the quoting tool. But replacing a quoting tool was not the only target of this project, along with came streamlining the upstream and downstream systems and handling a large volume of desperate unstructured data accrued after years of operations. I will leave it there and get into the party part of it.

I can’t think of any other party which was more enjoyable than this. Part of the reason is the host business people are very fun loving and after working years together in this project we really got the scope to know each other very closely. There were plenty of foods of all kinds, photo taking and album creation instantly with the teams, video interviews, local musical band party of San Francisco, karaoke, a bag full of gifts (iPod Nano, Bose Bluetooth headset, iPhone charger etc were just one of the few things in that bag). You will get some idea of how much fun we had if you watch the above video of William and John dancing in the stage.

At the start of the event, anonymous peer votes were taken for 3 awards within for the people who worked in this project. William Jager won the award for challenging the status quo of the project at different times, Michelle Zaus got the award for cheer leading the teams all along and your truly got the Nike Award for hard work * getting things done. This was very satisfying as it came from the votes of the peers. A grand project, the largest in my 15 years career, ending in a grand style.

ashik-delight-nike-award

During the party, our consultant friends who worked in this project were appreciating the party saying that no other clients’ party is like Salesforce party! Very true. I will go one step ahead and say, no other party in Salesforce was like Project Delight Party!!

April 9, 2015

Java Programmer’s Life In Music – We code hard in these cubicles

Filed under: Uncategorized — ashikuzzaman @ 8:22 am

December 22, 2014

JUGBD Webinar: Salesforce booming from a startup to the highly used cloud development platform

Filed under: Uncategorized — ashikuzzaman @ 9:05 am

A few days back one of my ex-Colleague from Bangladesh Nazrul contacted me to have a meetup session with Java User Group Bangladesh to share some of my experience with Bangladeshi Programmers and Technologists. I was very happy to see that as I started the first Java Users Group in Bangladesh in 2002 and was very actively involved there until I came back to USA in 2005. So yesterday I presented my topic through GoToWebinar. The full session was recorded and today was uploaded in YouTube. Here is the one. I plan to engage few of my fellow technologists here in Sillicon Valley for sessions on different topics in similar style in future.

October 7, 2014

Please Let Us Get Some Work Done In Office

Filed under: Uncategorized — ashikuzzaman @ 8:30 am

What I have been talking about for so many years has now come out as a TED talk! This is why I work twice a week late in the office till midnight when there is no one around just to actually get some work done. Please pay special attention to the 3 recommendations that Jason Fried made to remedy. I am happy that the first one is already partially implemented in my office as – No Meeting Thursday!

September 18, 2014

Emerging Technologies

Filed under: Uncategorized — ashikuzzaman @ 11:12 pm

emerging-technologies

January 21, 2014

Trying Out Gliffy as Online Diagramming Tool

Filed under: IT — ashikuzzaman @ 12:51 pm

I like free online tools as I use Mac, Ubunutu, Windows, iPhone and iPad at different times from different locations for same or different purposes, both office work or chess or other interests.

I use http://www.onlinehtmleditor.net/ as Online HTML Editor.

I use http://www.jsoneditoronline.org/ as online JSON Editor.

Now I wanted to come out of Visio or MS Paint or Dia for diagramming as those are offline or installed applications.

Today I tried to use Gliffy after searching and testing several other tools online. I see that it gives me close to the functionality of MS Visio although its free and online based.

Gliffy Online Diagramming Tool

May 13, 2013

Agile Product Ownership in a Nutshell

Filed under: IT — ashikuzzaman @ 2:31 pm

June 15, 2012

Why Software Engineers are Grumpy?

Filed under: IT — ashikuzzaman @ 5:40 pm

My friend Paul from East Coast, forwarded this article to me in the morning. While I was reading it, I became, happy, sad was laughing around loudly in the BART train to office and also got thinking. Too many things in it from the experience of an engineer.

Here is the article – The care and feeding of software engineers (or, why engineers are grumpy)

November 25, 2011

Finding Union and Intersection of 2 Large Lists

Filed under: IT, Java — ashikuzzaman @ 10:15 am

One of my colleague who works on performance tracking and tuning of applications asked for some helped around how to find the union and intersection of large lists. He works mostly on Python and Perl. Being a Java guy, I prepared a sample program for him to do this allowing to determine the size of the lists by himself. He was happy to get the program and once I explained him a bit about the retailAll(), addAll() and removeAll() API of Java and how I used those to determine the union and intersection, it was very clear to him. I am giving that program here in case it helps you as a reference implementation.


package com.salesforce.test;

import java.util.List;
import java.util.ArrayList;
import java.util.Date;

/**
* To compiple: javac -d . ListPerformanceTest.java
* To run: java com.salesforce.test.ListPerformanceTest
*
* @author ashik
*/
public class ListPerformanceTest {

private int LOOP_COUNT = 50000;
private List firstList;
private List secondList;

public ListPerformanceTest() {
firstList = new ArrayList();
secondList = new ArrayList();
for(int i = 0; i < LOOP_COUNT; i++) {
if(i % 3 != 0 || i % 5 != 0) {
firstList.add("ashik - " + i);
}
if(i % 9 != 0) {
secondList.add("ashik - " + i);
}
}
}

public static void main(String[] args) {
System.out.println("\nListPerformanceTest starts.....\n");
ListPerformanceTest perf = new ListPerformanceTest();
List intersection = new ArrayList();
List union = new ArrayList();

Date d1 = new Date(System.currentTimeMillis());
System.out.println("d1 = " + d1);
for(String value : perf.firstList) {
System.out.println("value for firstList = " + value);
}
Date d2 = new Date(System.currentTimeMillis());
System.out.println("d2 = " + d2);
for(String value : perf.secondList) {
System.out.println("value for secondList = " + value);
}
Date d3 = new Date(System.currentTimeMillis());
System.out.println("d3 = " + d3);

System.out.println("perf.firstList.size() = " + perf.firstList.size() + " and perf.secondList.size() = " + perf.secondList.size());

if(perf.firstList.size() >= perf.secondList.size()) {
intersection.addAll(perf.firstList);
intersection.retainAll(perf.secondList);
} else {
intersection.addAll(perf.secondList);
intersection.retainAll(perf.firstList);
}
Date d4 = new Date(System.currentTimeMillis());
System.out.println("d4 = " + d4);
System.out.println("intersection.size() = " + intersection.size());

if(perf.firstList.size() >= perf.secondList.size()) {
union.addAll(perf.firstList);
union.removeAll(perf.secondList);
union.addAll(perf.secondList);
} else {
union.addAll(perf.secondList);
union.removeAll(perf.firstList);
union.addAll(perf.firstList);
}
Date d5 = new Date(System.currentTimeMillis());
System.out.println("d5 = " + d5);
System.out.println("union.size() = " + union.size());

System.out.println("\nListPerformanceTest ends.....\n");
}

}

The significant part from the output when you run the program is given below.

d3 = Fri Nov 25 10:03:36 PST 2011
perf.firstList.size() = 46666 and perf.secondList.size() = 44444
d4 = Fri Nov 25 10:03:55 PST 2011
intersection.size() = 42222
d5 = Fri Nov 25 10:04:14 PST 2011
union.size() = 48888

Older Posts »

The Silver is the New Black Theme. Create a free website or blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.