SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
AIWolfPy v0.4.9
Kei Harada(cash)
Table of Contents
0.
1. Agent
2. Agent
3.
4. (python_sample)
5.
2
AIWolfPy
aiwolf.org python
http://aiwolf.org
Java TCP/IP
(Java
)
JSON
AIWolfPy
3
AIWolf
AI
4
Python
Google
for ( 10 )
C
5
OK Python
./hogehoge.py
Agent
Agent
aiwolfpy.connect_parse
6
Chap. 1. Agent
1. 1.
1. 2. AIWolf Server
1.3. Python Agent
7
1. 1.
Python
python2 2.7( 2.7.12)
python3 3.4 ( 3.5.2)
2.7
+ numpy, spicy, pandas, scikit-learn
Anaconda
Java
8
1.2. AIWolf Server
http://aiwolf.org/server ( AIWolf-
ver0.4.9)
StartServer.sh, StartGUIClient.sh (Windows
bat )
StartServer.sh , Connect
StartGUIClient.sh
JarFiles aiwolf-client.jar ( Open File
)
SampleRoleAssignPlayer Connect Agent(15
14 )
9
1.3. Python Agent
https://github.com/k-harada/AIWolfPy
( ver0.4.9)
./python_sample.py -h localhost -p
10000
AIWolf Server Starter Start Game
Start Game
python
14 Java
10
Chap. 2. Agent
2.1. method
2.1.1.
2.1.2.
2.1.3.
2.2.
2.2.1. base_info
2.2.2. diff_data
2.3.
11
2.1.1.
Phase
(0 whisper divine )
talk: turn
vote:
whisper: 2
talk whisper CO
attack/divine/guard:
12
2.1.2.
aiwolfpy.connent_parse agent
aiwolfpy
agent
(python)
JSON
request
base_info
diff_data
13
2.1.3. (1)
python_simple_sample
ver0.4.9 parse connect_parse
__init__(self)
getName(self)
initialize(self, base_info, diff_data, game_setting)
__init__ Agent
14
2.1.3. (2)
update(self, base_info, diff_data, request)
Java request( update )
2 1
update+
daily_finish talk
update
vote
request == ‘DAILY_FINISH’ update
15
2.1.3. (3)
dayStart(self) : return None
update
talk(self), whisper(self) : return (text)
vote(self), attack(self), divine(self), guard(self) : return (AgentIdx)
AgentIdx 0 1
finish(self) : return None
2
16
2.2.1. base_info
dictionary
“agentIdx”: agent ID 100
“myRole”:
“roleMap”: dictionary
“statusMap”: Agent dictionary
“remainTalkMap”: Agent dictionary
“remainWhisperMap”: Agent whisper
{'statusMap': {'3': 'DEAD', '15': 'ALIVE', '1': 'DEAD', '5':
'DEAD', '7': 'DEAD', '12': 'ALIVE', '14': 'DEAD', '2': 'DEAD',
'11': 'ALIVE', '9': 'ALIVE', '10': 'DEAD', '8': 'DEAD', '4':
'DEAD', '6': 'DEAD', '13': 'ALIVE'}, 'remainWhisperMap': {},
'day': 8, 'myRole': 'VILLAGER', 'roleMap': {'15': 'VILLAGER'},
'remainTalkMap': {'9': 10, '13': 10, '15': 10, '11': 10, '12':
10}, 'agentIdx': 15}
17
2.2.2. diff_data(1)
pandas DataFrame
6 [“day”, “type”, “idx”, “turn”, “agent”, “text”]
“type”
“initialize”, “finish”
“talk”, “whisper”
“vote”, “attack_vote”
“execute”,“dead”
“attack”, “divine”, “identify”, “guard”
agent day idx text turn type
0 15 6 5 VOTE Agent[15] 0 vote
1 10 6 6 VOTE Agent[10] 0 vote
2 10 6 7 VOTE Agent[10] 0 vote
3 10 6 9 VOTE Agent[10] 0 vote
4 9 6 10 VOTE Agent[09] 0 vote
5 15 6 11 VOTE Agent[15] 0 vote
6 10 6 12 VOTE Agent[10] 0 vote
7 11 6 13 VOTE Agent[11] 0 vote
8 13 6 15 VOTE Agent[13] 0 vote
9 10 6 0 Over 0 execute
10 5 7 0 Over 0 dead
18
2.2.2. diff_data(2)
type = “initialize”, “finish”
agent = idx = agentIdx
initialize day = 0
turn = 0
text = comingout ( COMINGOUT Agent[01] SEER)
type = “talk”, “whisper”
agent =
day = day, idx = talk/whisper id, turn = talk/whisper turn
text =
agent day idx text turn type
0 3 10 3 COMINGOUT Agent[03] SEER 0 finish
1 15 10 15 COMINGOUT Agent[15] VILLAGER 0 finish
2 1 10 1 COMINGOUT Agent[01] BODYGUARD 0 finish
3 5 10 5 COMINGOUT Agent[05] VILLAGER 0 finish
4 7 10 7 COMINGOUT Agent[07] VILLAGER 0 finish
5 12 10 12 COMINGOUT Agent[12] VILLAGER 0 finish
6 14 10 14 COMINGOUT Agent[14] VILLAGER 0 finish
7 2 10 2 COMINGOUT Agent[02] MEDIUM 0 finish
8 11 10 11 COMINGOUT Agent[11] VILLAGER 0 finish
9 9 10 9 COMINGOUT Agent[09] WEREWOLF 0 finish
10 10 10 10 COMINGOUT Agent[10] VILLAGER 0 finish
11 8 10 8 COMINGOUT Agent[08] WEREWOLF 0 finish
12 4 10 4 COMINGOUT Agent[04] WEREWOLF 0 finish
13 6 10 6 COMINGOUT Agent[06] POSSESSED 0 finish
14 13 10 13 COMINGOUT Agent[13] VILLAGER 0 finish
agent day idx text turn type
0 15 8 10 Over 2 talk
1 9 8 11 Skip 2 talk
2 11 8 12 Skip 2 talk
3 13 8 13 Skip 2 talk
4 12 8 14 Skip 2 talk
19
2.2.2. diff_data(3)
type = “vote”, “attack_vote”
agent = , idx =
turn 0, 1 turn -1
text = vote attack
type = “execute”( ), “dead”( )
agent =
idx = 0, turn = 0
text = Over
agent day idx text turn type
0 15 6 5 VOTE Agent[15] 0 vote
1 10 6 6 VOTE Agent[10] 0 vote
2 10 6 7 VOTE Agent[10] 0 vote
3 10 6 9 VOTE Agent[10] 0 vote
4 9 6 10 VOTE Agent[09] 0 vote
5 15 6 11 VOTE Agent[15] 0 vote
6 10 6 12 VOTE Agent[10] 0 vote
7 11 6 13 VOTE Agent[11] 0 vote
8 13 6 15 VOTE Agent[13] 0 vote
9 10 6 0 Over 0 execute
10 5 7 0 Over 0 dead
20
2.2.2. diff_data(4)
type = “divine”, “identify”, “guard”( guard )
agent = , idx =
turn = 0
text = DIVINED / IDENTIFIED / GUARDED
agent 1 agent 2
agent = 2, idx = 1, text = DIVINED Agent[02] WEREWOLF
type = “attack”( )
agent =
idx = 0, turn = 0
text = ATTACK
21
2.3.
(http://aiwolf.org/resource)
Agent
aiwolfpy.read_log(file) aiwolfpy
github notebook
22
Chap. 3.
3.1.
3.2.
23
3.1.
java
hoge python_simple_sample
python_simple_sample.py myname = ‘cash’ myname = ‘hoge’
hoge python_simple_sample.py
aiwolfpy
hoge hoge.zip
zip
24
3.2.
OK
Python
jar/dll/zip
hoge.zip
python_simple_sample.py
hoge
OK
25
Chap. 4.
4.1. aiwolfpy
4.2. sample
4.3. Tensor5460
26
4.1. aiwolfpy (1)
simple_sample
__init__.py :
tcpipclient.py : tcp/ip json
tcpipclient_parsed.py : tcp/ip +DataFrame
templatetalkfactory.py / templatewhisperfactory.py /contentbuilder.py :
(contentbuilder.py )
gameinfoparser.py : pandas.DataFrame
read_log.py:
pandas.DataFrame
27
4.1. aiwolfpy (2)
python_simple_sample.py
python_sample.py
aiwolfpy/cash
Tensor5460
Predictor
notebook
jupyter notebook
28
4.2. sampleagent
2 (6/24 ) (GAT2016 2016 2 )
AgentId python
tensor5460
notebook
VOTE
PP 5
29
4.3.1. Tensor5460
15 3 1 5460
(15*K, 15*15*L) 5460
Agent1, 2 CO 5460 2CO
Tensor5460 15 CO (15 )
3 CO (5460*3) K 15*K
5460*3*K
Agent1 Agent2 Agent1 Agent2
15*15 3*3
(5460*3*3) 15*15*L 5460*3*3*L
30
4.3.2. Tensor5460
Agent __init__ __init__
(15*K, 15*15*L) Tensor5460.apply_tensor_df() 5460
DataFrame
numpy.ndarray
RNN, LSTM
31
5.
2017
fix
Agent
java sample
Agent
Github(k-harada)
python
32
JSON DataFrame Feature
LOG
FeatureTensor
Prob
33
Strategy
Action

Contenu connexe

Tendances

SSII2014 チュートリアル資料
SSII2014 チュートリアル資料SSII2014 チュートリアル資料
SSII2014 チュートリアル資料
Masayuki Tanaka
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesレベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
Tokoroten Nakayama
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
takaya imai
 

Tendances (20)

実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)実機で動かす深層強化学習(画像なし)
実機で動かす深層強化学習(画像なし)
 
SSII2014 チュートリアル資料
SSII2014 チュートリアル資料SSII2014 チュートリアル資料
SSII2014 チュートリアル資料
 
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
【論文読み会】PiCO_Contrastive Label Disambiguation for Partial Label Learning.pptx
 
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfesレベルを上げて物理で殴れ、Fuzzing入門 #pyfes
レベルを上げて物理で殴れ、Fuzzing入門 #pyfes
 
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
 
画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量画像認識の初歩、SIFT,SURF特徴量
画像認識の初歩、SIFT,SURF特徴量
 
Alpine.jsハンズオン
Alpine.jsハンズオンAlpine.jsハンズオン
Alpine.jsハンズオン
 
ESP32特集の内容紹介
ESP32特集の内容紹介ESP32特集の内容紹介
ESP32特集の内容紹介
 
UI設計の土台になる考え方-インテリジェントネット社内勉強会
UI設計の土台になる考え方-インテリジェントネット社内勉強会UI設計の土台になる考え方-インテリジェントネット社内勉強会
UI設計の土台になる考え方-インテリジェントネット社内勉強会
 
2014年度春学期 画像情報処理 第13回 Radon変換と投影定理 (2014. 7. 16)
2014年度春学期 画像情報処理 第13回 Radon変換と投影定理 (2014. 7. 16)2014年度春学期 画像情報処理 第13回 Radon変換と投影定理 (2014. 7. 16)
2014年度春学期 画像情報処理 第13回 Radon変換と投影定理 (2014. 7. 16)
 
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
【論文レベルで理解しよう!】​ 大規模言語モデル(LLM)編​
 
論文紹介:DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object D...
 論文紹介:DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object D... 論文紹介:DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object D...
論文紹介:DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object D...
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
[DL輪読会]Generative Models of Visually Grounded Imagination
[DL輪読会]Generative Models of Visually Grounded Imagination[DL輪読会]Generative Models of Visually Grounded Imagination
[DL輪読会]Generative Models of Visually Grounded Imagination
 
Cocos2d-xを用いた "LINE タワーライジング" の開発事例
Cocos2d-xを用いた "LINE タワーライジング" の開発事例Cocos2d-xを用いた "LINE タワーライジング" の開発事例
Cocos2d-xを用いた "LINE タワーライジング" の開発事例
 
人工知能研究のための視覚情報処理
人工知能研究のための視覚情報処理人工知能研究のための視覚情報処理
人工知能研究のための視覚情報処理
 
計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング
 
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
 
『ゲームAI技術入門』講義用素材
『ゲームAI技術入門』講義用素材『ゲームAI技術入門』講義用素材
『ゲームAI技術入門』講義用素材
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 

Similaire à AIWolfPy v0.4.9

Python for High School Programmers
Python for High School ProgrammersPython for High School Programmers
Python for High School Programmers
Siva Arunachalam
 
Codestrong 2012 breakout session hacking titanium
Codestrong 2012 breakout session   hacking titaniumCodestrong 2012 breakout session   hacking titanium
Codestrong 2012 breakout session hacking titanium
Axway Appcelerator
 

Similaire à AIWolfPy v0.4.9 (20)

AIWolf programming guide
AIWolf programming guideAIWolf programming guide
AIWolf programming guide
 
Aiwolf seminar20180630
Aiwolf seminar20180630Aiwolf seminar20180630
Aiwolf seminar20180630
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Clean Code Development
Clean Code DevelopmentClean Code Development
Clean Code Development
 
Nullcon HackIM 2012 Solutions
Nullcon HackIM 2012 SolutionsNullcon HackIM 2012 Solutions
Nullcon HackIM 2012 Solutions
 
Beyond php it's not (just) about the code
Beyond php   it's not (just) about the codeBeyond php   it's not (just) about the code
Beyond php it's not (just) about the code
 
From clever code to better code
From clever code to better codeFrom clever code to better code
From clever code to better code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Beyond php - it's not (just) about the code
Beyond php - it's not (just) about the codeBeyond php - it's not (just) about the code
Beyond php - it's not (just) about the code
 
Python for High School Programmers
Python for High School ProgrammersPython for High School Programmers
Python for High School Programmers
 
Python slide
Python slidePython slide
Python slide
 
MouthMouse
MouthMouseMouthMouse
MouthMouse
 
Automated Design Validation The Solid Works Api
Automated Design Validation The Solid Works ApiAutomated Design Validation The Solid Works Api
Automated Design Validation The Solid Works Api
 
Shell Scripting
Shell ScriptingShell Scripting
Shell Scripting
 
Fast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBFast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDB
 
If you give a mouse a clickhouse, by Alex Hofsteede, Sentry
If you give a mouse a clickhouse, by Alex Hofsteede, SentryIf you give a mouse a clickhouse, by Alex Hofsteede, Sentry
If you give a mouse a clickhouse, by Alex Hofsteede, Sentry
 
Codestrong 2012 breakout session hacking titanium
Codestrong 2012 breakout session   hacking titaniumCodestrong 2012 breakout session   hacking titanium
Codestrong 2012 breakout session hacking titanium
 
Zabbixconf2016(2)
Zabbixconf2016(2)Zabbixconf2016(2)
Zabbixconf2016(2)
 
Introduction to Python3 Programming Language
Introduction to Python3 Programming LanguageIntroduction to Python3 Programming Language
Introduction to Python3 Programming Language
 
Beyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the codeBeyond PHP - It's not (just) about the code
Beyond PHP - It's not (just) about the code
 

Plus de Harada Kei (8)

輪講 20190711 keiharada_人狼知能プロジェクトの紹介
輪講 20190711 keiharada_人狼知能プロジェクトの紹介輪講 20190711 keiharada_人狼知能プロジェクトの紹介
輪講 20190711 keiharada_人狼知能プロジェクトの紹介
 
Kaggle meetup tokyo #6 スポンサーセッション
Kaggle meetup tokyo #6 スポンサーセッションKaggle meetup tokyo #6 スポンサーセッション
Kaggle meetup tokyo #6 スポンサーセッション
 
Analyst meetup 0410_harada
Analyst meetup 0410_haradaAnalyst meetup 0410_harada
Analyst meetup 0410_harada
 
Devsumi 2018summer
Devsumi 2018summerDevsumi 2018summer
Devsumi 2018summer
 
Math meets datascience
Math meets datascienceMath meets datascience
Math meets datascience
 
最近の俺_20160219
最近の俺_20160219最近の俺_20160219
最近の俺_20160219
 
KDDCUP2015_Seed71_Kaggle_tokyo
KDDCUP2015_Seed71_Kaggle_tokyoKDDCUP2015_Seed71_Kaggle_tokyo
KDDCUP2015_Seed71_Kaggle_tokyo
 
Santa2016_seed71
Santa2016_seed71Santa2016_seed71
Santa2016_seed71
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

AIWolfPy v0.4.9