Ashik’s IT Thoughts

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

August 11, 2011

Removing an element from a Collection while iterating over it

Filed under: Uncategorized — Tags: — ashikuzzaman @ 5:59 pm

Can you remove an element from a collection while iterating over it? Answer: No, you can’t.

What kind of error will you get in Java if you make an attempt? Compile time or Runtime? Answer: Runtime.

The details of the exception will be as below. Check this along with a sample program that I wrote. You can try to compile and run it yourself to see the result.

Exception in thread “main” java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
at java.util.AbstractList$Itr.next(AbstractList.java:420)


package com.salesforce.test;

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

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

public List counts = new ArrayList();

public RemoveListTest() {
counts.add(0);
counts.add(1);
counts.add(2);
counts.add(3);
counts.add(4);
counts.add(5);
counts.add(6);
counts.add(7);
counts.add(8);
counts.add(9);
counts.add(10);
counts.add(11);
counts.add(12);
counts.add(13);
counts.add(14);
}

public static void main(String[] args) {
System.out.println("\nRemoveListTest starts.....\n");
RemoveListTest rlt = new RemoveListTest();
List results = new ArrayList();
for(Integer count : rlt.counts) {
System.out.println("count before removing = " + count);
if(count % 3 == 1) {
results.add(count);
// rlt.counts.remove(count); // you will get runtime error if you uncomment it
}
}

for(Integer result : results) {
System.out.println("result = " + result);
rlt.counts.remove(result);
}
for(Integer count : rlt.counts) {
System.out.println("count after removing = " + count);
}

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

February 11, 2011

Waiting for NoteSlate

Filed under: IT — ashikuzzaman @ 1:57 am

A few days back my Google Reader RSS Feed took me to http://www.noteslate.com and from then onwards NoteSlate is roaming around my mind. I believe Kindle solved my problem of reading books, iPad solved the problem of a personal organizer cum web surfing but none of them really addressed the issue properly of writing or taking notes. NoteSlate will do that if I understood correctly what there current ad shows. Ah, I have to wait 5 more months to verify it!

January 25, 2011

I won the first round of the Chess Tournament in Salesforce.com

Filed under: Chess, Official — ashikuzzaman @ 12:59 pm

I played the first round of the four round chess tournament in Salesforce.com. I won with White, although I felt I am out of touch by a good margin due to the lack of practice. My opponent was Didier Prophete who is PMTS and sits in 3rd floor in the same building as I do. Also I took lot more time than my opponent to move.

However, I will do some practice before next rounds so that I don’t make simple miscalculations.

http://www.chess.com/emboard.html?id=589523

Soon after this, I exchanged the queens to make sure there is nothing left in the board except my Rook and Didier’s Bishop while I have a bunch of queens side passed pawns to march for promotion. So he resigned here while I had some 3 minutes left in the clock as opposed to his 9 minutes.

Last few days I finished Himu Rimande and Kichukhkhon by Humayun Ahmed.

December 19, 2010

Computers With Attitude

Filed under: IT — ashikuzzaman @ 2:19 pm

I thought it’s funny but I believe all the major O/S vendors are already capable of creating something this now.

Older Posts »

The Silver is the New Black Theme. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.