Skip to main content

Posts

Showing posts from 2012

Different ways to use enum's in java

Technique: Simple enum and retrieve/reverse lookup using valueOf() public class OrderService {
    // Note : enums can be defined in its own file or inside a class if they are only relevant with it.
    public enum Status { PROCESSING, SHIPPED, COMPLETED; }

    public void update(long orderId, Status status) {
         // something
    }
}
// import static OrderService.Status;
// import static OrderService.Status.* ;
// OrderService service = new OrderService(); // service.update(100L, SHIPPED); // use enum // Status status = Status.valueOf("SHIPPED"); // reverse lookup by constant, throws IllegalArgumentException if no match. // System.out.println ( status.toString() ); // prints value - SHIPPED
Technique: Stores enum constant and value in a map, retrieve/reverse lookup using fromValue()
public enum Status {

        PROCESSING("processing"), SHIPPED("shipping"), COMPLETED("completed");

        private String val;
        private Status(String val…

guzra huwa jamana ata nahi dubara

guzra huwa jamana ata nahi dubara
hafez khuda tumhara
khushiya thi chaar din ki aason hai umr bhar ke 
tanhahiyon me aksar royenge yaad karke wo waqt ke jo hum ne ek saath hai guzaara
meri khasam hai mujko tum bewafa na kehna majboor thi mahabot sabh kuch pada hai sehna
tuta hai zindegi ka ab aakhri sahara mere liye sahr bhi aayi hai raath bankar
nikla mera janaza meri barath ban kar accha huwa jo tumne dekha na ye nazara
guzra huwa jamana ata nahi dubara
hafez khuda tumhara

ArrayList vs LinkedList vs HashSet Performance Comparision

ConclusionsInserting & Reading sequentially from Collection prefer LinkedList/ArrayListInserting & Reading/Deleting by Search/equals from Collection prefer HashSetInserting, ArrayList & LinkedList performs best while HashSet takes double the timeReading, HashSet performs best while ArrayList & LinkedList are marginally lessDeleting, HashSet performs 10 times better than ArrayList & ArrayList performs 4 times better than LinkedList. LinkedList is slow because of sequencial search Bottom line : unless you are not going to iterate using for(Integer i : list ) then prefer HashSet
Inserting/Reading/Deleting integer's from zero till countJDK7Collectionactioncounttime msArrayListInsert1000/1LinkedListInsert1000/1HashSetInsert1000/1ArrayListInsert100005LinkedListInsert100004HashSetInsert100007ArrayListInsert10000011LinkedListInsert10000011HashSetInsert10000021ArrayListGet/Read1000LinkedListGet/Read1000HashSetGet/Read1000ArrayListGet/Read100004LinkedListGet/Read100003Has…

Password Security Recommendations

User credential / Password Security.
Recent security related embarrassment at Yahoo, LinkedIn and Sony has only proved that securing user information needs more considerations. Security is not a product rather a process.

First identifying how username/password can be leaked and its price.

Basically there are four ways an adversary can find out username/password for one or more accounts stored on the server.

 1. Password guessing - Assuming adversary knows username for one or more accounts and they can
      deploy dictionary attack to find correct password.

 2. Adversary eavesdropping on user network ( Man in Middle Attack)

 3. Adversary getting access to user computer through some virus/worm

 4. Adversary getting access to username/password table or system on the server.



Password Guessing :

Fix :
  Max invalid attempts strategy should be deployed, i.e. temporary lock the account after 4 or 5 invalid password attempt.
Cons :
  Inconveniences to user, user will endup locking and changi…

Use project specific license in Netbeans + Maven

Use this in pom.xml and Netbeans is intelligent enough to inject appropriate license in all newly created files.


<licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

And this is what it produces


/*
 * Copyright 2012 intesar.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KI…

Forum/Questions feature request to Github & Google

Hey Github/Google why don't you add a forum/questions feature just like other "wiki" and "issues" features. Today there is no way project adopters can ask direct questions to the project community without creating an issue and this will not scale, simply because many non-contributors do not read issues and answer's them. So eventually we are keeping big knowledge base out of helping others adopt or solve problems.

Lack of this feature simply discourages people asking questions fearing they are spamming the project with issues, and eventually they will end-up not using the product. And on the other hand if you add this feature it will simply create more value, increase user engagement, and addition of new knowledge base to your system.

You might also argue that why we need to duplicate this feature when there are other good sites like StackOverFlow for doing this, but adding or integrating this feature to your products is more natural as users will find it …

Riak vs MongoDB vs MySQL Performance tests 1

Environment 1 
Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz
Cores: 4
8 MB Cache
Memory : 6GB
ulimit : 1024
OS : CentOS 5.4

Riak : 1.1
MySQL 5.1 (Highly tuned system)

Test data :
Object : username, email, id

Both test's were run from Java clients

To make this test little meaningful I've send each read/write command to mysql in its own request.

MySQL Single Node (time in ms)

inserts : 50, time : 871
 inserts : 100, time : 324
 inserts : 200, time : 835
 inserts : 500, time : 1936
 inserts : 1000, time : 3275

 gets : 50, time : 55
 gets : 100, time : 60
 gets : 200, time : 119
 gets : 500, time : 304
 gets : 1000, time : 582

Riak Single Node (Recommended is 3 Nodes)

inserts : 50, time : 461
 inserts : 100, time : 486
 inserts : 200, time : 1473
 inserts : 500, time : 3609
 inserts : 1000, time : 6442

 gets : 50, time : 2296
 gets : 100, time : 4501
 gets : 200, time : 9028
 gets : 500, time : 22496
 gets : 1000, time : 44981


Environment 2
Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
Cores: 2
Memo…

Simple Log4J Yahoo mail setup to recieve production errors as emails

Receive all server exceptions as email, never miss one, easy to share and discuss with the others

Follow these simple steps to configure Log4j to use Yahoo mail.


Step 1: Add dependencies

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>

        <!-- Log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion&g…

Simple setup Log4j with GMail and recieve all errors as email

Receive all server exceptions as email, never miss one, easy to share and discuss with the others

Follow these simple steps to configure Log4j to use GMail.


Step 1: Add dependencies

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>

        <!-- Log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
   …

Simple reusable GMailJava class for sending Aysnc emails via Gmail

Simple reusable GMailJava class for sending Aysnc emails. Copy the class, change the username/password and use it in your next project. 
Step 1: Add dependencies to your maven project <!-- mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <!-- Apache Commons Validator --> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> <version>1.4.0</version> </dependency> Step 2: Copy EmailService.java to your project & set username/password code: https://github.com/intesar/GMailJava/blob/master/src/main/java/com/bia/gmailjava/EmailService.java Note: Enable pop, IMAP inside GMail --> Settings --> Forwarding and POP / IMAP Sample code EmailService emailService = EmailSer…

Send emails using Yahoo

Simple reusable YahooMailJava class for sending Aysnc emails via Yahoo. Copy the class, change the username/password and use it in your next project.  Step 1: Add dependencies to your maven project <!-- mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <!-- Apache Commons Validator --> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> <version>1.4.0</version> </dependency> Step 2: Copy YahooMailService.java to your project and set username/password code: https://github.com/intesar/YahooMailJava/blob/master/src/main/java/com/bia/yahoomailjava/YahooMailService.java Sample codeYahooMailService emailService = YahooMailService.getInstance(); emailService.sendEmail("<toemail>…

GMailJava class for sending Async emails

Simple reusable GMailJava class for sending Aysnc emails. Copy the class, change the username/password and use it in your next project. 
Step 1: Add dependencies to your maven project <!-- mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <!-- Apache Commons Validator --> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> <version>1.4.0</version> </dependency> Step 2: Copy EmailService.java to your project & set username/password code: https://github.com/intesar/GMailJava/blob/master/src/main/java/com/bia/gmailjava/EmailService.java Sample code EmailService emailService = EmailService.getInstance(); emailService.sendEmail("<toemail>", "<…

Free website monitor service and seo

Website Uptime Monitor Service is a really nice simple service to monitor websites for free, No registration or signup is required, just put the site url, email and start monitoring. Few other features they plan to offer.

Free  Features!
1. Site/Web Service Monitor 
2. Email Alerts 
3. Weekly reports 
4. Checkout site uptime status anytime
5. SEO & Social Media coverage on Twitter, G+, FB, Pinterest, Blogger, Reddit for 95+ percent uptime!


They also have Android, iOS, Window's Mobile Apps also their site is compatible with all major smart phones.

Here is their website...
http://www.zytoon.me/monitor




HP Cloud Services Pricing

Please refer to Official HPCloud Site for updates
HP Cloud Services PricingHP Cloud Compute PricingInstance TypeRAM (GB)Virtual CoresDisk (GB)($/hr)($ Monthly aprx)Standard Extra Small1130$0.04$30.00Standard Small2260$0.08$60.00Standard Medium42120$0.16$120.00Standard Large84240$0.32$240.00Standard Extra Large164480$0.64$480.00Standard Double Extra Large328960$1.28$960.00
HP Cloud Services Non-CDN Bandwidth PricingBandwidthPrice($/GB/mo.)INAll Data Transfers InFREEOUTFirst 1 GBFREEUp to 10 TB$0.12 Next 40  TB$0.09 Next 100  TB$0.07 Next 350 TB$0.05 More than 500 TBContact HP

HPCloud Pricing

Twitter - Twitter, Inc.




Launch Twitter


FB

Share with friend
-- mailTo is empty so user can fill it himself

Share with friend
-- basic subject & body

Share with friend
-- with only subject

Share with friend
-- with only body

Share with friend

iMessage Me