Search Results

Search found 3555 results on 143 pages for 'son of fire'.

Page 25/143 | < Previous Page | 21 22 23 24 25 26 27 28 29 30 31 32  | Next Page >

  • Take care to unhook Anonymous Delegates

    - by David Vallens
    Anonymous delegates are great, they elimiante the need for lots of small classes that just pass values around, however care needs to be taken when using them, as they are not automatically unhooked when the function you created them in returns. In fact after it returns there is no way to unhook them. Consider the following code.   using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { SimpleEventSource t = new SimpleEventSource(); t.FireEvent(); FunctionWithAnonymousDelegate(t); t.FireEvent(); } private static void FunctionWithAnonymousDelegate(SimpleEventSource t) { t.MyEvent += delegate(object sender, EventArgs args) { Debug.WriteLine("Anonymous delegate called"); }; t.FireEvent(); } } public class SimpleEventSource { public event EventHandler MyEvent; public void FireEvent() { if (MyEvent == null) { Debug.WriteLine("Attempting to fire event - but no ones listening"); } else { Debug.WriteLine("Firing event"); MyEvent(this, EventArgs.Empty); } } } } If you expected the anonymous delegates do die with the function that created it then you would expect the output Attempting to fire event - but no ones listeningFiring eventAnonymous delegate calledAttempting to fire event - but no ones listening However what you actually get is Attempting to fire event - but no ones listeningFiring eventAnonymous delegate calledFiring eventAnonymous delegate called In my example the issue is just slowing things down, but if your delegate modifies objects, then you could end up with dificult to diagnose bugs. A solution to this problem is to unhook the delegate within the function var myDelegate = delegate(){Console.WriteLine("I did it!");}; MyEvent += myDelegate; // .... later MyEvent -= myDelegate;

    Read the article

  • Object array updates one instance repeatedly [on hold]

    - by MGN001
    I'm making a 2D shooter, and the player object holds an array of bullets that represent how many shots the player can have on screen at once. At least, this is what I'm trying for. What's happening is that each time any of the objects in the array is called, it seems to update a single object in memory. So, if I fire and then fire again, the object "starts over" from where I shot from and moves twice as fast. I've spent weeks trying to fix this and I've managed nothing. Hopefully another pair of eyes will see something I've missed. Player.cpp #include "Player.h" const int startLives = 3; const int maxHealth = 2; const float speed = 1; const int maxVelocity = 500; const int topBound = WINDOW_HEIGHT / 5 * 3; const int slowRate = 500; const int accRate = 1000; const int maxBullets = 5; const float spriteWidth = 99; const float spriteHeight = 75; const Vector2f startPosition = { (WINDOW_WIDTH / 2) - (spriteWidth / 2), (WINDOW_HEIGHT / 4 * 3) - (spriteHeight / 2) }; Bullet bullets[maxBullets]; Bullet * bulletPointers[maxBullets]; SDL_Texture * playerHealthy; SDL_Texture * playerDamaged; SDL_Texture * currentSprite; SDL_Rect * rect; Vector2f position; Vector2f velocity; int Health; int Lives; Player::Player() { rect = new SDL_Rect(); } Player::~Player() { SDL_DestroyTexture(playerHealthy); SDL_DestroyTexture(playerDamaged); SDL_DestroyTexture(currentSprite); rect = NULL; } void Player::Initialize(SDL_Renderer * renderer) { SDL_Surface * temp; temp = IMG_Load(".\\Sprites\\player.png"); if (temp == NULL) { printf("Initialization Error: %s\n", IMG_GetError()); exit(PLAYER_INITIALIZATION_ERROR); } playerHealthy = SDL_CreateTextureFromSurface(renderer, temp); temp = IMG_Load(".\\Sprites\\playerDamaged.png"); if (temp == NULL) { printf("Initialization Error: %s\n", IMG_GetError()); exit(PLAYER_INITIALIZATION_ERROR); } playerDamaged = SDL_CreateTextureFromSurface(renderer, temp); temp = IMG_Load(".\\Sprites\\laserGreen.png"); if (temp == NULL) { printf("Initialization Error: %s\n", IMG_GetError()); exit(PLAYER_INITIALIZATION_ERROR); } SDL_Texture * bullet = SDL_CreateTextureFromSurface(renderer, temp); temp = IMG_Load(".\\Sprites\\laserGreenShot.png"); if (temp == NULL) { printf("Initialization Error: %s\n", IMG_GetError()); exit(PLAYER_INITIALIZATION_ERROR); } SDL_Texture * explosion = SDL_CreateTextureFromSurface(renderer, temp); for (int i = 0; i < maxBullets; i++) { bullets[i].Initialize(renderer, bullet, explosion); bulletPointers[i] = NULL; } temp = NULL; rect->h = spriteHeight; rect->w = spriteWidth; Reset(); } void Player::Update(Input input, float deltaTime) { if (abs(velocity.x) < slowRate * deltaTime) { velocity.x = 0; } else if (velocity.x > 0) { velocity.x -= slowRate * deltaTime; } else if (velocity.x < 0) { velocity.x += slowRate * deltaTime; } if (abs(velocity.y) < slowRate * deltaTime) { velocity.y = 0; } if (velocity.y > 0) { velocity.y -= slowRate * deltaTime; } else if (velocity.y < 0) { velocity.y += slowRate * deltaTime; } if (Health <= 0) { --Lives; Spawn(); } velocity.x += UnitVector(input.InputNew.movement).x * accRate * deltaTime; velocity.y += UnitVector(input.InputNew.movement).y * accRate * deltaTime; if (Magnitude(velocity) > maxVelocity) { velocity.x = UnitVector(velocity).x * maxVelocity; velocity.y = UnitVector(velocity).y * maxVelocity; } position.x += velocity.x * deltaTime * speed; position.y += velocity.y * deltaTime * speed; if (input.InputNew.JumpLeft && !input.InputOld.JumpLeft) { position.x -= spriteWidth; } if (input.InputNew.JumpRight && !input.InputOld.JumpRight) { position.x += spriteWidth; } Boundaries(); rect->x = position.x; rect->y = position.y; if (input.InputNew.Fire && !input.InputOld.Fire) { Fire(); } for (int i = 0; i < maxBullets; ++i) { if (bulletPointers[i] != NULL) { bullets[i].Update(deltaTime); if (bullets[i].getPosition().y < -33) { bulletPointers[i] = NULL; } } } } void Player::Draw(SDL_Renderer * renderer) { for (int i = 0; i < maxBullets; ++i) { if (bulletPointers[i] != NULL) { bullets[i].Draw(renderer); } } SDL_RenderCopy(renderer, currentSprite, NULL, rect); } void Player::Spawn() { position = startPosition; Health = maxHealth; currentSprite = playerHealthy; rect->x = position.x; rect->y = position.y; } void Player::Boundaries() { if (position.x < 0) { position.x = 0; velocity.x *= -1; } else if (position.x > WINDOW_WIDTH - spriteWidth) { position.x = WINDOW_WIDTH - spriteWidth; velocity.x *= -1; } if (position.y < topBound) { position.y = topBound; velocity.y *= -1; } else if (position.y > WINDOW_HEIGHT - spriteHeight) { position.y = WINDOW_HEIGHT - spriteHeight; velocity.y *= -1; } } int Player::getLives() { return Lives; } void Player::Reset() { Lives = startLives; Spawn(); } void Player::Fire() { for (int i = 0; i < maxBullets; ++i) { if (bulletPointers[i] == NULL) { bulletPointers[i] = &bullets[i]; bullets[i].Fire(position,velocity.x/2); break; } } } Bullet.cpp #include "Bullet.h" const int speed = 500; Vector2f bulletVelocity; float ExplosionMax = 0.5f; float ExplosionTimer; const Vector2f fireOffset = { 45.5f, 10.0f }; const Vector2f explosionOffset = { 23.5f, -27.0f }; const Vector2i bulletSize = { 9, 33 }; const Vector2i explosionSize = { 56, 54 }; Vector2f bulletPosition; SDL_Texture * bulletSprite; SDL_Texture * explosionSprite; SDL_Texture * bulletCurrentSprite; SDL_Rect * bulletRect; Bullet::Bullet() { } Bullet::~Bullet() { } void Bullet::Initialize(SDL_Renderer * renderer, SDL_Texture * bullet, SDL_Texture * explosion) { bulletSprite = bullet; explosionSprite = explosion; bulletRect = new SDL_Rect(); } void Bullet::Update(float deltaTime) { bulletPosition.y -= bulletVelocity.y * deltaTime; bulletPosition.x += bulletVelocity.x * deltaTime; bulletRect->x = static_cast<int>(bulletPosition.x); bulletRect->y = static_cast<int>(bulletPosition.y); } void Bullet::Draw(SDL_Renderer * renderer) { SDL_RenderCopy(renderer, bulletCurrentSprite, NULL, bulletRect); } void Bullet::Fire(Vector2f pos, float xSpeed) { bulletPosition.x = pos.x + fireOffset.x; bulletPosition.y = pos.y + fireOffset.y; bulletVelocity.x = xSpeed; bulletVelocity.y = speed; bulletCurrentSprite = bulletSprite; bulletRect->h = bulletSize.y; bulletRect->w = bulletSize.x; bulletRect->x = static_cast<int>(bulletPosition.x); bulletRect->y = static_cast<int>(bulletPosition.y); } Vector2f Bullet::getPosition() { return bulletPosition; } void Bullet::Hit() { bulletCurrentSprite = explosionSprite; bulletVelocity = { 0.0f, 0.0f }; ExplosionTimer = ExplosionMax; bulletPosition.x += explosionOffset.x; bulletPosition.y += explosionOffset.y; bulletRect->w = explosionSize.x; bulletRect->h = explosionSize.y; }

    Read the article

  • How does fork() return for child process

    - by EpsilonVector
    I know that fork() returns differently for the son and father processes, but I'm unable to find information on how this happens. How does the son process receive the return value 0 from fork? And what is the difference in regards to the call stack? As I understand it, for the father it goes something like this: father process--invokes fork--system_call--calls fork--fork executes--returns to--system_call--returns to--father process. What happens in the son side?

    Read the article

  • ruby restrict attr_accessor in subclass

    - by Arivarasan
    I want restrict the access of superclass's method in subclass class Parent attr_accessor :first_name, :last_name def initialize(first_name, last_name) @first_name, @last_name = first_name, last_name end def full_name @first_name + " " + @last_name end end class Son < Parent attr_accessor :first_name def initialize(parent, first_name) @first_name = first_name @last_name = parent.last_name end def full_name @first_name + " " + @last_name end end p = Parent.new("Bharat", "Chipli") puts p.full_name s = Son.new(p, "Harry") s.last_name= "Smith" puts s.full_name here i am getting son's full name as "Harry Smith", but i want "Harry Chipli"

    Read the article

  • Pyro Jam Can Is a DIY Mini Ruben’s Tube

    - by Jason Fitzpatrick
    Earlier this year we showed you how to make a full-size Ruben’s Tube; now make a tiny single-column fire speaker with the Pyro Jam Can. Instructables’ user Patrick needed a simple device to enter into an Instuctables contest centered on fire-themed projects. His contribution, seen in the video above, is a single-column Ruben’s Tube (for the unfamiliar, a Ruben’s Tube is a device through which sound and flammable gas are passed; the resulting flame is modulated by the frequency of the sound). If your next party wouldn’t be the same without a sound system that pumps bass beats and fire, you know where to get started. The Pyro Jam Can [via Hack A Day] Use Amazon’s Barcode Scanner to Easily Buy Anything from Your Phone How To Migrate Windows 7 to a Solid State Drive Follow How-To Geek on Google+

    Read the article

  • « Des alternatives open-sources matures existent sur tous les sujets d'entreprise », entretien autour du Guide de l'Open-Source

    « Des alternatives open-sources matures existent sur tous les sujets de l'entreprise » Entretien avec Grégory Bécue, auteur de la deuxième édition du Guide de l'open-source de Smile A l'occasion de la sortie de la deuxième édition du Guide de l'Open-Source, le Livre Blanc gratuit de référence de Smile, Developpez s'est entretenu avec le responsable de cette publication, Grégory Bécue. Nous avons abordé les motivations d'un tel guide, son intérêt pour les professionnels, ce qu'on y trouve concrètement, son histoire et ses nouveautés. Developpez.com : pourquoi faire un guide de l'open-source ? C...

    Read the article

  • Richard Stallman et la révolution du logiciel libre, une biographie autorisée, un livre à lire et à télécharger gratuitement sur Développez

    Bonjour, nous avons le plaisir de vous présenter le livre "Richard Stallman et la révolution du logiciel libre, Une biographie autorisée" disponible directement sur notre site: Citation: « Chaque génération a son philosophe, écrivain ou artiste qui saisit et incarne l'imaginaire du moment. Il arrive que ces philosophes soient reconnus de leur vivant, mais le plus souvent il faut attendre que la patine du temps fasse son effet. Qu...

    Read the article

  • Codendi 4.2 : le gestionnaire de cycle de vie des logiciels disponible en version finale et gratuitement pour sa licence Community

    Codendi 4.2 : le gestionnaire de cycle de vie des logiciels disponible en version finale Et gratuitement pour sa licence Community Mise à jour du 15/10/2010 par Idelways Codendi vient d'annoncer sur son blog la disponibilité en version finale et stable de la version 4.2 de son gestionnaire de cycle de vie des logiciels. Disponible depuis Juin en version bêta et depuis octobre en Release Candidate (lire ci-avant), cette version embarque un gestionnaire des suivie (tracker) refondu, offrant une interface plus intuitive et une gestion du flux de travail plus efficace. Parmi les autres nouveautés, un plugin po...

    Read the article

  • Steve Ballmer démissionne du conseil d'administration de Microsoft pour mieux se consacrer à ses affaires

    Steve Ballmer démissionne du conseil d'administration de Microsoft pour mieux se consacrer à ses affairesIl y a presque un an, Steve Ballmer, ex PDG de Microsoft, avait annoncé qu'il quitterait Microsoft dans 12 mois, le temps que la firme prépare sa succession. Dans une lettre adressée à son successeur Satya Nadella, il a annoncé sa démisson de son poste de membre du conseil d'administration. C'était en 2000 qu'il fut nommé comme PDG de Microsoft à la succession de Bill Gates. Même s'il a longuement...

    Read the article

  • Une entreprise devrait-elle payer moins d'impôts si elle investit beaucoup localement ? En Australie, Google suggère de « mettre l'accent dessus »

    Une entreprise devrait-elle payer moins d'impôts si elle investit beaucoup localement ? En Australie, le patron de Google suggère de « mettre l'accent dessus » Maile Carnegie, le chef Google Australie, s'attend à ce que le gouvernement clarifie les zones d'ombres dans son système global d'imposition. La directrice a reconnu que les critiques à l'endroit des impôts que verse son entreprise est compréhensible, mais ne tient cependant pas compte de l'impact de l'investissement de la compagnie dans...

    Read the article

  • Row Count Plus Transformation

    As the name suggests we have taken the current Row Count Transform that is provided by Microsoft in the Integration Services toolbox and we have recreated the functionality and extended upon it. There are two things about the current version that we thought could do with cleaning up Lack of a custom UI You have to type the variable name yourself In the Row Count Plus Transformation we solve these issues for you. Another thing we thought was missing is the ability to calculate the time taken between components in the pipeline. An example usage would be that you want to know how many rows flowed between Component A and Component B and how long it took. Again we have solved this issue. Credit must go to Erik Veerman of Solid Quality Learning for the idea behind noting the duration. We were looking at one of his packages and saw that he was doing something very similar but he was using a Script Component as a transformation. Our philosophy is that if you have to write or Copy and Paste the same piece of code more than once then you should be thinking about a custom component and here it is. The Row Count Plus Transformation populates variables with the values returned from; Counting the rows that have flowed through the path Returning the time in seconds between when it first saw a row come down this path and when it saw the final row. It is possible to leave both these boxes blank and the component will still work.   All input columns are passed through the transformation unaltered, you are not permitted to change or add to the inputs or outputs of this component. Optionally you can set the component to fire an event, which happens during the PostExecute phase of the execution. This can be useful to improve visibility of this information, such that it is captured in package logging, or can be used to drive workflow in the case of an error event. Properties Property Data Type Description OutputRowCountVariable String The name of the variable into which the amount of row read will be passed (Optional). OutputDurationVariable String The name of the variable into which the duration in seconds will be passed. (Optional). EventType RowCountPlusTransform.EventType The type of event to fire during post execute, included in which are the row count and duration values. RowCountPlusTransform.EventType Enumeration Name Value Description None 0 Do not fire any event. Information 1 Fire an Information event. Warning 2 Fire a Warning event. Error 3 Fire an Error event. Installation The component is provided as an MSI file which you can download and run to install it. This simply places the files on disk in the correct locations and also installs the assemblies in the Global Assembly Cache as per Microsoft’s recommendations. You may need to restart the SQL Server Integration Services service, as this caches information about what components are installed, as well as restarting any open instances of Business Intelligence Development Studio (BIDS) / Visual Studio that you may be using to build your SSIS packages. For 2005/2008 Only - Finally you will have to add the transformation to the Visual Studio toolbox manually. Right-click the toolbox, and select Choose Items.... Select the SSIS Data Flow Items tab, and then check the Row Count Plus Transformation in the Choose Toolbox Items window. This process has been described in detail in the related FAQ entry for How do I install a task or transform component? We recommend you follow best practice and apply the current Microsoft SQL Server Service pack to your SQL Server servers and workstations, and this component requires a minimum of SQL Server 2005 Service Pack 1. Downloads The Row Number Transformation is available for SQL Server 2005, SQL Server 2008 (includes R2) and SQL Server 2012. Please choose the version to match your SQL Server version, or you can install multiple versions and use them side by side if you have more than one version of SQL Server installed. Row Count Plus Transformation for SQL Server 2005 Row Count Plus Transformation for SQL Server 2008 Row Count Plus Transformation for SQL Server 2012 Version History SQL Server 2012 Version 3.0.0.6 - SQL Server 2012 release. Includes upgrade support for both 2005 and 2008 packages to 2012. (5 Jun 2012) SQL Server 2008 Version 2.0.0.5 - SQL Server 2008 release. (15 Oct 2008) SQL Server 2005 Version 1.1.0.43 - Bug fix for duration. For long running processes the duration second count may have been incorrect. (8 Sep 2006) Version 1.1.0.42 - SP1 Compatibility Testing. Added the ability to raise an event with the count and duration data for easier logging or workflow. (18 Jun 2006) Version 1.0.0.1 - SQL Server 2005 RTM. Made available as general public release. (20 Mar 2006) Screenshot Troubleshooting Make sure you have downloaded the version that matches your version of SQL Server. We offer separate downloads for SQL Server 2005, SQL Server 2008 and SQL Server 2012. If you get an error when you try and use the component along the lines of The component could not be added to the Data Flow task. Please verify that this component is properly installed.  ... The data flow object "Konesans ..." is not installed correctly on this computer, this usually indicates that the internal cache of SSIS components needs to be updated. This is held by the SSIS service, so you need restart the the SQL Server Integration Services service. You can do this from the Services applet in Control Panel or Administrative Tools in Windows. You can also restart the computer if you prefer. You may also need to restart any current instances of Business Intelligence Development Studio (BIDS) / Visual Studio that you may be using to build your SSIS packages. Once installation is complete you need to manually add the task to the toolbox before you will see it and to be able add it to packages - How do I install a task or transform component?

    Read the article

  • Google réagit à la décision de Nokia d'utiliser Windows Phone 7 : « deux dindes ne font pas un aigle » écrit un de ses responsables

    Google réagit à la décision de Nokia d'utiliser Windows Phone 7 « Deux dindes » ne feraient pas « un aigle » Google réagit à la décision de Nokia de choisir Windows Phone 7 pour ses futurs Smartphones haut de gamme au lieu de son OS mobile Android. Le constructeur Finlandais, dans un communiqué publié la semaine dernière, a présenté les axes de sa nouvelle stratégie dont le plus important est la confirmation de son partenariat avec Microsoft pour utiliser Windows Phone 7 comme nouvelle plate-forme pour ses terminaux mobiles. Microsoft et Google avaient formulé chacun une offre pour convaincre N...

    Read the article

  • Steve Jobs signe une longue lettre ouverte sur Flash, et sur les raisons qui le poussent à s'opposer

    Mise à jour du 29/04/10 NB : Les commentaires sur cette mise à jour commencent ici dans le topic Lettre ouverte de Steve Jobs sur Flash Apple a publié sur son site une lettre signée par Steve Jobs lui-même, et par lui seul, où il s'exprime à propos de la technologie Flash d'Adobe. Après avoir parlé dans son introduction des relations entre Apple et Adobe, Il aborde ainsi 6 points : C'est ouvert L'accès à l'entiereté du Web La sécurité et la performance La dur...

    Read the article

  • Acer lancera six modèles de smartphones en 2013, dont un sous Windows Phone 8

    Acer lancera six modèles de smartphones en 2013 dont un sous Windows Phone 8 Acer envisage également de commercialiser un smartphone sous le futur système d'exploitation Windows Phone 8. Après Samsung avec son smartphone ATIV S, Nokia qui présentera ses modèles de terminaux sous l'OS ce jour, c'est au tour du constructeur taïwanais de manifester son intention de publier un téléphone Windows Phone 8. Le président de la société Jim Wong a annoncé que l'année 2013 serait marquée par la publication de six nouveaux modèles de smartphones. L'un des mod...

    Read the article

  • Firefox 25 sort en version stable, la nouvelle interface utilisateur Australis reportée à Firefox 28

    Firefox 25 sort en version stable la nouvelle interface utilisateur Australis reportée à Firefox 28La fondation Mozilla vient de publier une nouvelle itération de son célèbre navigateur Firefox.Téléchargeable sur les serveurs FTP de l'organisme, cette mouture sera poussée aux utilisateurs du navigateur dans les heures qui suivent via son processus de mise à jour silencieuse.Cette version n'apporte que quelques améliorations mineures, notamment au niveau de la barre de recherche, qui n'est plus...

    Read the article

  • La préversion du pilote ODBC SQL Server pour Linux disponible, avec des outils pour SQLCMD et pour importer et exporter des données

    La préversion du pilote ODBC SQL Server pour Linux disponible avec des outils pour importer, exporter des données et exécuter des requêtes et scripts Comme l'avait annoncé Microsoft lors de son salon Pass Summit 2011, la préversion (CTP1) de son pilote ODBC (Open Database Connectity) SQL Server pour les systèmes d'exploitation Linux est disponible. Ce driver devrait permettre aux développeurs C et C++ de se connecter à SQL Server à partir des plateformes Linux et fournir un mécanisme pour que les applications et bibliothèques d'exécution (runtimes) puissent accéder à SQL Server. Pour l'instant, cett...

    Read the article

  • Webinar Smile : découvrez le CMS open source Ametys le mardi 22 octobre, via une conférence en ligne gratuite et interactive

    Webinar Smile : découvrez le CMS open source Ametys le mardi 22 octobre via une conférence en ligne gratuite et interactive Dans un contexte où l'offre de gestion de contenu open source est particulièrement riche, choisir l'outil CMS qui convient le mieux à ses besoins n'est pas toujours chose facile. Fort de son expertise et de son expérience dans la réalisation de projets en gestion de contenu open source, Smile souhaite vous présenter les atouts et les spécificités d'Ametys.Solution 100 % française,...

    Read the article

  • Chrome OS peut-il viser les entreprises ? Google pense que oui, et s'apprête à lancer une version mo

    Chrome OS peut-il viser les entreprises ? Google pense que oui, et s'apprêterait à lancer une version modifiée de son système d'exploitation Google travaille sur une version entreprise de son système d'exploitation Chrome OS. La nouvelle ne manque pas de poser question. Chrome OS est en effet un OS open-source, certes, mais très fermé. L'utilisateur ne peut pas installer les applications qu'il souhaite comme sur un système classique. Ce verrouillage permet une plus gr...

    Read the article

  • Sony ouvre le PlayStation Move aux développeurs universitaires et amateurs en sortant Move.Me : suffisant pour contrer Kinect ?

    Sony ouvre son PlayStation Move aux développeurs Universitaires et amateurs en sortant Move.Me : suffisant pour contrer le Kinect de Microsoft ? Il y a un an de cela lors de l'événement annuel Game Developers Conference 2010, Sony avait dévoilé officiellement son contrôleur à détection de mouvements pour sa console de Jeux la PlayStation 3, le PlayStation Move. Un an après, à l'occasion du même événement qui se déroule actuellement à San Francisco , Sony a annoncé Move.Me, un SDK que les étudiants, les chercheurs et les amateurs peuvent utiliser pour créer de nouvelles applications en utilisant le PlayStation Move.

    Read the article

  • Node.js : enfin une intégration native sous Windows, le framework événementiel en JavaScript arrive sur le Cloud d'Azure

    Node.js : enfin une intégration native et complète sous Windows Le framework événementiel en JavaScript arrive sur le Cloud d'Azure Mise à jour du 9 novembre 2011 par Idelways Microsoft a manifesté en juin dernier son soutien au projet Node.js, le framework JavaScript événementiel et open source (lire ci-devant). La collaboration de l'entreprise avec Joycent, qui parraine son équipe de développeurs, vient d'aboutir à la version 0.6.0 de Node, qui bénéficie d'un support natif et complet sur la plateforme Windows. Cette troisième édition stable de Node.js exploite l'API Windows « I/O Completion Ports », pour ...

    Read the article

  • Google décide de renforcer ses câbles sous-marins, pour les protéger des attaques des requins

    Google décide de renforcer ses câbles sous-marins pour les protéger des attaques des requins Google envisage de renforcer une partie de ses câbles sous-marins déjà en déploiement avec un matériau similaire à celui utilisé dans les gilets pare-balles afin de ? protéger ses câbles contre les attaques des requins. Par la voix de son chef de production Dan Belcher, la société a annoncé durant son évènement Google Cloud RoadShow qu'une partie des 100 000 miles de câbles qu'elle possède de par le...

    Read the article

  • Comment programmer le robot humanoïde Nao en .Net ? Extrait d'une session sur le sujet donnée aux TechDays 2011

    Comment programmer le robot humanoïde Nao en .Net ? Extrait d'une session sur le sujet donnée aux TechDays 2011 La semaine dernière, à l'occasion des TechDays et pour présenter son Developer Program, l'équipe d'Aldebaran Robotics a donné une conférence sur la manière de programmer son petit robot Nao via .Net, ce qui se révèle somme toute assez simple. Extrait, avec des actions basiques comme dire "Bonjour" ou tourner la tête :

    Read the article

  • badBIOS : le rootkit qui infecte les BIOS et communique par les airs, Windows, OS X, Linux et BSD sont tous vulnérables

    badBIOS, le rootkit qui infecte les BIOS et communique par les airs Windows, OS X, Linux et BSD sont tous vulnérables.L'expert en sécurité canadien Dragos Ruiu est victime depuis quelques années des turpitudes d'un rootkit inconnu (qu'il a surnommé badBIOS) particulièrement coriace et évolué.Il y a trois ans, Ruiu fut notifié d'une mise à jour pour le firmware de son MacBook Air dont le système était fraichement installé. Depuis cette « mise à jour », la plupart des machines de son laboratoire...

    Read the article

< Previous Page | 21 22 23 24 25 26 27 28 29 30 31 32  | Next Page >