SlideShare a Scribd company logo
AST
Opportunities and Threats
ITGM, Dec 2016
RDD
TDD
Slap this sh*t & release
ITGM, Dec 2016
Code Test
Test
Test
ITGM, Dec 2016
Code Test
Test
Test
def f(a,b):
return a+b
5 == f(2,3)
0 == f(2,-2)
1 == f(1,0)
ITGM, Dec 2016
Code Test
Test
Test
def f(a,b):
return a+b
5 == f(2,3)
0 == f(2,-2)
1 == f(1,0)
Test 1e15 == f(1,1e15-1)
ITGM, Dec 2016
DIS
ITGM, Dec 2016
>>> def foo():
... a = 2
... b = 3
... return a + b
...
ITGM, Dec 2016
>>> import dis
>>> dis.dis(foo)
2 0 LOAD_CONST 1 (2)
3 STORE_FAST 0 (a)
3 6 LOAD_CONST 2 (3)
9 STORE_FAST 1 (b)
4 12 LOAD_FAST 0 (a)
15 LOAD_FAST 1 (b)
18 BINARY_ADD
19 RETURN_VALUE
ITGM, Dec 2016
ITGM, Dec 2016
ITGM, Dec 2016
Zephyr ASDL
Parser/Python.asdl
ITGM, Dec 2016
Python/Python-ast.c
import _ast
ITGM, Dec 2016
Lib/ast.py
import ast
ITGM, Dec 2016
• AST
• Add, And, Assert …
• NodeVisitor
• NodeTransformer
ITGM, Dec 2016
class DepthVisitor(ast.NodeVisitor):
depth = 0
def generic_visit(self, node):
parent = node.parent
if parent:
while parent:
self.depth += 1
parent = parent.parent
ast.NodeVisitor.generic_visit(self, node)
ITGM, Dec 2016
• parse
• copy_location
• fix_missing_locations
• dump
• increment_lineno
ITGM, Dec 2016
Модификация AST
ITGM, Dec 2016
class HackedImporter:
def load_module(self, name):
# do magic stuff
return module
sys.path_hook.insert(0, HackedImporter)
ITGM, Dec 2016
https://github.com/alifanov/ast-spbpython-example
ITGM, Dec 2016
class ReturnIncrement(ast.NodeTransformer):
def visit_Return(self, node):
node.value = (ast.BinOp(
left=node.value,
op=ast.Add(),
right=ast.Num(n=1)
)
return node
ITGM, Dec 2016
def transform_with(transformer):
def transform_decorator(func):
node = func_to_node(func)
node = transformer().visit(node)
node = ast.fix_missing_locations(node)
func = node_to_func(node, func)
return func
return transform_decorator
ITGM, Dec 2016
@transform_with(ReturnIncrementer)
def f(a,b):
return a+b
f(2,2) # 5
ITGM, Dec 2016
Threats
• Debug glitch
• Errors with multiple applies
• Strange errors
• Compiler version dependence
ITGM, Dec 2016
>>> parseprint("func(a, b=c, *d, **e)") # Python 3.4
Module(body=[
Expr(value=Call(func=Name(id='func', ctx=Load()),
args=[Name(id='a', ctx=Load())],
keywords=[keyword(arg='b', value=Name(id='c', ctx=Load()))],
starargs=Name(id='d', ctx=Load()), # gone in 3.5
kwargs=Name(id='e', ctx=Load()))), # gone in 3.5
])
>>> parseprint("func(a, b=c, *d, **e)") # Python 3.5
Module(body=[
Expr(value=Call(func=Name(id='func', ctx=Load()),
args=[
Name(id='a', ctx=Load()),
Starred(value=Name(id='d', ctx=Load()), ctx=Load()) # new in 3.5
],
keywords=[
keyword(arg='b', value=Name(id='c', ctx=Load())),
keyword(arg=None, value=Name(id='e', ctx=Load())) # new in 3.5
]))
])
ITGM, Dec 2016
Opportunities
• Constant propagation
• Autologger
• Autoprofiler
• Macros (karnickel)
• Extend language
• MacroPy
• PonyORM
• Linters (auto codereview)
ITGM, Dec 2016
>>> from macropy.tracing import macros, trace
>>> trace[[x*2 for x in range(3)]]
range(3) -> [0, 1, 2]
x*2 -> 0
x*2 -> 2
x*2 -> 4
x*2 for x in range(3) -> [0, 2, 4]
[0, 2, 4]
Macros
ITGM, Dec 2016
welcome = gettext("Welcome, {}!").format(user_name)
welcome = gettext("Welcome, {}!".format(user_name))
Linters
ITGM, Dec 2016
https://github.com/edx/edx-lint/blob/master/edx_lint/pylint/
i18n_check.py
Linters
ITGM, Dec 2016
TRANSLATION_FUNCTIONS = set([
'_',
'gettext',
'ngettext', 'ngettext_lazy',
'npgettext', 'npgettext_lazy',
'pgettext', 'pgettext_lazy',
'ugettext', 'ugettext_lazy', 'ugettext_noop',
'ungettext', 'ungettext_lazy',
])
def visit_callfunc(self, node):
if not isinstance(node.func, astroid.Name):
# It isn't a simple name, can't deduce what function it is.
return
if node.func.name not in self.TRANSLATION_FUNCTIONS:
# Not a function we care about.
return
if not self.linter.is_message_enabled(self.MESSAGE_ID):
return
first = node.args[0]
if isinstance(first, astroid.Const):
if isinstance(first.value, basestring):
# The first argument is a constant string! All is well!
return
# Bad!
self.add_message(self.MESSAGE_ID, args=node.func.name, node=node)
ITGM, Dec 2016
Tools
• astdump
• astviewer
• ast_tool_box
• astroid
• baron
• redbaron
• astor
• meta
• astmonkey
ITGM, Dec 2016
Recommendation unit
tests system
ITGM, Dec 2016
Pythoscope
ITGM, Dec 2016
Smother
ITGM, Dec 2016
app.views:add,app/tests.py::FunctionTest::test_add
app.views:fact,app/tests.py::FunctionTest::test_fact
app.views:hello,app/tests.py::FunctionTest::test_hello
ITGM, Dec 2016
Code1 Test1
Code1 Test2
Code1 Test3
Code2 Test1
Code2 Test2
ITGM, Dec 2016
def test_default_ordering(self):
class OrderingListView(generics.ListAPIView):
queryset = OrderingFilterModel.objects.all()
serializer_class = OrderingFilterSerializer
filter_backends = (filters.OrderingFilter,)
ordering = ('title',)
ordering_fields = ('text',)
view = OrderingListView.as_view()
request = factory.get('')
response = view(request)
self.assertEqual(
response.data,
[
{'id': 3, 'title': 'xwv', 'text': 'cde'},
{'id': 2, 'title': 'yxw', 'text': 'bcd'},
{'id': 1, 'title': 'zyx', 'text': 'abc'},
]
) # not in context
ITGM, Dec 2016
def fact(a):

if a == 0: return 1

return a * fact(a - 1)

def test_fact(self):

self.assertTrue(fact(0) == 1)

self.assertTrue(fact(1) == 1)

self.assertTrue(fact(2) == 2)

self.assertTrue(fact(3) == 6)

self.assertTrue(fact(4) == 24)

ITGM, Dec 2016
github.com
ITGM, Dec 2016
https://www.cosc.canterbury.ac.nz/research/reports/
HonsReps/2015/hons_1508.pdf
ITGM, Dec 2016
ITGM, Dec 2016
ITGM, Dec 2016
ITGM, Dec 2016
ITGM, Dec 2016
ITGM, Dec 2016
ITGM, Dec 2016
Edges
ITGM, Dec 2016
BinOpLeftNum
ITGM, Dec 2016
Child Edge Parent Freq
Num left BinOp 12
Num value Assign 20
ITGM, Dec 2016
Depth
ITGM, Dec 2016
Builtin function
ITGM, Dec 2016
https://github.com/alifanov/testedio
ITGM, Dec 2016
Roadmap
ITGM, Dec 2016
Improve search
modules names as features
ITGM, Dec 2016
Import github projects
unit-test monitoring
ITGM, Dec 2016
Fuzzy
recommendations
hypothesis
*pylint plugin
ITGM, Dec 2016
Performance
optimization
map -> list comprehension
*pylint plugin
ITGM, Dec 2016
Other languages
JavaScript
ITGM, Dec 2016
Real TDD
tests -> code generation
ITGM, Dec 2016
Links
https://github.com/mkwiatkowski/pythoscope
http://smother.readthedocs.io/en/latest/index.html
http://testmon.org/
https://www.cosc.canterbury.ac.nz/research/reports/
HonsReps/2015/hons_1508.pdf
http://is.ifmo.ru/diploma-theses/2013/bachelor/rost/rost.pdf
https://habrahabr.ru/post/65944/
http://pyke.sourceforge.net/
ITGM, Dec 2016
Contacts
Telegram: @jetbootsmaker
Alexander Lifanov
ITGM, Dec 2016

More Related Content

What's hot

The Ring programming language version 1.5 book - Part 5 of 31
The Ring programming language version 1.5 book - Part 5 of 31The Ring programming language version 1.5 book - Part 5 of 31
The Ring programming language version 1.5 book - Part 5 of 31
Mahmoud Samir Fayed
 
How To Crack RSA Netrek Binary Verification System
How To Crack RSA Netrek Binary Verification SystemHow To Crack RSA Netrek Binary Verification System
How To Crack RSA Netrek Binary Verification SystemJay Corrales
 
Verification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed SystemsVerification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed Systems
Mykola Novik
 
PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개
PgDay.Seoul
 
Let’s talk about microbenchmarking
Let’s talk about microbenchmarkingLet’s talk about microbenchmarking
Let’s talk about microbenchmarking
Andrey Akinshin
 
PrefixSpan With Spark at Akanoo
PrefixSpan With Spark at AkanooPrefixSpan With Spark at Akanoo
PrefixSpan With Spark at Akanoo
Akanoo
 
QA Auotmation Java programs,theory
QA Auotmation Java programs,theory QA Auotmation Java programs,theory
QA Auotmation Java programs,theory
archana singh
 
R intro 20140716-advance
R intro 20140716-advanceR intro 20140716-advance
R intro 20140716-advance
Kevin Chun-Hsien Hsu
 
EcmaScript 6
EcmaScript 6 EcmaScript 6
EcmaScript 6
Manoj Kumar
 
Hidden loops
Hidden loopsHidden loops
Hidden loops
Alexandru Bolboaca
 
Coscup2021-rust-toturial
Coscup2021-rust-toturialCoscup2021-rust-toturial
Coscup2021-rust-toturial
Wayne Tsai
 
The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84
Mahmoud Samir Fayed
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in Gecko
Chih-Hsuan Kuo
 
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenJohn Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenPostgresOpen
 
"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014
Henning Jacobs
 
Java Program
Java ProgramJava Program
Java Program
Sudeep Singh
 
ES6 in Real Life
ES6 in Real LifeES6 in Real Life
ES6 in Real Life
Domenic Denicola
 
PyconKR 2018 Deep dive into Coroutine
PyconKR 2018 Deep dive into CoroutinePyconKR 2018 Deep dive into Coroutine
PyconKR 2018 Deep dive into Coroutine
Daehee Kim
 
MySQL vs. PostgreSQL
MySQL vs. PostgreSQLMySQL vs. PostgreSQL
MySQL vs. PostgreSQL
Zhivko Angelov
 

What's hot (19)

The Ring programming language version 1.5 book - Part 5 of 31
The Ring programming language version 1.5 book - Part 5 of 31The Ring programming language version 1.5 book - Part 5 of 31
The Ring programming language version 1.5 book - Part 5 of 31
 
How To Crack RSA Netrek Binary Verification System
How To Crack RSA Netrek Binary Verification SystemHow To Crack RSA Netrek Binary Verification System
How To Crack RSA Netrek Binary Verification System
 
Verification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed SystemsVerification of Concurrent and Distributed Systems
Verification of Concurrent and Distributed Systems
 
PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개PostgreSQL 9.6 새 기능 소개
PostgreSQL 9.6 새 기능 소개
 
Let’s talk about microbenchmarking
Let’s talk about microbenchmarkingLet’s talk about microbenchmarking
Let’s talk about microbenchmarking
 
PrefixSpan With Spark at Akanoo
PrefixSpan With Spark at AkanooPrefixSpan With Spark at Akanoo
PrefixSpan With Spark at Akanoo
 
QA Auotmation Java programs,theory
QA Auotmation Java programs,theory QA Auotmation Java programs,theory
QA Auotmation Java programs,theory
 
R intro 20140716-advance
R intro 20140716-advanceR intro 20140716-advance
R intro 20140716-advance
 
EcmaScript 6
EcmaScript 6 EcmaScript 6
EcmaScript 6
 
Hidden loops
Hidden loopsHidden loops
Hidden loops
 
Coscup2021-rust-toturial
Coscup2021-rust-toturialCoscup2021-rust-toturial
Coscup2021-rust-toturial
 
The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84The Ring programming language version 1.2 book - Part 79 of 84
The Ring programming language version 1.2 book - Part 79 of 84
 
Use C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in GeckoUse C++ to Manipulate mozSettings in Gecko
Use C++ to Manipulate mozSettings in Gecko
 
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres OpenJohn Melesky - Federating Queries Using Postgres FDW @ Postgres Open
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
 
"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014"PostgreSQL and Python" Lightning Talk @EuroPython2014
"PostgreSQL and Python" Lightning Talk @EuroPython2014
 
Java Program
Java ProgramJava Program
Java Program
 
ES6 in Real Life
ES6 in Real LifeES6 in Real Life
ES6 in Real Life
 
PyconKR 2018 Deep dive into Coroutine
PyconKR 2018 Deep dive into CoroutinePyconKR 2018 Deep dive into Coroutine
PyconKR 2018 Deep dive into Coroutine
 
MySQL vs. PostgreSQL
MySQL vs. PostgreSQLMySQL vs. PostgreSQL
MySQL vs. PostgreSQL
 

Viewers also liked

Магия метаклассов
Магия метаклассовМагия метаклассов
Магия метаклассов
Andrey Zakharevich
 
Python dict: прошлое, настоящее, будущее
Python dict: прошлое, настоящее, будущееPython dict: прошлое, настоящее, будущее
Python dict: прошлое, настоящее, будущее
delimitry
 
ממצאי סקר בקרב בוגרי קרן קמח
ממצאי סקר בקרב בוגרי קרן קמחממצאי סקר בקרב בוגרי קרן קמח
ממצאי סקר בקרב בוגרי קרן קמח
Shraga Klar
 
Skth 0031
Skth 0031Skth 0031
Deni_Afandi_2016_Common_Resume (with photo)
Deni_Afandi_2016_Common_Resume (with photo)Deni_Afandi_2016_Common_Resume (with photo)
Deni_Afandi_2016_Common_Resume (with photo)Deni Afandi
 
2 arquitecturas de red 2
2 arquitecturas de red 22 arquitecturas de red 2
2 arquitecturas de red 2
Kathia Chiquita
 
Curso de formación (ficticio)
Curso de formación (ficticio)Curso de formación (ficticio)
Curso de formación (ficticio)
Pablo Sg25
 
Resume / CV
Resume / CVResume / CV
Resume / CV
Stephen Richards
 
Pm0016 project risk management
Pm0016 project risk managementPm0016 project risk management
Pm0016 project risk management
consult4solutions
 
Las Herramientas Web
Las Herramientas WebLas Herramientas Web
Las Herramientas Web
Pamela Castellanos
 
CPPC Con Mon Program Impementation
CPPC Con Mon Program ImpementationCPPC Con Mon Program Impementation
CPPC Con Mon Program ImpementationNeil Curran
 

Viewers also liked (14)

Магия метаклассов
Магия метаклассовМагия метаклассов
Магия метаклассов
 
Python dict: прошлое, настоящее, будущее
Python dict: прошлое, настоящее, будущееPython dict: прошлое, настоящее, будущее
Python dict: прошлое, настоящее, будущее
 
ממצאי סקר בקרב בוגרי קרן קמח
ממצאי סקר בקרב בוגרי קרן קמחממצאי סקר בקרב בוגרי קרן קמח
ממצאי סקר בקרב בוגרי קרן קמח
 
Skth 0031
Skth 0031Skth 0031
Skth 0031
 
GUTSA 2016 Fall Welcoming Party
GUTSA 2016 Fall Welcoming PartyGUTSA 2016 Fall Welcoming Party
GUTSA 2016 Fall Welcoming Party
 
Deni_Afandi_2016_Common_Resume (with photo)
Deni_Afandi_2016_Common_Resume (with photo)Deni_Afandi_2016_Common_Resume (with photo)
Deni_Afandi_2016_Common_Resume (with photo)
 
2 arquitecturas de red 2
2 arquitecturas de red 22 arquitecturas de red 2
2 arquitecturas de red 2
 
Curso de formación (ficticio)
Curso de formación (ficticio)Curso de formación (ficticio)
Curso de formación (ficticio)
 
Resume / CV
Resume / CVResume / CV
Resume / CV
 
Work Term Report
Work Term ReportWork Term Report
Work Term Report
 
Pm0016 project risk management
Pm0016 project risk managementPm0016 project risk management
Pm0016 project risk management
 
Las Herramientas Web
Las Herramientas WebLas Herramientas Web
Las Herramientas Web
 
CPPC Con Mon Program Impementation
CPPC Con Mon Program ImpementationCPPC Con Mon Program Impementation
CPPC Con Mon Program Impementation
 
Budgets
BudgetsBudgets
Budgets
 

Similar to AST: threats and opportunities

Python 내장 함수
Python 내장 함수Python 내장 함수
Python 내장 함수
용 최
 
とある断片の超動的言語
とある断片の超動的言語とある断片の超動的言語
とある断片の超動的言語Kiyotaka Oku
 
Porting to Python 3
Porting to Python 3Porting to Python 3
Porting to Python 3
Lennart Regebro
 
Boosting Developer Productivity with Clang
Boosting Developer Productivity with ClangBoosting Developer Productivity with Clang
Boosting Developer Productivity with Clang
Samsung Open Source Group
 
Linux seccomp(2) vs OpenBSD pledge(2)
Linux seccomp(2) vs OpenBSD pledge(2)Linux seccomp(2) vs OpenBSD pledge(2)
Linux seccomp(2) vs OpenBSD pledge(2)
Giovanni Bechis
 
GCC
GCCGCC
What's new in Python 3.11
What's new in Python 3.11What's new in Python 3.11
What's new in Python 3.11
Henry Schreiner
 
Py3k
Py3kPy3k
Functional Programming inside OOP? It’s possible with Python
Functional Programming inside OOP? It’s possible with PythonFunctional Programming inside OOP? It’s possible with Python
Functional Programming inside OOP? It’s possible with Python
Carlos V.
 
pa-pe-pi-po-pure Python Text Processing
pa-pe-pi-po-pure Python Text Processingpa-pe-pi-po-pure Python Text Processing
pa-pe-pi-po-pure Python Text Processing
Rodrigo Senra
 
Bytes in the Machine: Inside the CPython interpreter
Bytes in the Machine: Inside the CPython interpreterBytes in the Machine: Inside the CPython interpreter
Bytes in the Machine: Inside the CPython interpreter
akaptur
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2goMoriyoshi Koizumi
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
LogeekNightUkraine
 
Functions in python
Functions in pythonFunctions in python
Functions in pythonIlian Iliev
 
PythonOOP
PythonOOPPythonOOP
PythonOOP
Veera Pendyala
 
High performance GPU computing with Ruby RubyConf 2017
High performance GPU computing with Ruby  RubyConf 2017High performance GPU computing with Ruby  RubyConf 2017
High performance GPU computing with Ruby RubyConf 2017
Prasun Anand
 
Introduction aux Macros
Introduction aux MacrosIntroduction aux Macros
Introduction aux Macrosunivalence
 
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 AutumnGoptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
Masashi Shibata
 

Similar to AST: threats and opportunities (20)

Python 내장 함수
Python 내장 함수Python 내장 함수
Python 내장 함수
 
Faster Python, FOSDEM
Faster Python, FOSDEMFaster Python, FOSDEM
Faster Python, FOSDEM
 
とある断片の超動的言語
とある断片の超動的言語とある断片の超動的言語
とある断片の超動的言語
 
Porting to Python 3
Porting to Python 3Porting to Python 3
Porting to Python 3
 
Boosting Developer Productivity with Clang
Boosting Developer Productivity with ClangBoosting Developer Productivity with Clang
Boosting Developer Productivity with Clang
 
Linux seccomp(2) vs OpenBSD pledge(2)
Linux seccomp(2) vs OpenBSD pledge(2)Linux seccomp(2) vs OpenBSD pledge(2)
Linux seccomp(2) vs OpenBSD pledge(2)
 
GCC
GCCGCC
GCC
 
What's new in Python 3.11
What's new in Python 3.11What's new in Python 3.11
What's new in Python 3.11
 
Py3k
Py3kPy3k
Py3k
 
Functional Programming inside OOP? It’s possible with Python
Functional Programming inside OOP? It’s possible with PythonFunctional Programming inside OOP? It’s possible with Python
Functional Programming inside OOP? It’s possible with Python
 
Intro
IntroIntro
Intro
 
pa-pe-pi-po-pure Python Text Processing
pa-pe-pi-po-pure Python Text Processingpa-pe-pi-po-pure Python Text Processing
pa-pe-pi-po-pure Python Text Processing
 
Bytes in the Machine: Inside the CPython interpreter
Bytes in the Machine: Inside the CPython interpreterBytes in the Machine: Inside the CPython interpreter
Bytes in the Machine: Inside the CPython interpreter
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2go
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
Functions in python
Functions in pythonFunctions in python
Functions in python
 
PythonOOP
PythonOOPPythonOOP
PythonOOP
 
High performance GPU computing with Ruby RubyConf 2017
High performance GPU computing with Ruby  RubyConf 2017High performance GPU computing with Ruby  RubyConf 2017
High performance GPU computing with Ruby RubyConf 2017
 
Introduction aux Macros
Introduction aux MacrosIntroduction aux Macros
Introduction aux Macros
 
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 AutumnGoptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
Goptuna Distributed Bayesian Optimization Framework at Go Conference 2019 Autumn
 

Recently uploaded

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 

Recently uploaded (20)

Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 

AST: threats and opportunities