Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1701 Le 01/08/2012, à 11:54

Elzen

Re : /* Topic des codeurs [7] */

grim7reaper a écrit :

Pourquoi dans un Pixbuf forcément ?
Sinon, tu peux passer par Cairo. Après si tu as absolument besoin d’un Pixbuf ça doit se convertir mais d’une part va sûrement falloir que tu fasses la conversion toi même, d’autre part ça sera sûrement pas super rapide.

Parce que tout mon système de gestion d'images, actuellement, est basé sur des Pixbuf, qui sont à ma connaissance le moyen de base de gérer les images en GTK (le composant gtk.Image, ainsi que les TreeView/IconView, utilisent ça dans tous les exemples que j'ai eu sous la main ; j'utilise aussi la bibli WNCK pour la partie gestion des fenêtres/bureaux, et elle renvoie les icônes des fenêtres comme des Pixbuf).

J'vais regarder du côté de Cairo, merci wink

grim7reaper a écrit :

Tiens (attention, c’est long) : Gay marriage: the database engineering perspective ^^

Lu en diagonal, ça a l'air assez chouette smile


Edit @The Uploader : deux liens morts, on dirait :s « Connexion avec le serveur réinitialisée pendant le chargement de la page »

Dernière modification par ArkSeth (Le 01/08/2012, à 11:55)

Hors ligne

#1702 Le 01/08/2012, à 12:04

The Uploader

Re : /* Topic des codeurs [7] */

@ArkSeth : fonctionne très bien chez moi.


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1703 Le 01/08/2012, à 13:34

tshirtman

Hors ligne

#1704 Le 01/08/2012, à 14:13

The Uploader

Re : /* Topic des codeurs [7] */

smile

Ça date un peu, mais je ne l'ai pas vu sur ce sujet :
mruby, une implémentation légère/réduite Ruby légère par Matz

Ruby Inside a écrit :

It's been in the making for a while (remember RiteVM?) but this week Matz's new 'lightweight' Ruby implementation, mruby, spread around the Rubysphere like wildfire. The key goal is to produce an embeddable Ruby implementation that has a smaller footprint than MRI.

Dernière modification par The Uploader (Le 01/08/2012, à 14:16)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1705 Le 01/08/2012, à 14:41

Elzen

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

@ArkSeth : fonctionne très bien chez moi.

'fectivement, avec le proxy vers chez moi, ça passe aussi. Ça doit être la connexion de mon labo qui n'aime pas le site (ou réciproquement). J'n'avais pas encore remarqué de problèmes comme ça yikes

Hors ligne

#1706 Le 02/08/2012, à 08:26

cervo

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

Hum... j'ai encore du mal à voir l'intérêt de Cells par rapport aux partials.
Tu l'as mis en application? tu as des retours là-dessus? Des meilleures perfs sont annoncées, tu as pu le constater?
Si c'est le cas, ça pourrait m'intéresser, j'ai quelques soucis de perfs sur l'affichage de nombreux partials dans une page.

Hors ligne

#1707 Le 02/08/2012, à 09:00

The Uploader

Re : /* Topic des codeurs [7] */

Quand tu partage un partial entre plusieurs controllers, c'est potentiellement très fragile, et j'trouve ça pas pratique.

Si les cells peuvent éviter ça, tant mieux.

Sinon non, j'ai pas testé.

Pour les perfs, chez moi c'est dû à l'affichage d'énormément de données (côté DB c'est pas mal non plus, mais c'est rien en comparaison du temps de génération de la page, d'après les logs). M'enfin mon serveur de dév' est très faiblard, et il n'y que sur lui que c'est si lent.

Dernière modification par The Uploader (Le 02/08/2012, à 09:36)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1708 Le 02/08/2012, à 09:58

cervo

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

Pour les perfs, chez moi c'est dû à l'affichage d'énormément de données (côté DB c'est pas mal non plus, mais c'est rien en comparaison du temps de génération de la page, d'après les logs). M'enfin mon serveur de dév' est très faiblard, et il n'y que sur lui que c'est si lent.

Perso côté BD c'est raisonnable, mais j'affiche 100 partials, donc le render est assez long (3s, pour une page et pour un user, c'est long tongue), même sur ma machine assez puissante (4GB de RAM, Core i5 2,7GHz).
Faut que je trouve le temps de tester avec Cell et de comparer les perfs, je ferais un retour ici (mais je suis blindé là, ce sera pas pour tout de suite)

Hors ligne

#1709 Le 02/08/2012, à 10:39

tshirtman

Re : /* Topic des codeurs [7] */

je suis en train d'essayer pourquoi notre connexion ldpa pour redmine ne marche pas, je descend dans le code de redmine avec le debugger, et j'arrive à ça

search_filter = object_filter & login_filter
if f = ldap_filter
  search_filter = search_filter & f
end

WAT D_D

Et dans le debugger, f et ldap_filter sont tous les deux "nil", dans un interpréteur ruby, un test sur une assignation de ce type renvoit nil (la valeur assignée, donc) donc le bout de code n'est pas exécuté dans mon cas, mais je ne vois vraiment pas l'intérêt de l'assignation et du test sur sa valeur quoi…

Dernière modification par tshirtman (Le 02/08/2012, à 10:47)

Hors ligne

#1710 Le 02/08/2012, à 10:56

The Uploader

Re : /* Topic des codeurs [7] */

Faut pas regarder le code de Redmine, c'est un coup à se pendre.

Moi j'me tape par exemple des noms de méthodes en CamelCase.

Genre, les conventions Ruby, quelles conventions ?


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1711 Le 02/08/2012, à 11:39

tshirtman

Re : /* Topic des codeurs [7] */

Ben après plus d'une journée à tenter de faire marcher la connexion ldap en aveugle, avec l'absence total d'info de debug qu'il pond à ce niveau dans les logs, j'en suis venu a fouiller le code, pas trop le choix ^^, on est déjà pas bien en avance sur ce projet (comment ça j'ai mangé 5 fois la charge prévue ? :])

Hors ligne

#1712 Le 02/08/2012, à 12:06

HP

Re : /* Topic des codeurs [7] */

The Uploader a écrit :

Une explication limpide à propos de Cells… c'est ce que je cherchais depuis fort longtemps…


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#1713 Le 02/08/2012, à 15:43

nesthib

Re : /* Topic des codeurs [7] */

vive le PHP ! (oui je sais… c'est surtout la faute du codeur là…)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#1714 Le 02/08/2012, à 15:49

cervo

Re : /* Topic des codeurs [7] */

nesthib a écrit :

vive le PHP ! (oui je sais… c'est surtout la faute du codeur là…)

OMG! je reviens, vais vomir...

Hors ligne

#1715 Le 02/08/2012, à 15:56

Elzen

Re : /* Topic des codeurs [7] */

C'est… mignon.

Un p'tit débutant qui ne sait pas encore faire de boucles smile

Hors ligne

#1716 Le 02/08/2012, à 16:29

Mindiell

Re : /* Topic des codeurs [7] */

tshirtman a écrit :

Ben après plus d'une journée à tenter de faire marcher la connexion ldap en aveugle, avec l'absence total d'info de debug qu'il pond à ce niveau dans les logs, j'en suis venu a fouiller le code, pas trop le choix ^^, on est déjà pas bien en avance sur ce projet (comment ça j'ai mangé 5 fois la charge prévue ? :])

Sinon, tu peux essayer CandyCane, une reprise de Redmine en php avec le framework CakePhp ;P

Sinon, le débutant, avant d'apprendre à faire des boucles, il faut surtout qu'il apprenne à indenter en fait, je pense smile

EDIT: Tiens, si on lis bien le code, il faut pas s'étonner de surfer plus vite avec Chrome après ça ! wink

Dernière modification par Mindiell (Le 02/08/2012, à 16:31)

Hors ligne

#1717 Le 02/08/2012, à 16:53

Elzen

Re : /* Topic des codeurs [7] */

Mindiell a écrit :

Sinon, le débutant, avant d'apprendre à faire des boucles, il faut surtout qu'il apprenne à indenter en fait, je pense smile

Oui, aussi (encore que l'indentation est techniquement correcte, ç'juste qu'il devrait utiliser elseif plutôt que de faire un nouveau bloc if dans le else à chaque fois). Il faudrait aussi qu'il apprenne à utiliser des return là où il faut (vu que je suppose qu'une fois toute cette série de if/else moches fermés, la seule chose qu'il fait, c'est return $browser_icon…). Mais faire un truc sur autant de lignes, alors qu'il suffit de se faire un tableau associatif avec les identifiants des navigateurs comme clefs et les icônes à utiliser comme valeurs, et de faire une boucle dessus ; ç'quand même ça le plus représentatif du manque d'habitude en codage, je trouve.

Hors ligne

#1718 Le 02/08/2012, à 16:55

The Uploader

Re : /* Topic des codeurs [7] */

ArkSeth a écrit :

C'est… mignon.

Un p'tit débutant qui ne sait pas encore faire de boucles smile

Perso, j'ferais un Hash, et j'retournerais la valeur associé à la clé de stripos($user_agent), à moins d'avoir loupé quelque chose, on peut éviter de faire une boucle, non ?

edit : grilled.

edit 2: ah nan en fait, on peut pas trop éviter la boucle... hmm
Pas les yeux en face des trous, moi..

Dernière modification par The Uploader (Le 02/08/2012, à 17:02)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1719 Le 02/08/2012, à 18:37

xapantu

Re : /* Topic des codeurs [7] */

Tiens, à propos de php qui segfaultait, python le fait aussi :

Traceback (most recent call last):
  File "heures/main.py", line 60, in <module>
    heures = Heures()
  File "heures/main.py", line 25, in __init__
    self.model.load_all()
  File "./bapp/model.py", line 99, in load_all
    for row in dbs[self.db].execute(self.select_query):
TypeError: 'NoneType' object is not iterable
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "./bapp/model.py", line 57, in run
    self.result = c.execute(self.query).fetchall()
OperationalError: no such column: affaires.client

Erreur de segmentation

tongue (bon, j'avais du demander un truc un peu tordu aussi...)

edit: en fait, après réflexion, il y a rien qui me prouve que c'était python, et pas sqlite ou un truc du genre...

Dernière modification par xapantu (Le 02/08/2012, à 18:38)

Hors ligne

#1720 Le 02/08/2012, à 18:48

Kanor

Re : /* Topic des codeurs [7] */

la belle faille dans les drivers nvidia
http://www.crazyws.fr/securite/vulnerab … 9TH64.html
(ça marche très bien chez moi hmm)

j'aime bien le how to dans le fichier du hack .

Hors ligne

#1721 Le 02/08/2012, à 19:37

Elzen

Re : /* Topic des codeurs [7] */

xapantu a écrit :

edit: en fait, après réflexion, il y a rien qui me prouve que c'était python, et pas sqlite ou un truc du genre...

Bah comme je l'ai dit, j'ai eu un paquet de segfault assez louches, mais je soupçonne plus GTK que Python.

Hors ligne

#1722 Le 02/08/2012, à 20:32

:!pakman

Re : /* Topic des codeurs [7] */

cervo a écrit :
nesthib a écrit :

vive le PHP ! (oui je sais… c'est surtout la faute du codeur là…)

OMG! je reviens, vais vomir...

Plié en deux pour ma part lol


...

Hors ligne

#1723 Le 02/08/2012, à 21:19

The Uploader

Re : /* Topic des codeurs [7] */

https://github.com/guybrush-threepwood/ … ad41222209

commit 8bdeb84137863fdd6c48c23d4ce94bad41222209 (HEAD, refs/heads/master)
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Thu Aug 2 22:16:00 2012 +0200

    Working BotTeam, nearly working Bot (dummy ExpertSystem)
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>
---
 ExpertSystem/expert_system.rb |  3 ++-
 MASWithTwoNests/agent.rb      |  5 +++++
 MASWithTwoNests/agent_type.rb |  9 ++++++++-
 MASWithTwoNests/bot.rb        | 34 ++++++++++++++++++++++++++++++----
 MASWithTwoNests/bot_team.rb   | 18 +++++++++++++++++-
 MASWithTwoNests/resource.rb   |  1 +
 MASWithTwoNests/world.rb      |  4 +++-
 7 files changed, 66 insertions(+), 8 deletions(-)

diff --git a/ExpertSystem/expert_system.rb b/ExpertSystem/expert_system.rb
index ae3eb82..8552400 100644
--- a/ExpertSystem/expert_system.rb
+++ b/ExpertSystem/expert_system.rb
@@ -1,3 +1,4 @@
+$LOAD_PATH << '../ExpertSystem/'
 require 'fact_base'
 require 'rule_base'
 require 'rule'
@@ -71,4 +72,4 @@ module ExpertSystem
       end while valid_rule != nil
     end
   end
-end
\ No newline at end of file
+end
diff --git a/MASWithTwoNests/agent.rb b/MASWithTwoNests/agent.rb
index a94c72b..af8864e 100644
--- a/MASWithTwoNests/agent.rb
+++ b/MASWithTwoNests/agent.rb
@@ -24,6 +24,11 @@ module MASWithTwoNests
       Point.new(rect.center[0], rect.center[1])
     end
 
+		def current_point=(point)
+			@rect.center[0] = point.x.to_i
+			@rect.center[1] = point.y.to_i
+		end
+
     def change_direction
       @direction = Point.new(Random.rand, Random.rand)
       @direction.x = @direction.x.to_i - 1 if Random.rand > 0.5
diff --git a/MASWithTwoNests/agent_type.rb b/MASWithTwoNests/agent_type.rb
index 74cfea5..5196402 100644
--- a/MASWithTwoNests/agent_type.rb
+++ b/MASWithTwoNests/agent_type.rb
@@ -1,10 +1,17 @@
+require 'bot'
+
 module MASWithTwoNests
 	class AgentType
+
 		attr_reader :ratio
 		attr_reader :type
-		def initialize(ratio, _class)
+		def initialize(ratio = -1, _class = nil)
 			@ratio = ratio
 			@type = _class
 		end
+
+		AGENT_BOT = AgentType.new(1, Bot)
+		AGENT_BOT_HOME = AgentType.new
+		AGENT_RESOURCE = AgentType.new
 	end
 end
diff --git a/MASWithTwoNests/bot.rb b/MASWithTwoNests/bot.rb
index c2e3f63..750939e 100644
--- a/MASWithTwoNests/bot.rb
+++ b/MASWithTwoNests/bot.rb
@@ -5,6 +5,7 @@ require 'ExpertSystem/expert_system.rb'
 include ExpertSystem
 $LOAD_PATH << './'
 require 'agent'
+require 'resource'
 require 'world'
 require 'rubygame'
 require 'bot_home'
@@ -17,20 +18,40 @@ module MASWithTwoNests
 			super(world)
 			@team_id = team_id
 			@speed = speed
-			@image = Rubygame::Surface.new(perception_radius, perception_radius)
+			@image = Rubygame::Surface.new([ perception_radius, perception_radius ])
       @image.set_colorkey([0, 0, 0])
 			@rect = @image.make_rect
 			@direction_change_delay = direction_change_delay
-			@image.draw_circle_s(@rect.center, radius * 2, Rubygame::Color::ColorRGB.new([1, 0, 0, 1]))
+			@image.draw_circle_s(@rect.center, radius * 2, color)
 			@target_point = Point.new(Random.rand * World::WIDTH, Random.rand * World::HEIGHT)
+
+			@direction = nil
+			@radius = radius
+			@perception_radius = perception_radius
+			@color = color
+
+			@expert_system = nil
+
+			@has_resource = false
+			@seen_resource = nil
+			@taken_resource = nil
+			@reached_resource = nil
+			@last_reached_resource = nil
+			@update_time = 0
+
+			@home = nil
+			@home_position = nil
+
+      init_expert_system
+			change_direction
 		end
 
-		def update
+		def update(tick, world)
 			move
 		end
 
 		def init_expert_system
-			expert_system = ExpertSystem.new()
+			expert_system = ExpertSystem::ExpertSystem.new()
 
 
 		end
@@ -42,6 +63,11 @@ module MASWithTwoNests
 		end
 
 		def on_collide(agent)
+			if collide_sprite? agent
+				if agent.class == Resource
+					@reached_resource = agent
+				end
+			end
 		end
 	end
 end
diff --git a/MASWithTwoNests/bot_team.rb b/MASWithTwoNests/bot_team.rb
index 6778dbb..a1a6e9b 100644
--- a/MASWithTwoNests/bot_team.rb
+++ b/MASWithTwoNests/bot_team.rb
@@ -10,7 +10,7 @@ require 'bot_home'
 module MASWithTwoNests
 	class BotTeam < Agent
 		attr_reader :team_id
-		def initialize(world, team_id, color, bot_types)
+		def initialize(world, team_id, color, bot_types, bot_count)
 			@world = world
 			@team_id = team_id
 			@color = color
@@ -22,6 +22,22 @@ module MASWithTwoNests
 			end
 			team_home = BotHome.new(@world, @team_id, Rubygame::Color::ColorRGB.new(team_color))
 			@world.agents << team_home
+
+      bot_types.each do |bot_type|
+		    bot_type_count = bot_type.ratio * bot_count
+				bot_class = bot_type.type
+
+				bot_type_count.times do
+          bot = bot_class.new(world, team_id, color, World::BOT_RADIUS, World::BOT_SPEED, World::BOT_DIRECTION_CHANGE_DELAY, World::BOT_PERCEPTION_RADIUS)
+
+					if World::BOT_START_FROM_HOME
+				    bot.current_point = team_home.current_point
+					else
+						bot.current_point = Point.new(Random.rand * World::WIDTH, Random.rand * World::HEIGHT)
+					end
+					@world.agents << bot
+				end
+			end
 		end
 	end
 end
diff --git a/MASWithTwoNests/resource.rb b/MASWithTwoNests/resource.rb
index 614b76e..c8fbaaf 100644
--- a/MASWithTwoNests/resource.rb
+++ b/MASWithTwoNests/resource.rb
@@ -24,6 +24,7 @@ module MASWithTwoNests
       @image.set_colorkey([0, 0, 0])
 			@image.draw_circle_s(@rect.center, (World::RESOURCE_LIFE_RADIUS_COEFF * @life), Rubygame::Color::ColorRGB.new([0.8, 0.8 , 0.8, 1])) if @life > 0
 			@rect.center = [Random.rand * World::HEIGHT, Random.rand * World::HEIGHT]
+			change_direction
     end
 
     def decrease_life
diff --git a/MASWithTwoNests/world.rb b/MASWithTwoNests/world.rb
index 4bb9a79..ae4d65b 100644
--- a/MASWithTwoNests/world.rb
+++ b/MASWithTwoNests/world.rb
@@ -7,6 +7,7 @@ require "lib/point"
 $LOAD_PATH << './'
 require 'resource'
 require 'bot_team'
+require 'agent_type'
 include Lib
 
 module MASWithTwoNests
@@ -26,6 +27,7 @@ module MASWithTwoNests
 		BOT_INIT_POSITION = Point.new(WIDTH / 2, HEIGHT / 2)
 		BOT_SPEED = 100
 		BOT_DIRECTION_CHANGE_DELAY = 500
+		BOT_START_FROM_HOME = false
 
 		RESOURCE_LIFE_RADIUS_COEFF = 10
 		RESOURCE_START_LIFE = 3
@@ -51,7 +53,7 @@ module MASWithTwoNests
 				resource.target_point = Point.new(Random.rand * WIDTH, Random.rand * HEIGHT)
 				@agents << resource
 			end
-			bot_team = BotTeam.new(self, "AntubisTeam", Rubygame::Color::ColorRGB.new([0.4,0.4,0.4]), ["truc"])
+			bot_team = BotTeam.new(self, "DefaultTeam", Rubygame::Color::ColorRGB.new([0.4, 0.4, 0.4]), [AgentType::AGENT_BOT], BOT_COUNT/2)
     end
 
     def update(tick)

J'ai des Bots, des Teams, des Homes, des Resources, des collisions, me manque plus que des systèmes experts proprement initialisés (règles) et utilisés. \o/

(bon faut vraiment aussi que je regarde mon problème de tabs/espaces bizarres dans tous les sens, même si à l'affichage tout est bon)

Dernière modification par The Uploader (Le 02/08/2012, à 21:52)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1724 Le 02/08/2012, à 21:28

maxpoulin64

Re : /* Topic des codeurs [7] */

Kanor a écrit :

la belle faille dans les drivers nvidia
http://www.crazyws.fr/securite/vulnerab … 9TH64.html
(ça marche très bien chez moi hmm)

j'aime bien le how to dans le fichier du hack .

* How to use: sudo rm -rf /

lol lol lol

Mais ça marche pas chez moi...

[max-p@max-p-arch76 Bureau]$ ./nvidiaeax
[*] IDT offset at 0xffffffff81968000
[*] Abusing nVidia...
[*] CVE-2012-YYYY
[*] 64-bits Kernel found at ofs 0
[*] Using IDT entry: 220 (0xffffffff81968dc0)
[*] Enhancing gate entry...
[*] Triggering payload...
Processus arrêté

[max-p@max-p-arch76 Bureau]$ pacman -Q nvidia
nvidia 295.59-4

[max-p@max-p-arch76 Bureau]$ dmesg
[...]
[ 7887.673352] Pid: 5982, comm: nvidiaeax Tainted: P      D  C O 3.4.7-1-ARCH #1 System76, Inc.                           Gazelle Professional/Gazelle Professional
[ 7887.673364] RIP: 0010:[<0000000000401617>]  [<0000000000401617>] 0x401616
[ 7887.673376] RSP: 0000:ffff8800daa77d08  EFLAGS: 00010006
[ 7887.673381] RAX: ffffffff81c00000 RBX: 0000000000000064 RCX: 00007f89e557a897
[ 7887.673387] RDX: 00007f89e58647e0 RSI: 0000000000000064 RDI: 00000000000003e8
[ 7887.673392] RBP: ffff8800daa77fc8 R08: 2e2e2e64616f6c79 R09: 0101010101010101
[ 7887.673397] R10: 00007fff4ba23040 R11: 0000000000000202 R12: 0000000000400c30
[ 7887.673403] R13: 00007fff4ba23580 R14: 0000000000000000 R15: 0000000000000000
[ 7887.673409] FS:  00007f89e5a64700(0000) GS:ffff88011f5c0000(0000) knlGS:0000000000000000
[ 7887.673415] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 7887.673420] CR2: ffffffff81c00000 CR3: 00000000a0c23000 CR4: 00000000000407e0
[ 7887.673425] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 7887.673431] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 7887.673437] Process nvidiaeax (pid: 5982, threadinfo ffff8800daa76000, task ffff880119294f60)
[ 7887.673441] Stack:
[ 7887.673445]  0000000000000064 00000000000003e8 00007f89e557a8b0 ffff8801181cdb00
[ 7887.673456]  ffff8800daa77df8 ffffffff81132af5 0000000000000000 ffff8800898e1800
[ 7887.673466]  ffff8800daa77d68 ffffffff812d985e ffff8800898e1800 ffff8800898e1000
[ 7887.673476] Call Trace:
[ 7887.673491]  [<ffffffff81132af5>] ? handle_pte_fault+0x95/0xab0
[ 7887.673503]  [<ffffffff812d985e>] ? tty_wakeup+0x3e/0x80
[ 7887.673511]  [<ffffffff812e4963>] ? pty_write+0x63/0x70
[ 7887.673522]  [<ffffffff8146750e>] ? mutex_unlock+0xe/0x10
[ 7887.673532]  [<ffffffff81134ad7>] ? handle_mm_fault+0x1a7/0x2f0
[ 7887.673541]  [<ffffffff81042a2c>] ? do_page_fault+0x1ac/0x480
[ 7887.673551]  [<ffffffff8116ec18>] ? vfs_write+0x138/0x180
[ 7887.673560]  [<ffffffff8146aaa9>] ? system_call_fastpath+0x16/0x1b
[ 7887.673564] Code:  Bad RIP value.
[ 7887.673570] RIP  [<0000000000401617>] 0x401616
[ 7887.673579]  RSP <ffff8800daa77d08>
[ 7887.673583] CR2: ffffffff81c00000
[ 7887.673589] ---[ end trace cef90cd420500b00 ]---

Faut le lancer en root pour que ça marche? roll

Hors ligne

#1725 Le 02/08/2012, à 22:29

The Uploader

Re : /* Topic des codeurs [7] */

Oops...

commit 4675b1e64b4dd93a6514b74e956a691c96881751
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Thu Aug 2 23:26:31 2012 +0200

    World#home_getting_bigger and World#bot_start_from_home working with GUI
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>

diff --git a/MASWithTwoNests/bot_team.rb b/MASWithTwoNests/bot_team.rb
index 8b973e4..38a66b7 100644
--- a/MASWithTwoNests/bot_team.rb
+++ b/MASWithTwoNests/bot_team.rb
@@ -28,9 +28,9 @@ module MASWithTwoNests
 				bot_class = bot_type.type
 
 				bot_type_count.times do
-          bot = bot_class.new(world, team_id, color, World::BOT_RADIUS, World::BOT_SPEED, World::BOT_DIRECTION_CHANGE_DELAY, World::BOT_PERCEPTION_RADIUS)
+          bot = bot_class.new(world, team_id, Rubygame::Color::ColorRGB.new(team_color), World::BOT_RADIUS, World::BOT_SPEED, World::BOT_DIRECTION_CHANGE_DELAY, World::BOT_PERCEPTION_RADIUS)
 
-					if World::BOT_START_FROM_HOME
+					if world.bot_start_from_home
 				    bot.current_point = team_home.current_point
 					else
 						bot.current_point = Point.new(Random.rand * World::WIDTH, Random.rand * World::HEIGHT)
diff --git a/MASWithTwoNests/main.rb b/MASWithTwoNests/main.rb
index a72de30..593d64c 100644
--- a/MASWithTwoNests/main.rb
+++ b/MASWithTwoNests/main.rb
@@ -21,12 +21,13 @@ module MASWithTwoNests
       @pause_chkbx = CheckBox.new :x => 601, :y => 0, :w => 10, :h => 10, :label_text => "Pause"
       @home_chkbx = CheckBox.new :x => 601, :y => 20, :w => 10, :h => 10, :label_text => "Start from home"
       @exp_chkbx = CheckBox.new :x => 601, :y =>  40, :w => 10, :h => 10, :label_text => "Home expansion"
-      @exp_chkbx.checked = true
+      @exp_chkbx.checked = @world.home_getting_bigger
+			@home_chkbx.checked = @world.bot_start_from_home
       @restart_btn = Button.new "Restart", :x => 601, :y =>  80, :x_pad => 200, :y_pad => 10
       @app.add @pause_chkbx, @home_chkbx, @exp_chkbx, @restart_btn
       @restart_btn.on :pressed do
         @app_adapter.draw @render_adapter
-        @world = World.new(@screen)
+        @world = World.new(@screen, @world.bot_start_from_home, @world.home_getting_bigger)
       end
       @pause_chkbx.on :checked do
         @app_adapter.draw @render_adapter
diff --git a/MASWithTwoNests/world.rb b/MASWithTwoNests/world.rb
index ae4d65b..c89f608 100644
--- a/MASWithTwoNests/world.rb
+++ b/MASWithTwoNests/world.rb
@@ -27,7 +27,6 @@ module MASWithTwoNests
 		BOT_INIT_POSITION = Point.new(WIDTH / 2, HEIGHT / 2)
 		BOT_SPEED = 100
 		BOT_DIRECTION_CHANGE_DELAY = 500
-		BOT_START_FROM_HOME = false
 
 		RESOURCE_LIFE_RADIUS_COEFF = 10
 		RESOURCE_START_LIFE = 3
@@ -40,11 +39,11 @@ module MASWithTwoNests
 		HOME_RADIUS = 10
 		RESOURCE_RANDOM_START_LIFE = true
 
-    def initialize(screen)
+    def initialize(screen, bot_start_from_home = false, home_getting_bigger = true)
 			Rubygame::TTF.setup
 			@screen = screen
-      @home_getting_bigger = true
-      @bot_start_from_home = false
+      @home_getting_bigger = home_getting_bigger
+      @bot_start_from_home = bot_start_from_home
       @background = Rubygame::Surface.new([WIDTH, HEIGHT])
       @agents = Rubygame::Sprites::Group.new
 			Rubygame::Sprites::UpdateGroup.extend_object @agents

commit 0910089f8a1a4120b2a0cbec0b7f813df20bb338
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Thu Aug 2 23:26:07 2012 +0200

    Blue-ish color for default Bot Team
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>

diff --git a/MASWithTwoNests/bot_team.rb b/MASWithTwoNests/bot_team.rb
index a1a6e9b..8b973e4 100644
--- a/MASWithTwoNests/bot_team.rb
+++ b/MASWithTwoNests/bot_team.rb
@@ -18,7 +18,7 @@ module MASWithTwoNests
 
 			team_color = @color.to_rgba_ary
 			2.times do |i|
-				team_color[i] += 0.13333333
+				team_color[i] += 0.77333333
 			end
 			team_home = BotHome.new(@world, @team_id, Rubygame::Color::ColorRGB.new(team_color))
 			@world.agents << team_home

commit d4b9631faf652b68108792f85d063d5866207eab
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Thu Aug 2 23:25:37 2012 +0200

    Bugfix : Bots were always starting somewhere random
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>

diff --git a/MASWithTwoNests/bot.rb b/MASWithTwoNests/bot.rb
index 750939e..088e87b 100644
--- a/MASWithTwoNests/bot.rb
+++ b/MASWithTwoNests/bot.rb
@@ -23,7 +23,6 @@ module MASWithTwoNests
 			@rect = @image.make_rect
 			@direction_change_delay = direction_change_delay
 			@image.draw_circle_s(@rect.center, radius * 2, color)
-			@target_point = Point.new(Random.rand * World::WIDTH, Random.rand * World::HEIGHT)
 
 			@direction = nil
 			@radius = radius

commit e935632c2b12d45668cab8c3e61afdc97ca44c97
Author: Maximilien Noal <mnoal@epsi.fr>
Date:   Thu Aug 2 23:24:37 2012 +0200

    Removed repetition of code between Agent#move and Agent#current_point=
    
    Signed-off-by: Maximilien Noal <mnoal@epsi.fr>

diff --git a/MASWithTwoNests/agent.rb b/MASWithTwoNests/agent.rb
index af8864e..d9cf74c 100644
--- a/MASWithTwoNests/agent.rb
+++ b/MASWithTwoNests/agent.rb
@@ -17,7 +17,7 @@ module MASWithTwoNests
     end
 		
 		def move
-			@rect.center = [@target_point.x, @target_point.y] unless @world.is_out?(@target_point)
+			self.current_point = @target_point unless @world.is_out?(@target_point)
 		end
 
     def current_point
@@ -25,8 +25,7 @@ module MASWithTwoNests
     end
 
 		def current_point=(point)
-			@rect.center[0] = point.x.to_i
-			@rect.center[1] = point.y.to_i
+			@rect.center = [point.x, point.y]
 		end
 
     def change_direction

- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne