#1701 Le 01/08/2012, à 11:54
- Elzen
Re : /* Topic des codeurs [7] */
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
Tiens (attention, c’est long) : Gay marriage: the database engineering perspective ^^
Lu en diagonal, ça a l'air assez chouette
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)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
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
Re : /* Topic des codeurs [7] */
Moi qui trouvait la classe Date un peu limitée..
Aussi:
Adieu les partials, vive les Cells!
En effet c'est pas mal
Hors ligne
#1704 Le 01/08/2012, à 14:13
- The Uploader
Re : /* Topic des codeurs [7] */
Ç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
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] */
@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
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#1706 Le 02/08/2012, à 08:26
- cervo
Re : /* Topic des codeurs [7] */
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] */
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 ), 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] */
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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#1714 Le 02/08/2012, à 15:49
- cervo
Re : /* Topic des codeurs [7] */
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
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#1716 Le 02/08/2012, à 16:29
- Mindiell
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 ? :])
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
EDIT: Tiens, si on lis bien le code, il faut pas s'étonner de surfer plus vite avec Chrome après ça !
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] */
Sinon, le débutant, avant d'apprendre à faire des boucles, il faut surtout qu'il apprenne à indenter en fait, je pense
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.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#1718 Le 02/08/2012, à 16:55
- The Uploader
Re : /* Topic des codeurs [7] */
C'est… mignon.
Un p'tit débutant qui ne sait pas encore faire de boucles
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...
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
(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 )
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] */
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.
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#1722 Le 02/08/2012, à 20:32
- :!pakman
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...
Plié en deux pour ma part
...
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] */
la belle faille dans les drivers nvidia
http://www.crazyws.fr/securite/vulnerab … 9TH64.html
(ça marche très bien chez moi )j'aime bien le how to dans le fichier du hack .
* How to use: sudo rm -rf /
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?
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