Search Results

Search found 34838 results on 1394 pages for 'java se'.

Page 487/1394 | < Previous Page | 483 484 485 486 487 488 489 490 491 492 493 494  | Next Page >

  • Microsoft sur le point de se lancer dans les réseaux sociaux d'entreprises pour un milliard de dollars, d'après Bloomberg

    Microsoft pourrait débourser 1 milliard de dollars pour se lancer dans les réseaux sociaux professionnels D'entreprises, d'après Bloomberg Les réseaux sociaux, c'est un peu comme le Cloud ou les sites Webs. Il y en a de toutes sortes. L'appellation couvre presque tout et son contraire : des outils publics ou privés, pour le loisir ou pour les professionnels. Dans les réseaux, on connait Facebook, LinkedIn ou Viadeo, ou la deuxième tentative de Google de percer sur ce marché (Google+). Mais on connait moins les acteurs des « réseaux privés » comme Atlassian qui édite par exemple Confluence (sorte de Facebook à...

    Read the article

  • Google et Adobe se mettent au Social Analytics et proposent de chiffrer les retombées des actions marketing sur les réseaux sociaux

    Google et Adobe se mettent au Social Analytics Et proposent d'évaluer concrètement les retours sur investissement des actions marketing sur les réseaux sociaux Combien rapporte une campagne ou une opération marketing sur sur les réseaux sociaux ? Aujourd'hui, évaluer un tel ROI est un des défis pour les Webmarketeurs. Les managers et les décideurs veulent en effet de plus en plus intégrer Facebook ou Tweeter dans leurs stratégies de communication, mais ils veulent aussi savoir ce que cela rapporte. Google l'a bien compris et devrait proposer dans les semaines qui viennent de nouveaux indicateurs à Google Analytics. En résumé, Analytics pourra tracer les visites entra...

    Read the article

  • Pixel d'Avril : le salon Nantais du jeu vidéo se tient ce week-end, conférences, tournois et démos au menu de ce salon bénévole

    Pixel d'Avril : le salon nantais du jeu vidéo se tient ce week-end Conférences, tournois et démos au menu du salon du jeu vidéo Pixel d'Avril est un salon autour des jeux vidéos, du développement et de la culture Geek. Rétro-gaming pour les nostalgiques, concours de machinima (film avec des moteurs de jeux) pour les créatifs, démonstrations et espaces LAN (jeux en réseaux, réservés la nuit pour les tournois sur Halo Reach et sur Age of Empire II), « Pixel d'Avril » est aussi un lieu de rencontre pour les professionnels (studios, éditeurs, etc.). Cette année, les ateliers et les conférences du weekend seront liés au thème du son dans le jeu vidéo.

    Read the article

  • Nokia propose gratuitement tous ses outils pour se lancer dans le développement mobile pour l'OviStore : Qt, Wrt, hello world, etc.

    Nokia met en ligne la totalité des outils gratuits pour se lancer dans le développement d'applications mobiles Pour l'OviStore : Qt, WebRuntime, et hello world « Que vous soyez dev mobile ou dev HTML, développer une appli Nokia n'a jamais été aussi facile avec Qt et WebRuntime », affirme le constructeur finlandais. Et les faits semblent lui donner raison puisque l'OviStore connait un succès qui n'était pas, il y a quelques semaines, un pari gagné d'avance. Certes les 3 millions de téléchargements annoncés par la marque sont une des preuves de ce succès. Mais l'adhésion des développeurs à cette plateforme concurrente d'Android, iOS et autres Windows Ph...

    Read the article

  • Pixel d'Avril : le salon Nantais du jeux vidéo se tient ce week-end, conférences, tournois et démos au menu de ce salon bénévole

    Pixel d'Avril : le salon nantais du jeux vidéo se tient ce week-end Conférences, tournois et démos au menu du salon du jeux vidéo Pixel d'Avril est un salon autour des jeux vidéos, du développement et de la culture Geek. Rétro-gaming pour les nostalgiques, concours de machinima (film ave des moteurs de jeux) pour les créatifs, démonstrations et espaces LAN (jeux en réseaux, réservés la nuit pour les tournois sur Halo Reach et sur Age of Empire II), « Pixel d'Avril » est aussi un lieu de rencontre pour les professionnels (studios, éditeurs, etc.). Cette année, les ateliers et les conférences du weekend seront liés au thème du son dans le jeu vidéo.

    Read the article

  • At the Java DEMOgrounds - ZeroTurnaround and its LiveRebel 2.5

    - by Janice J. Heiss
    At the ZeroTurnaround demo, I spoke with Krishnan Badrinarayanan, their Product Marketing Manager. ZeroTurnaround, the creator of JRebel and LiveRebel, describes itself on their site as a company “dedicated to changing the way the world develops, tests and runs Java applications."“We just launched LiveRebel 2.5 today,” stated Badrinarayanan, “which enables companies to embrace the concept and practice of continuous delivery, which means having a pipeline that takes products right from the developers to an end-user, faster, more frequently -- all the while ensuring that it’s a quality product that does not break in production. So customers don’t feel the discontinuity that something has changed under them and that they can’t deal with the change. And all this happens while there is zero down time.”He pointed out that Salesforce.com is not useable from 3 a.m. to 5 a.m. on Saturday because they are engaged in maintenance. “With LiveRebel 2.5, you can unify the whole delivery chain without having any downtime at all,” he said. “There are many products that tell customers to take their tools and change how they work as an organization so that you they have to conform to the way the tool prescribes them to work as an application team. We take a more pragmatic approach. A lot of companies might use Jenkins or Bamboo to do continuous integration. We extend that. We say, take our product, take LiveRebel okay, and integrate it with Jenkins – you can do that quickly, so that, in half a day, you will be up and running. And let LiveRebel automate your deployment processes and all the automated tasks that go with it. Right from tests to the staging environment to production -- all with zero downtime and with no impact on users currently using the system.” “So if you were to make the update right now and you had 100 users on your system, they would not even know this was happening. It would maintain their sessions and transfer them over to the new version, all in the background.”

    Read the article

  • Advanced Experiments with JavaScript, CSS, HTML, JavaFX, and Java

    - by Geertjan
    Once you're embedding JavaScript, CSS, and HTML into your Java desktop application, via the JavaFX browser, a whole range of new possibilities open up to you. For example, here's an impressive page on-line, notice that you can drag items and drop them in new places: http://nettuts.s3.amazonaws.com/127_iNETTUTS/demo/index.html The source code of the above is provided too, so you can drop the various files directly into your NetBeans module and use the JavaFX WebEngine to load the HTML page into the JavaFX browser. Once the JavaFX browser is in a NetBeans TopComponent, you'll have the start of an off-line news composer, something like this: WebView view = new WebView(); view.setMinSize(widthDouble, heightDouble); view.setPrefSize(widthDouble, heightDouble); webengine = view.getEngine(); URL url = getClass().getResource("index.html"); webengine.load(url.toExternalForm()); webengine.getLoadWorker().stateProperty().addListener( new ChangeListener() { @Override public void changed(ObservableValue ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { Document document = (Document) webengine.executeScript("document"); NodeList list = document.getElementById("columns").getChildNodes(); for (int i = 0; i < list.getLength(); i++) { EventTarget et = (EventTarget) list.item(i); et.addEventListener("click", new EventListener() { @Override public void handleEvent(Event evt) { instanceContent.add(new Date()); } }, true); } } } }); The above is the code showing how, whenever a news item is clicked, the current date can be published into the Lookup. As you can see, I have a viewer component listening to the Lookup for dates.

    Read the article

  • Nokia propose gratuitement tous ses outils pour se lancer dans le développement mobiles pour l'OviStore : Qt, Wrt, hello world, etc.

    Nokia met en ligne la totalité des outils gratuits pour se lancer dans le développement d'applications mobiles Pour l'OviStore : Qt, WebRuntime, et hello world « Que vous soyez dev mobile ou dev HTML, développer une appli Nokia n'a jamais été aussi facile avec Qt et WebRuntime », affirme le constructeur finlandais. Et les faits semblent lui donner raison puisque l'OviStore connait un succès qui n'était pas, il y a quelques semaines, un pari gagné d'avance. Certes les 3 millions de téléchargements annoncés par la marque sont une des preuves de ce succès. Mais l'adhésion des développeurs à cette plateforme concurrente d'Android, iOS et autres Windows Ph...

    Read the article

  • Pharo 1.0, un environnement open-source dérivé de Squeak simple et épuré pour se mettre à Smalltalk

    Pharo 1.0, un environnement open-source dérivé de Squeak Simple et épuré pour se mettre à Smalltalk Comme vous le savez, Smalltalk est un langage interprété. Pour s'y mettre, il existe plusieurs environnements, comme Visualworks, ou un des plus connus : Squeak. Mais le moins que l'on puisse dire, c'est que Squeak ne fait l'unanimité. En dépit de la qualité indéniable de l'environnement, ses petits bugs, son UI et d'autres défauts ont eu raison de la motivation de nombreux développeurs qui ont voulu s'essayer au Samltalk avec lui. Des anciens membres impliqués dans le projet Squeak (les responsables de Squeak 3.9) ont donc décidé de lancer un fork. « Nous a...

    Read the article

  • Google se lance encore un peu plus dans la voix sur IP et la vidéo-conférence, au moment où Skype so

    Mise à jour du 19/05/10 Google se lance dans la voix sur IP et la vidéo-conférence Au moment où Skype sort la nouvelle version de son application Les deux faits ne sont pas liés, mais ils montrent que la voix sur Internet (VoIP) au sens large est un secteur en plein devenir. Après Gizmo5 (lire ci-avant), Google vient en effet de lancer une Offre Publique d'Achat (OPA) sur une société norvégienne spécialisée dans la « transmission du son et de la vidéo en temps réel » sur Internet. La définition d'une technologie qui fait furieusement penser à Skype. La direction de Global IP Solutions a d'ores et déjà annoncé qu'...

    Read the article

  • Les offres d'emplois cadres se tassent aussi dans l'informatique d'après l'APEC, le secteur progresserait même moins vite que la moyenne

    Les offres d'emplois cadres se tassent aussi dans l'informatique D'après l'APEC, le secteur progresserait même moins vite que la moyenne Avec un peu plus de 52 000 offres d'emploi cadre confiées à l'Apec en mai 2012, l'évolution mensuelle du marché de l'emploi cadre a connu une quasi-stagnation, avec +1% par rapport à mai 2011. Même si l'association précise qu'à nombre de jours ouvrables comparable cette progression atteint les 17 % (le nombre de jours fériés sur mai a beaucoup varié sur 2012 et 2011). En revanche, le nombre d'annonces publiées sur Internet est en très net recul. « Ce repli concerne quasiment toutes les fonctions », souligne l'APEC, « la seule à maintenir une croissance...

    Read the article

  • Quels points prendre en compte avant de se lancer vers la mobilité ? Réponse dans un livre blanc par les développeurs du CMS DotNetNuke

    Découvrez les six points à prendre en compte avant de se lancer vers la mobilité selon DotNetNuke, dans un livre blanc publié par le CMS ASP.NET Le secteur du mobile a le vent en poupe. D'ici 2014, le nombre de pages affichées par les personnes utilisant les terminaux mobiles sera plus élevé que le nombre de visites effectuées depuis les ordinateurs de bureau et portables, selon une estimation de Morgan Stanley Research. Les entreprises pour maintenir leur présence sur Internet doivent donc songer à fournir dès à présent un accès rationalisé et facile à l'information pour les clients qui utilisent les smartphones et les tablettes. Comment préparer sa présence sur le mobile...

    Read the article

  • LOPPSI 2 adoptée par l'Assemblée Nationale, le filtrage des sites se fera sans regard de la CNIL ou d'un juge

    LOPPSI 2 adoptée par l'Assemblée Nationale, le filtrage des sites se fera sans regard de la CNIL ou d'un juge Mise à jour du 22.12.2010 par Katleen Hier, l'Assemblée Nationale a adopté le projet de loi LOPPSI 2, dont son sulfureux article 4, dans une nouvelle version (le tout devra encore être définitivement approuvé par le Sénat en janvier pour être promulgué). L'article qui fait polémique porte sur le filtrage administratif du Net, pour "lutter contre la pédopornographie", et inquiète fortement internautes et certains acteurs du Web. Il est jugé dangereux (nous vous en parlions déjà, voir news précédentes). C'est l'OCLCTIC (Office Central de Lutte contre la Criminalité lié...

    Read the article

  • Visual Studio 2010 : mise à jour du Service Pack 1, l'EDI se met au HTML 5, CSS3 et JavaScript

    Visual Studio 2010 : mise à jour du Service Pack 1 L'EDI se met au HTML 5, CSS3 et JavaScript Mise à jour du 20/06/11, par Hinault Romaric Microsoft a toujours montré son intérêt pour le HTML5 depuis le début des travaux de normalisation du nouveau standard. Dernières preuves en date, la firme vient d'annoncer une meilleure intégration de la norme dans la prochaine version de l'OS Windows (Windows 8) et un outil de développement HTM5, CSS3 et JavaScript. C'est donc quasiment sans surprise qu'une équipe d'ingénieurs de la division plate-forme Web et Outils vient de publier une mise à jour du Service Pack 1 de Visual Studio pour u...

    Read the article

  • Les utilisateurs d'iPhone se regroupent en sept types, et vous, à quelle catégorie appartenez-vous ?

    Les utilisateurs d'iPhone se regroupent en sept types, et vous, à quelle catégorie appartenez-vous ? Actuellement, près de 70 millions de personnes dans le monde utilisent un iPhone. Et, d'après un site américain, le smartphone d'Apple compterait 7 types d'utilisateurs différents : - Le Fanboy : Pour lui, Apple, c'est l'Alpha et l'Omega, la perfection, le sacré. Il adhère donc à toutes les politiques de la firme et, évidemment, en achète tous les appareils, qu'il vénère et considère comme les "meilleurs jamais construits", largement au dessus de ceux proposés par la concurrence (entendez Microsoft). Pour lui, si son iPhone rencontre des problèmes, c'est la faute de son opérateur. Mais jamais de son si parfai...

    Read the article

  • La CNIL autorise les premiers ayants droits à collecter des adresses IP, la machine Hadopi se met en

    Mise à jour du 14.06.2010 par Katleen La CNIL autorise les premiers ayants droits à collecter des adresses IP, la machine Hadopi se met en marche Quelques semaines après la mise en place de l'équipe chargée de la mettre en oeuvre, la loi Hadopi semble prête à décoller. La CNIL (Commission nationale informatique et libertés) viendrait en effet d'autoriser les premiers ayants droits à collecter de manière automatisée les adresses IP d'utilisateurs soupçonnés de téléchargement illégal. Ceci leur permettra de ficher les contrevenants présumés pour ensuite en avertir Hadopi. Concrètement, c'est la société Trident Media Guard qui sera seule habilitée à collecter ces adresses pour le...

    Read the article

  • Microsoft se réjouit de la future fonctionnalité "Tracking Protection" d'IE 9, et espère que ses concurrents "feront pareil"

    Microsoft se réjouit de la future fonctionnalité "Tracking Protection" d'Internet Explorer 9, et espère que ses concurrents "feront pareil" Vendredi soir, après le CES de Las Vegas, Dean Hachamovitch, Directeur de l'activité Internet Explorer chez Microsoft, a tenu une conférence de presse. Devant les journalistes qui y étaient conviés, il a évoqué la fonction "Tracking Protection", qui n'est actuellement pas présente dans IE9 bêta, mais qui fera son entrée dans la mouture définitive du navigateur. Elle permettra d'« identifier et bloquer toutes les formes de traçage sur le web », via la « tracking protection list ». Grâce à ce mécanisme, un internaute pourra savoir exacte...

    Read the article

  • Microsoft se réjouit de la future fonctionnalité "Tracking Protection" d'Internet Explorer 9, et espère que ses concurrents "feront pareil"

    Microsoft se réjouit de la future fonctionnalité "Tracking Protection" d'Internet Explorer 9, et espère que ses concurrents "feront pareil" Vendredi soir, après le CES de Las Vegas, Dean Hachamovitch, Directeur de l'activité Internet Explorer chez Microsoft, a tenu une conférence de presse. Devant les journalistes qui y étaient conviés, il a évoqué la fonction "Tracking Protection", qui n'est actuellement pas présente dans IE9 bêta, mais qui fera son entrée dans la mouture définitive du navigateur. Elle permettra d'« identifier et bloquer toutes les formes de traçage sur le web », via la « tracking protection list ». Grâce à ce mécanisme, un internaute pourra savoir exacte...

    Read the article

  • GlassFish/Java EE Community Open Forum Tomorrow!

    - by reza_rahman
    Still have lingering questions on the goals and future of GlassFish? Want to know a little more about the upcoming GlassFish 4.0.1 release? Something on your mind about Java EE 8/GlassFish 5? You have a golden opportunity to pose your questions and speak your mind tomorrow! The good folks over at C2B2 have gone through a lot of time and effort to organize a very useful online event for the London GlassFish User Group - they are having me answer all your questions online, in real time, "face-to-face". Steve Millidge of C2B2 will be moderating the questions and joining the conversation. Did I mention the event was online, free and open to anyone? The event is tomorrow (May 30th), so make sure to register as soon as possible through the C2B2 website (the registration page has more details on the event). It will be held at 4:30 PM BST / 11:30 AM EST / 8:30 AM PST - you must register to participate. Hope to talk to you tomorrow?

    Read the article

  • OVH ouvre un Cloud pour les développeurs qui veulent passer au SaaS et se lance dans le calcul haute performance à la demande

    OVH ouvre un Cloud pour les développeurs qui veulent passer au SaaS Et se lance dans le calcul haute performance à la demande « Pour accompagner la mutation du marché des logiciels vers le SaaS, OVH.com fait évoluer son offre Private Cloud basée sur vSphere de VMware », voici résumée en une phrase la nouvelle offre de l'hébergeur nordiste. Une offre qui a pour particularité de ne pas mutualiser les ressources des serveurs, mais qui dédie chaque serveur physique à un client. Le but pour les éditeurs et les développeurs est de disposer d'un environnement dans lequel ils peuvent migrer leurs logiciels et les proposer en mode SaaS. « Au lieu d'installer le logiciel c...

    Read the article

  • L'emploi cadre continue de se tasser dans l'IT, d'après l'Apec : maîtrise d'ouvrage et informatique de gestion sont les plus touchées

    L'emploi cadre continue de se tasser dans l'informatique D'après l'Apec, maîtrise d'ouvrage et informatique de gestion particulièrement touchées Plus de 55 000 offres d'emploi cadre ont été publiées à l'Apec en octobre 2012. Soit une croissance de l'emploi cadre de +10% par rapport à octobre 2011? mais qui redevient nulle si l'on considère le nombre de jours ouvrables comparables. Quant aux offres Internet, elles sont en net repli. D'après l'agence, les fonctions les plus en recul sont les Ressources humaines (-45 points sur son indice Internet), la Gestion/Finance/Administration (-38 points) et l'Informatique (-35 points). Néanmoins, le nombre global d'offres dans l'IT con...

    Read the article

  • Google se lance dans les solutions de géolocalisation en temps réel pour les entreprises, mais uniquement sur Android

    Google se lance dans les solutions de géolocalisation en temps réel Pour les entreprises, mais uniquement sur Android « Imaginez : vous êtes un opérateur pour un fournisseur d'électricité. Vous recevez un appel concernant une panne électrique et vous devez rapidement dépêcher sur place un de vos techniciens. Google Maps Coordinate peut vous aider ». Voici comment Google présente son nouveau service aux entreprises déclinés des Google Maps. Cette solution à la croisée de la géolocalisation en temps réel et des smartphones sort au moment où cabinet d'études IDC estime qu'il y aura plus de 1,3 milliard de travailleurs mobiles d'ici 2015 (soit 37,2% des employés au total).

    Read the article

  • What is the fastest cyclic synchronization in Java (ExecutorService vs. CyclicBarrier vs. X)?

    - by Alex Dunlop
    Which Java synchronization construct is likely to provide the best performance for a concurrent, iterative processing scenario with a fixed number of threads like the one outlined below? After experimenting on my own for a while (using ExecutorService and CyclicBarrier) and being somewhat surprised by the results, I would be grateful for some expert advice and maybe some new ideas. Existing questions here do not seem to focus primarily on performance, hence this new one. Thanks in advance! The core of the app is a simple iterative data processing algorithm, parallelized to the spread the computational load across 8 cores on a Mac Pro, running OS X 10.6 and Java 1.6.0_07. The data to be processed is split into 8 blocks and each block is fed to a Runnable to be executed by one of a fixed number of threads. Parallelizing the algorithm was fairly straightforward, and it functionally works as desired, but its performance is not yet what I think it could be. The app seems to spend a lot of time in system calls synchronizing, so after some profiling I wonder whether I selected the most appropriate synchronization mechanism(s). A key requirement of the algorithm is that it needs to proceed in stages, so the threads need to sync up at the end of each stage. The main thread prepares the work (very low overhead), passes it to the threads, lets them work on it, then proceeds when all threads are done, rearranges the work (again very low overhead) and repeats the cycle. The machine is dedicated to this task, Garbage Collection is minimized by using per-thread pools of pre-allocated items, and the number of threads can be fixed (no incoming requests or the like, just one thread per CPU core). V1 - ExecutorService My first implementation used an ExecutorService with 8 worker threads. The program creates 8 tasks holding the work and then lets them work on it, roughly like this: // create one thread per CPU executorService = Executors.newFixedThreadPool( 8 ); ... // now process data in cycles while( ...) { // package data into 8 work items ... // create one Callable task per work item ... // submit the Callables to the worker threads executorService.invokeAll( taskList ); } This works well functionally (it does what it should), and for very large work items indeed all 8 CPUs become highly loaded, as much as the processing algorithm would be expected to allow (some work items will finish faster than others, then idle). However, as the work items become smaller (and this is not really under the program's control), the user CPU load shrinks dramatically: blocksize | system | user | cycles/sec 256k 1.8% 85% 1.30 64k 2.5% 77% 5.6 16k 4% 64% 22.5 4096 8% 56% 86 1024 13% 38% 227 256 17% 19% 420 64 19% 17% 948 16 19% 13% 1626 Legend: - block size = size of the work item (= computational steps) - system = system load, as shown in OS X Activity Monitor (red bar) - user = user load, as shown in OS X Activity Monitor (green bar) - cycles/sec = iterations through the main while loop, more is better The primary area of concern here is the high percentage of time spent in the system, which appears to be driven by thread synchronization calls. As expected, for smaller work items, ExecutorService.invokeAll() will require relatively more effort to sync up the threads versus the amount of work being performed in each thread. But since ExecutorService is more generic than it would need to be for this use case (it can queue tasks for threads if there are more tasks than cores), I though maybe there would be a leaner synchronization construct. V2 - CyclicBarrier The next implementation used a CyclicBarrier to sync up the threads before receiving work and after completing it, roughly as follows: main() { // create the barrier barrier = new CyclicBarrier( 8 + 1 ); // create Runable for thread, tell it about the barrier Runnable task = new WorkerThreadRunnable( barrier ); // start the threads for( int i = 0; i < 8; i++ ) { // create one thread per core new Thread( task ).start(); } while( ... ) { // tell threads about the work ... // N threads + this will call await(), then system proceeds barrier.await(); // ... now worker threads work on the work... // wait for worker threads to finish barrier.await(); } } class WorkerThreadRunnable implements Runnable { CyclicBarrier barrier; WorkerThreadRunnable( CyclicBarrier barrier ) { this.barrier = barrier; } public void run() { while( true ) { // wait for work barrier.await(); // do the work ... // wait for everyone else to finish barrier.await(); } } } Again, this works well functionally (it does what it should), and for very large work items indeed all 8 CPUs become highly loaded, as before. However, as the work items become smaller, the load still shrinks dramatically: blocksize | system | user | cycles/sec 256k 1.9% 85% 1.30 64k 2.7% 78% 6.1 16k 5.5% 52% 25 4096 9% 29% 64 1024 11% 15% 117 256 12% 8% 169 64 12% 6.5% 285 16 12% 6% 377 For large work items, synchronization is negligible and the performance is identical to V1. But unexpectedly, the results of the (highly specialized) CyclicBarrier seem MUCH WORSE than those for the (generic) ExecutorService: throughput (cycles/sec) is only about 1/4th of V1. A preliminary conclusion would be that even though this seems to be the advertised ideal use case for CyclicBarrier, it performs much worse than the generic ExecutorService. V3 - Wait/Notify + CyclicBarrier It seemed worth a try to replace the first cyclic barrier await() with a simple wait/notify mechanism: main() { // create the barrier // create Runable for thread, tell it about the barrier // start the threads while( ... ) { // tell threads about the work // for each: workerThreadRunnable.setWorkItem( ... ); // ... now worker threads work on the work... // wait for worker threads to finish barrier.await(); } } class WorkerThreadRunnable implements Runnable { CyclicBarrier barrier; @NotNull volatile private Callable<Integer> workItem; WorkerThreadRunnable( CyclicBarrier barrier ) { this.barrier = barrier; this.workItem = NO_WORK; } final protected void setWorkItem( @NotNull final Callable<Integer> callable ) { synchronized( this ) { workItem = callable; notify(); } } public void run() { while( true ) { // wait for work while( true ) { synchronized( this ) { if( workItem != NO_WORK ) break; try { wait(); } catch( InterruptedException e ) { e.printStackTrace(); } } } // do the work ... // wait for everyone else to finish barrier.await(); } } } Again, this works well functionally (it does what it should). blocksize | system | user | cycles/sec 256k 1.9% 85% 1.30 64k 2.4% 80% 6.3 16k 4.6% 60% 30.1 4096 8.6% 41% 98.5 1024 12% 23% 202 256 14% 11.6% 299 64 14% 10.0% 518 16 14.8% 8.7% 679 The throughput for small work items is still much worse than that of the ExecutorService, but about 2x that of the CyclicBarrier. Eliminating one CyclicBarrier eliminates half of the gap. V4 - Busy wait instead of wait/notify Since this app is the primary one running on the system and the cores idle anyway if they're not busy with a work item, why not try a busy wait for work items in each thread, even if that spins the CPU needlessly. The worker thread code changes as follows: class WorkerThreadRunnable implements Runnable { // as before final protected void setWorkItem( @NotNull final Callable<Integer> callable ) { workItem = callable; } public void run() { while( true ) { // busy-wait for work while( true ) { if( workItem != NO_WORK ) break; } // do the work ... // wait for everyone else to finish barrier.await(); } } } Also works well functionally (it does what it should). blocksize | system | user | cycles/sec 256k 1.9% 85% 1.30 64k 2.2% 81% 6.3 16k 4.2% 62% 33 4096 7.5% 40% 107 1024 10.4% 23% 210 256 12.0% 12.0% 310 64 11.9% 10.2% 550 16 12.2% 8.6% 741 For small work items, this increases throughput by a further 10% over the CyclicBarrier + wait/notify variant, which is not insignificant. But it is still much lower-throughput than V1 with the ExecutorService. V5 - ? So what is the best synchronization mechanism for such a (presumably not uncommon) problem? I am weary of writing my own sync mechanism to completely replace ExecutorService (assuming that it is too generic and there has to be something that can still be taken out to make it more efficient). It is not my area of expertise and I'm concerned that I'd spend a lot of time debugging it (since I'm not even sure my wait/notify and busy wait variants are correct) for uncertain gain. Any advice would be greatly appreciated.

    Read the article

  • NPE when drawing TabWidget in android (only on HTC Magic?)

    - by David Hedlund
    I've received report from the user of an app I've written that he gets FC whenever starting a certain activity. I have not been able to reproduce the issue on the emulator or on my HTC Hero (running 1.5), but this user running HTC Magic (with 1.6) is facing this error every time. What bothers me is that no single step in the stacktrace actually includes any code in my app (com.filmtipset) 01-07 00:10:26.773 I/ActivityManager( 141): Starting activity: Intent { cmp=com.filmtipset/.ViewMovie (has extras) } 01-07 00:10:27.023 D/AndroidRuntime( 2402): Shutting down VM 01-07 00:10:27.023 W/dalvikvm( 2402): threadid=3: thread exiting with uncaught exception (group=0x4001e170) 01-07 00:10:27.023 E/AndroidRuntime( 2402): Uncaught handler: thread main exiting due to uncaught exception 01-07 00:10:27.083 E/AndroidRuntime( 2402): java.lang.NullPointerException 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.widget.TabWidget.dispatchDraw(TabWidget.java:173) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1529) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.View.draw(View.java:6552) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.widget.FrameLayout.draw(FrameLayout.java:352) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.drawChild(ViewGroup.java:1531) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1258) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.View.draw(View.java:6552) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.widget.FrameLayout.draw(FrameLayout.java:352) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1883) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewRoot.draw(ViewRoot.java:1332) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewRoot.performTraversals(ViewRoot.java:1097) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.view.ViewRoot.handleMessage(ViewRoot.java:1613) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.os.Handler.dispatchMessage(Handler.java:99) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.os.Looper.loop(Looper.java:123) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at android.app.ActivityThread.main(ActivityThread.java:4320) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at java.lang.reflect.Method.invokeNative(Native Method) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at java.lang.reflect.Method.invoke(Method.java:521) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) 01-07 00:10:27.083 E/AndroidRuntime( 2402): at dalvik.system.NativeStart.main(Native Method) Full dump here if I've missed anything of interest I'm guessing, then, that there might be something wrong with my layout. It's quite verbose, so I'm posting it here, rather than pasting the whole thing on SO. There is a tabwidget, where one tab is connected to the scrollview, svFilmInfo, and one to the linear layout llComments. The tab host is populated as such: Drawable commentSelector = getResources().getDrawable(R.drawable.tabcomment); Drawable infoSelector = getResources().getDrawable(R.drawable.tabinfo); mTabHost = getTabHost(); mTabHost.getTabWidget().setBackgroundColor(Color.BLACK); mTabHost.addTab(mTabHost.newTabSpec("tabInfo").setIndicator("Filminfo", infoSelector).setContent(R.id.svFilmInfo)); mTabHost.addTab(mTabHost.newTabSpec("tabInfo").setIndicator("Kommentarer", commentSelector).setContent(R.id.llComments)); Since I cannot reproduce the error myself, and since I cannot find any mention in the stack trace of what might be causing the error, I don't quite know where to start troubleshooting this. I'd appreciate any pointers.

    Read the article

  • After downloading an application with two Launcher components from the Marketplace, clicking "Open"

    - by user267728
    Create a sample application with two launcher icons. For example, two components such as: <application ...> <activity ... android:name="TestActivity01"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity ... android:name="TestActivity02"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> Either install the application via downloading from the Marketplace, or via AppInstaller. When the message box asks you if you would like to run the application, an exception is thrown: 02-03 16:42:44.270: ERROR/AndroidRuntime(395): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.xxx.xxx/com.android.internal.app.ResolverActivity}; have you declared this activity in your AndroidManifest.xml? 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1 480) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1454) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.app.Activity.startActivityForResult(Activity.java:2660) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.app.Activity.startActivity(Activity.java:2704) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at com.android.packageinstaller.InstallAppDone.onClick(InstallAppDone.java:105 ) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.View.performClick(View.java:2344) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.View.onTouchEvent(View.java:4133) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.widget.TextView.onTouchEvent(TextView.java:6504) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.View.dispatchTouchEvent(View.java:3672) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEv ent(PhoneWindow.java:1712) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneW indow.java:1202) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.app.Activity.dispatchTouchEvent(Activity.java:1987) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(P honeWindow.java:1696) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.view.ViewRoot.handleMessage(ViewRoot.java:1658) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.os.Handler.dispatchMessage(Handler.java:99) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.os.Looper.loop(Looper.java:123) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at android.app.ActivityThread.main(ActivityThread.java:4203) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at java.lang.reflect.Method.invokeNative(Native Method) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at java.lang.reflect.Method.invoke(Method.java:521) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 791) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) 02-03 16:42:44.270: ERROR/AndroidRuntime(395): at dalvik.system.NativeStart.main(Native Method) The crash happens because com.android.internal.app.ResolverActivity is trying to find a (single) component which resolves the following intent: <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> Please note that this has been tested BOTH with the AppInstaller, and the actual Marketplace on a real device.

    Read the article

< Previous Page | 483 484 485 486 487 488 489 490 491 492 493 494  | Next Page >