fév

02

Posted by : admin | On : 2 février 2014

 

Download driver

http://www.sybase.com/products/allproductsa-z/softwaredeveloperkit/jconnect

Squirrel on sybase

http://dcx.sybase.com/1101/en/dbprogramming_en11/jconnect-using-jdbxextra.html

jconn2.jar

jconn4.jar

alias connection

jdbc:sybase:Tds:<PKATEFORM>:<PORT NumBER>/<SCHEMA>?charset=iso_1

jan

18

Posted by : admin | On : 18 janvier 2014

 

optimize UI in Android

 

  • Bellow a few good reference I found while developping my apps
  • gobal ui in android

http://android-developers.blogspot.in/2009/03/android-layout-tricks-3-optimize-with.html

  • Improving action bar experience

http://www.androidhive.info/2013/11/android-working-with-action-bar/

nov

24

Posted by : admin | On : 24 novembre 2013

Compare CPU speed

a good website : http://www.diffen.com/difference/Special:Compare/Processors

nov

24

Posted by : admin | On : 24 novembre 2013

Rom name : TIGRA  XXUEMJ5]TigraRom_V4 <<<<Updated 19/11>>>>

It’s an amazing ROM , the only thnig that did’nt work is the wifi , but there is a fix  (follow the second link bellow ).

The air gesture didn’t work also , but air view is working perfetcly:)

Bellow the two article I’ve found the first one is the Rom desciption and some screenshot

the second link is how to apply the fix on Odin .

It’s very simple , the only thing you need to do is to press the button AP and select the correct patch.tar.md5 and apply 2 times .

Then just reboot your phone and everything work on !

Thanks for the developper team for all the workon this ROM .


http://forum.xda-developers.com/showthread.php?t=2479698

http://www.theandroidsoul.com/root-galaxy-note-2-on-android-4-3-firmware-and-removes-knox-too/

video youtube :

http://www.youtube.com/watch?feature=player_embedded&v=3i5Hgp4IYTQ

 

Other ROM

All tested rom :   http://www.android.gs/update/samsung-galaxy-note-2-n7100/

http://www.ibtimes.co.uk/articles/522695/20131116/galaxynote2-n7100-android44-kitkat-paranoid-android-rom.htm

 

http://www.theandroidsoul.com/update-samsung-galaxy-note-2-n7100-android-4-4-kitkat-cm11-aosp-rom/

nov

16

Posted by : admin | On : 16 novembre 2013

 

 

Case study IBM

 

http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html

http://db.apache.org/ojb/docu/guides/objectcache.html#Why+a+cache+and+how+it+works%3F

nov

11

Posted by : admin | On : 11 novembre 2013

 

Thread et processus

Processus concerne une application, un programme

Un programme peut gérer plusieurs petits procesus appelé threads et partagés ses ressources au niveau de la JVM du cluster issu du serveur applicatif

 

Probleme couramment rencontré en informatique

Les sémaphores: utiliser beaucoup dans la gestion des ressources dans son système exploitation .

Le problemes du diner des philosophes: algorithme de Dijkstra

L’algorithme du banquier.

 

Mot clé volatile

uniquement utilisé dans le cas de variable primitive, unique que plusieurs thread peuvent attaquées cette meme variable

Attention ce mot clé ne garanti pas l’atomicité de l’opération

Pas de lock associé dessus

Attention au NPE si la valeur est à null

(Cela indique que la memoire est partagé entre les threads pour cette variable)

Difference entre volatile et synchronized

Synchronized s’applique à un objet et volatile s’applique à la référence de objet

Pour garantir qu’une variable primitive est atomique CF classe AtomiInteger / AtomicReference

 

 

Utilisation synchronized

Exemple Simple : utilisation des mots clé : notify , wait…

Dans cet exemple nous voyons qu’en faites nous appliqueons de manière intuitive le pattern observateur . Dans lexemple suivant nous allons approfondir cette notion

public class AutoBus extends Thread {
	int total = 0;

	public void run() {
		synchronized (this) {
			System.out.println("wait ...");
			for (int i = 0; i < 10; i++){
				total = +i;
				try {
					Thread.sleep(200);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}

			System.out.println("passenger is given notification call ");
			notify();
		}
	}

	public static void main(String[] args) throws InterruptedException {
		AutoBus bus = new AutoBus();
		bus.start();
		synchronized (bus) {
			System.out.println(" passenger is waiting for the bus");
			bus.wait();
			System.out.println("passenger go notification");
		}
		System.out.println(" total=" + bus.total);
	}
}

Préferer les block synchronized au méthode synchronized .

Ne crée pas de lock au niveau de objet équivalent à synchronized(this) cela veut dire que l’on utilise le monitor of the « this » objet in order to help keeping the object safe . C’est une erreur !!

La bonne pratique est de créer un objet privé qui serviera de monitoring de l’objet et nous garantiera que celui ci nest pas modifié par deux threads concurents :

exemple ligne :

 

        private final Object myMonitor = new Object();

 

 

 

package observerpattern;

/**
 *
 * @author Hugo
 */
public interface ISubject {
        void registerObserver(IObserver o);
        void unregisterObserver(IObserver o);
        void NotifyObservers(String s);
}

public class Subject implements ISubject {

        private final HashSet<IObserver> subscribers;

        public Subject() {
                // Eliminates the possibility of duplicated objects - subscribers.
                this.subscribers = new HashSet<IObserver>();
        }

//        // 1)  Using the "this" object's monitor
//        @Override // Registering subscriber.
//        public synchronized void registerObserver(IObserver o) {
//                System.out.println("Inside register observer method");
//                this.subscribers.add(o);
//        }
//
//        @Override // Unregistering subscriber.
//        public synchronized void unregisterObserver(IObserver o) {
//                this.subscribers.remove(o);
//        }
//
//        @Override
//        public void NotifyObservers(final String s) {
//                // Equivalent to --> public synchronized void NotifyObservers(final String s)
//                synchronized(this){
//                        for (IObserver o : this.subscribers) {
//                                o.Update(s);
//                        }
//                }
//        }

        // 2) Using a private object's monitor!

        private final Object myMonitor = new Object();

        @Override // Registering subscriber.
        public void registerObserver(IObserver o) {

                synchronized ( myMonitor ){
                        System.out.println("Inside register observer method");
                        this.subscribers.add(o);
                }
        }

        @Override // Unregistering subscriber.
        public void unregisterObserver(IObserver o) {

                synchronized ( myMonitor ){
                        this.subscribers.remove(o);
                }
        }

        @Override
        public void NotifyObservers(final String s) {

                synchronized ( myMonitor ){
                        for (IObserver o : this.subscribers) {
                                o.Update(s);
                        }
                }
        }
}

package observerpattern;

/**
 *
 * @author Hugo
 */
public interface IObserver {
        void Update(String s);
        void SubscribeTo(ISubject subject);
        void UnsubscribeTo(ISubject subject);
}

public class Observer  implements IObserver{

        private final String _name;

        public Observer(String name){
                _name = name;
        }

        @Override
        public void Update(String s){
                System.out.println(String.format("%s has received a new message from magazine: %s",_name,s));
        }

        @Override
        public void SubscribeTo(ISubject subject) {
               subject.registerObserver(this);
        }

        @Override
        public void UnsubscribeTo(ISubject subject) {
                subject.unregisterObserver(this);
        }
}

 

Callable et Futur

Java 5 introduced java.util.concurrent.Callable interface in concurrency package that is similar to Runnable interface but it can return any Object and able to throw Exception.

Callable interface use Generic to define the return type of Object. Executors class provide useful methods to execute Callable in a thread pool. Since callable tasks run in parallel, we have to wait for the returned Object. Callable tasks return java.util.concurrent.Future object. Using Future we can find out the status of the Callable task and get the returned Object. It provides get() method that can wait for the Callable to finish and then return the result.

package callable;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class MyCallable implements Callable<String> {

    @Override
    public String call() throws Exception {
        Thread.sleep(1000);
        //return the thread name executing this callable task
        return Thread.currentThread().getName();
    }

    public static void main(String args[]){
        //Get ExecutorService from Executors utility class, thread pool size is 10
        ExecutorService executor = Executors.newFixedThreadPool(10);
        //create a list to hold the Future object associated with Callable
        List<Future<String>> list = new ArrayList<Future<String>>();
        //Create MyCallable instance
        Callable<String> callable = new MyCallable();

        for(int i=0; i< 100; i++){
            //submit Callable tasks to be executed by thread pool
            Future<String> future = executor.submit(callable);
            //add Future to the list, we can get return value using Future
            list.add(future);
        }
        for(Future<String> fut : list){
            try {
                //print the return value of Future, notice the output delay in console
                // because Future.get() waits for task to get completed
                System.out.println(new Date()+ "::"+fut.get());
            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }
        //shut down the executor service now
        executor.shutdown();
    }

}

Multithreading  in a loop

 

public class ExecutorServiceExample {  

  private static class MyTask implements Callable<Double> {  

    private final int index;  

    private MyTask(Integer idx) { index = idx; }  

    public Double call() throws InterruptedException {
      System.out.println("Working on index " + index + "...");  

      // pretend we're doing something long and complex here...
      Thread.sleep(2000);  

      System.out.println("Completed index " + index);  

      // pretend this is the net result of the long, complex thing we did:
      return index * .001;
    }
  }  

  public static void main(String[] args) throws InterruptedException, ExecutionException {  

    ExecutorService execs = Executors.newFixedThreadPool(10);  

    List<Future<Double>> results = new ArrayList<Future<Double>>();  

    for (int i = 0; i < 100; i++) {
      Future<Double> result = execs.submit(new MyTask(i));
      results.add(result);
    }  

    // this is just a signal; it won't terminate until all tasks are completed
    execs.shutdown();
    System.out.println("Sent shutdown signal");  

    execs.awaitTermination(60, TimeUnit.MINUTES);  

    System.out.println("Results: ");
    int index = 0;
    for (Future<Double> result : results) {
      System.out.println(index++ + ":\t" + result.get());
    }
  }
}

Autre resources

http://www.journaldev.com/1034/java-blockingqueue-example-implementing-producer-consumer-problem

http://doanduyhai.wordpress.com/2012/08/04/design-pattern-the-asynchronous-dispatcher/

http://www.journaldev.com/1162/

août

17

Posted by : admin | On : 17 août 2013

 

A good walk around

http://stackoverflow.com/questions/142357/what-are-the-best-jvm-settings-for-eclipse#144349

juil

26

Posted by : admin | On : 26 juillet 2013

source : http://dottech.org/105407/how-to-root-lg-optimus-3d-p920-on-ice-cream-sandwich-or-gingerbread-guide/

Disclaimer: This guide is intended as a helpful “how to”. dotTech and its writers are not responsible for any gain or loss (including but not limited to bricked devices) incurred as a result of following this guide. Root your device at your own risk. Rooting may void your warranty.

REQUIREMENTS

This root guide is for LG Optimus 3D running either Android 2.2 Froyo, Android 2.3 Gingerbread or Android 4.04 Ice Cream Sandwich. It is specifically for the P920.

BEFORE WE BEGIN

  • Be sure that your LG Optimus 3D is at least 80% charged. Fully charged is preferable.
  • For this root to work properly, USB Debugging has got to be enabled on your phone. To enable USB Debugging do the following:
    • If you are on Froyo or Gingerbread, go to Settings, then Applications, thenDevelopment. Check the box next to USB Debugging.
    • If you are on Ice Cream Sandwich, go to System settings, then Developer Options, and finally Debugging. Check the box next to USB Debugging.
  • Download and install LG USB drivers for Windows, if you don’t already have them.
  • You’ll need to download the root package to your computer and extract the contents.

HOW TO ROOT LG OPTIMUS 3D P920

  • Plug your LG Optimus 3D into your computer with USB cord.
  • Find and run the run.bat file where you extracted the root package.
  • This root is an automated process so once you run the file, just be please be patient. Make sure that you are carefully reading the command prompt on your computer and paying attention to anything that it prompts you to do.
  • Your device should reboot automatically once rooting has finished.
  • As soon as your LG Optimus 3D has finished rebooting, open up the Google Play Store and install BusyBox.
  • Once BusyBox is installed, open it and the app will prompt you to grant it superuser access.
  • Give BusyBox superuser privileges.
  • After BusyBox is given superuser access, you’ve successfully rooted your LG Optimus 3D P920.

CONCLUSION

Enjoy a rooted LG Optimus 3D P920.

juil

03

Posted by : admin | On : 3 juillet 2012

http://www.lemonde.fr/tiny/1728220/

juin

05

Posted by : admin | On : 5 juin 2012

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image