SlideShare ist ein Scribd-Unternehmen logo
Python para la Plataforma Java
          Leo Soto M.



        Encuentro Linux 2009
http://www.flickr.com/photos/ferruiz/4036373874/
Python para la plataforma Java
http://www.flickr.com/photos/lab2112/457187539/
¿Plataforma Java sin Java?
Plataforma Java con Java más
Python, Ruby, Scala, Groovy...
¿Por qué Python?
“Python is an experiment in how much freedom
             programmers need...”
“...Too much freedom and nobody can read
another's code; too little and expressiveness is
                 endangered”

                       - Guido van Rossum, 1996
Python
Dinámico, flexible, extremadamente legible
Jython
Dinámico, flexible, extremadamente legible

   En una plataforma ubicua, sólida
http://www.flickr.com/photos/mushon/282287572/
Status de Jython




            http://www.flickr.com/photos/digital-noise/3650559857/
2.5.1
Full compatibilidad con CPython
web2py


etree             nose


 setuptools   virtualenv
OK
¿Pero qué puedo hacer con Jython
             hoy?
GUIs
Demo con Swing
De Java a Jython
final JFrame frame = new JFrame("HelloSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame = JFrame("HelloSwing")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setSize(300,300)
frame = JFrame("HelloSwing",
               defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
               size=(300, 300))
Container content = frame.getContentPane();
content.setLayout(new FlowLayout());
content = frame.getContentPane();
content.setLayout(new FlowLayout());
content = frame.contentPane
content.setLayout(new FlowLayout());
content = frame.contentPane
content.setLayout(FlowLayout());
content = frame.contentPane
content.layout = FlowLayout()
JButton botonSaludar = new JButton("Saludar");
JButton botonDespedir = new JButton("Despedirse");
botonSaludar.addActionListener(new ActionListener() {
	 public void actionPerformed(ActionEvent e) {
	 	 JOptionPane.showMessageDialog(frame, "Hola!");
	 }
});
botonDespedir.addActionListener(new ActionListener() {
	 public void actionPerformed(ActionEvent e) {
	 	 JOptionPane.showMessageDialog(frame, "Chao!");
	 	 frame.dispose();
	 }
});
content.add(botonSaludar);
content.add(botonDespedir);
def saludar(event):
    JOptionPane.showMessageDialog(frame, "Hola!")

def despedir(event):
    JOptionPane.showMessageDialog(frame, "Chao!")
    frame.dispose()

content.add(JButton("Saludar", actionPerformed=saludar))
content.add(JButton("Despedirse", actionPerformed=despedir))
Otra demo con Swing
(Si es que tenemos acceso a internet)
Créditos: Frank Wierzbicki
Web
Demo con Django
Y sólo por diversión...
### View
#!/usr/bin/env python
                                                            from django import http
"""
                                                            from django.template import Template, Context
WSW - the World's Shittiest Wiki.
"""
                                                            def wsw(request, title):
import re
                                                                title = urllib.unquote_plus(title) if title else "Home"
import urllib
                                                                p, created = Page.objects.get_or_create(title=title)
from django.conf import settings
                                                                form = PageForm(instance=p)
                                                                if request.method == "POST":
### Config
                                                                     form = PageForm(request.POST, instance=p)
settings.configure(
                                                                     form.save()
    DEBUG = True,
                                                                     return http.HttpResponseRedirect(request.get_full_path())
    DATABASE_ENGINE =   "doj.backends.zxjdbc.postgresql",
                                                                else:
    DATABASE_NAME   =   "wsw",
                                                                     form = PageForm(instance=p)
    DATABASE_USER   =   "wsw",
                                                                     t = Template("""<h1>{{ p.title }}</h1><ul>{% for p in
    DATABASE_PASSWORD   = "wsw",
                                                            allpages %}<li><a href="{{ p }}">{{ p }}</a></li>{% endfor %}
    ROOT_URLCONF    =   __name__)
                                                            </ul><form action="{{ request.get_full_path }}" method="POST">
                                                            <p>{{ form.content }}</p><input type="submit"></form>""")
### Model
                                                                wikiwords = re.findall(
from django.db import models
                                                                         '[A-Z][a-z]+[A-Z][a-z]+(?:[A-Z][a-z]+)*', p.content)
                                                                allpages = [
class Page(models.Model):
                                                                         page.title for page in Page.objects.order_by('title')]
    title = models.CharField(max_length=300,
                                                                allpages.extend(
                             primary_key=True)
                                                                         word for word in wikiwords if word not in allpages)
    content = models.TextField()
                                                                return http.HttpResponse(t.render(Context(locals())))
    class Meta:
                                                            ### Main
        app_label = "wsw"
                                                            if __name__ == '__main__':
                                                                from django.core import management
### URLs
                                                                from django.db import connection
from django.conf.urls.defaults import *
                                                                from django.core.management.color import no_style
                                                                cursor = connection.cursor()
urlpatterns = patterns(__name__, ('(.*)', 'wsw'))
                                                                statements, _ = connection.creation.sql_create_model(
                                                                         Page, no_style())
### Form
                                                                try:
from django.forms import ModelForm
                                                                     for sql in statements:
                                                                         cursor.execute(sql)
class PageForm(ModelForm):
                                                                     connection.connection.commit()
    class Meta:
                                                                except:
        model = Page
                                                                     pass
        fields = ['content']
                                                                management.call_command('runserver')
Créditos: Jacob Kaplan-Moss
Testing




   http://www.flickr.com/photos/emotionaltoothpaste/26034597/
DocTests
def factorial(n):
                                         It must also not be ridiculously large:
    """Return the factorial of n, an
                                         >>> factorial(1e100)
    exact integer >= 0.
                                         Traceback (most recent call last):
                                             ...
   If the result is small enough to
                                         OverflowError: n too large
   fit in an int, return an int.
                                         """
   Else return a long.

                                         import math
   >>> [factorial(n)
                                         if not n >= 0:
   ... for n in range(6)]
                                             raise ValueError("n must be >= 0")
   [1, 1, 2, 6, 24, 120]
                                         if math.floor(n) != n:
   >>> [factorial(long(n))
                                             raise ValueError(
   ... for n in range(6)]
                                                 "n must be exact integer")
   [1, 1, 2, 6, 24, 120]
                                         if n+1 == n: # catch a value like 1e300
   >>> factorial(30)
                                             raise OverflowError("n too large")
   265252859812191058636308480000000L
                                         result = 1
   >>> factorial(30L)
                                         factor = 2
   265252859812191058636308480000000L
                                         while factor <= n:
   >>> factorial(-1)
                                             result *= factor
   Traceback (most recent call last):
                                             factor += 1
       ...
                                         return result
   ValueError: n must be >= 0

   Factorials of floats are OK, but
   the float must be an exact integer:
   >>> factorial(30.1)
   Traceback (most recent call last):
       ...
   ValueError: n must be exact integer
   >>> factorial(30.0)
   265252859812191058636308480000000L
Demo: DocTests + HtmlUnit
Demo: DocTests + HtmlUnit
         ¿Ah?
¡Tests de Integración para web apps!
Oh, para eso tenemos Selenium, ¿no?
Ejecutar en el browser tarda muuuuucho




                    http://www.flickr.com/photos/tambako/498552755/
Run headless...
Run headless...




...con HtmlUnit!
Demo: DocTests + HtmlUnit
Más Testing




       http://www.flickr.com/photos/emotionaltoothpaste/26034597/
¿Por cierto, quien más usa Jython?
EADS




http://www.flickr.com/photos/nguyendai/694158734/
Lockheed Martin




http://www.flickr.com/photos/rcsj/2504022678/
¿Y dónde puedo aprender más?
jythonbook.com
jythonbook.com
¡Gracias!
      Contacto:

       @leosoto
http://blog.leosoto.com
¿Preguntas?
      Contacto:

       @leosoto
http://blog.leosoto.com

Weitere ähnliche Inhalte

Was ist angesagt?

Sequential & binary, linear search
Sequential & binary, linear searchSequential & binary, linear search
Sequential & binary, linear search
montazur420
 
Exponential formula presentation
Exponential formula presentationExponential formula presentation
Exponential formula presentation
Oliver Zhang
 
Sql joins
Sql joinsSql joins
Sql joins
Gaurav Dhanwant
 
Managing objects with data dictionary views
Managing objects with data dictionary viewsManaging objects with data dictionary views
Managing objects with data dictionary views
Syed Zaid Irshad
 
Interpolation search
Interpolation searchInterpolation search
Interpolation search
Usr11011
 
Queue Implementation Using Array & Linked List
Queue Implementation Using Array & Linked ListQueue Implementation Using Array & Linked List
Queue Implementation Using Array & Linked List
PTCL
 
Pigeonhole sort
Pigeonhole sortPigeonhole sort
Pigeonhole sort
zahraa F.Muhsen
 
20 methods of division x
20 methods of division x20 methods of division x
20 methods of division x
math260
 
Single linked list
Single linked listSingle linked list
Single linked list
jasbirsingh chauhan
 
9 the basic language of functions x
9 the basic language of functions x9 the basic language of functions x
9 the basic language of functions x
math260
 
StructuresPointers.pptx
StructuresPointers.pptxStructuresPointers.pptx
StructuresPointers.pptx
Bharati Vidyapeeth COE, Navi Mumbai
 
Circular queues
Circular queuesCircular queues
Circular queues
Ssankett Negi
 
25 surface area
25 surface area25 surface area
25 surface area
math267
 
Prefix, Infix and Post-fix Notations
Prefix, Infix and Post-fix NotationsPrefix, Infix and Post-fix Notations
Prefix, Infix and Post-fix Notations
Afaq Mansoor Khan
 
Aggregating Data Using Group Functions
Aggregating Data Using Group FunctionsAggregating Data Using Group Functions
Aggregating Data Using Group Functions
Salman Memon
 
Data structure new lab manual
Data structure  new lab manualData structure  new lab manual
Data structure new lab manual
SANTOSH RATH
 
Regular Expressions Cheat Sheet
Regular Expressions Cheat SheetRegular Expressions Cheat Sheet
Regular Expressions Cheat Sheet
Akash Bisariya
 
Graph.pptx
Graph.pptxGraph.pptx
2020 SciFinder-n 검색가이드(한국어)
2020 SciFinder-n 검색가이드(한국어)2020 SciFinder-n 검색가이드(한국어)
2020 SciFinder-n 검색가이드(한국어)
POSTECH Library
 
MYSQL using set operators
MYSQL using set operatorsMYSQL using set operators
MYSQL using set operators
Ahmed Farag
 

Was ist angesagt? (20)

Sequential & binary, linear search
Sequential & binary, linear searchSequential & binary, linear search
Sequential & binary, linear search
 
Exponential formula presentation
Exponential formula presentationExponential formula presentation
Exponential formula presentation
 
Sql joins
Sql joinsSql joins
Sql joins
 
Managing objects with data dictionary views
Managing objects with data dictionary viewsManaging objects with data dictionary views
Managing objects with data dictionary views
 
Interpolation search
Interpolation searchInterpolation search
Interpolation search
 
Queue Implementation Using Array & Linked List
Queue Implementation Using Array & Linked ListQueue Implementation Using Array & Linked List
Queue Implementation Using Array & Linked List
 
Pigeonhole sort
Pigeonhole sortPigeonhole sort
Pigeonhole sort
 
20 methods of division x
20 methods of division x20 methods of division x
20 methods of division x
 
Single linked list
Single linked listSingle linked list
Single linked list
 
9 the basic language of functions x
9 the basic language of functions x9 the basic language of functions x
9 the basic language of functions x
 
StructuresPointers.pptx
StructuresPointers.pptxStructuresPointers.pptx
StructuresPointers.pptx
 
Circular queues
Circular queuesCircular queues
Circular queues
 
25 surface area
25 surface area25 surface area
25 surface area
 
Prefix, Infix and Post-fix Notations
Prefix, Infix and Post-fix NotationsPrefix, Infix and Post-fix Notations
Prefix, Infix and Post-fix Notations
 
Aggregating Data Using Group Functions
Aggregating Data Using Group FunctionsAggregating Data Using Group Functions
Aggregating Data Using Group Functions
 
Data structure new lab manual
Data structure  new lab manualData structure  new lab manual
Data structure new lab manual
 
Regular Expressions Cheat Sheet
Regular Expressions Cheat SheetRegular Expressions Cheat Sheet
Regular Expressions Cheat Sheet
 
Graph.pptx
Graph.pptxGraph.pptx
Graph.pptx
 
2020 SciFinder-n 검색가이드(한국어)
2020 SciFinder-n 검색가이드(한국어)2020 SciFinder-n 검색가이드(한국어)
2020 SciFinder-n 검색가이드(한국어)
 
MYSQL using set operators
MYSQL using set operatorsMYSQL using set operators
MYSQL using set operators
 

Ähnlich wie Jython: Python para la plataforma Java (EL2009)

Jython: Python para la plataforma Java (JRSL 09)
Jython: Python para la plataforma Java (JRSL 09)Jython: Python para la plataforma Java (JRSL 09)
Jython: Python para la plataforma Java (JRSL 09)
Leonardo Soto
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
Max Claus Nunes
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
Rafael Felix da Silva
 
The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184
Mahmoud Samir Fayed
 
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
Johannes Brodwall
 
Scala on Your Phone
Scala on Your PhoneScala on Your Phone
Scala on Your Phone
Michael Galpin
 
The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196
Mahmoud Samir Fayed
 
The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185
Mahmoud Samir Fayed
 
The Ring programming language version 1.8 book - Part 50 of 202
The Ring programming language version 1.8 book - Part 50 of 202The Ring programming language version 1.8 book - Part 50 of 202
The Ring programming language version 1.8 book - Part 50 of 202
Mahmoud Samir Fayed
 
Backbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The BrowserBackbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The Browser
Howard Lewis Ship
 
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212
Mahmoud Samir Fayed
 
Pruebas unitarias con django
Pruebas unitarias con djangoPruebas unitarias con django
Pruebas unitarias con django
Tomás Henríquez
 
Django quickstart
Django quickstartDjango quickstart
Django quickstart
Marconi Moreto
 
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189
Mahmoud Samir Fayed
 
Django (Web Konferencia 2009)
Django (Web Konferencia 2009)Django (Web Konferencia 2009)
Django (Web Konferencia 2009)
Szilveszter Farkas
 
Everything About PowerShell
Everything About PowerShellEverything About PowerShell
Everything About PowerShell
Gaetano Causio
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4
DEVCON
 
droidparts
droidpartsdroidparts
droidparts
Droidcon Berlin
 

Ähnlich wie Jython: Python para la plataforma Java (EL2009) (20)

Jython: Python para la plataforma Java (JRSL 09)
Jython: Python para la plataforma Java (JRSL 09)Jython: Python para la plataforma Java (JRSL 09)
Jython: Python para la plataforma Java (JRSL 09)
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184The Ring programming language version 1.5.3 book - Part 54 of 184
The Ring programming language version 1.5.3 book - Part 54 of 184
 
The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184The Ring programming language version 1.5.3 book - Part 44 of 184
The Ring programming language version 1.5.3 book - Part 44 of 184
 
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
 
Scala on Your Phone
Scala on Your PhoneScala on Your Phone
Scala on Your Phone
 
The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196The Ring programming language version 1.7 book - Part 48 of 196
The Ring programming language version 1.7 book - Part 48 of 196
 
The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185The Ring programming language version 1.5.4 book - Part 44 of 185
The Ring programming language version 1.5.4 book - Part 44 of 185
 
The Ring programming language version 1.8 book - Part 50 of 202
The Ring programming language version 1.8 book - Part 50 of 202The Ring programming language version 1.8 book - Part 50 of 202
The Ring programming language version 1.8 book - Part 50 of 202
 
Backbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The BrowserBackbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The Browser
 
The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212The Ring programming language version 1.10 book - Part 54 of 212
The Ring programming language version 1.10 book - Part 54 of 212
 
Pruebas unitarias con django
Pruebas unitarias con djangoPruebas unitarias con django
Pruebas unitarias con django
 
Django quickstart
Django quickstartDjango quickstart
Django quickstart
 
The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189The Ring programming language version 1.6 book - Part 46 of 189
The Ring programming language version 1.6 book - Part 46 of 189
 
Django (Web Konferencia 2009)
Django (Web Konferencia 2009)Django (Web Konferencia 2009)
Django (Web Konferencia 2009)
 
Everything About PowerShell
Everything About PowerShellEverything About PowerShell
Everything About PowerShell
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4
 
droidparts
droidpartsdroidparts
droidparts
 

Mehr von Leonardo Soto

El arte oscuro de estimar v3
El arte oscuro de estimar v3El arte oscuro de estimar v3
El arte oscuro de estimar v3
Leonardo Soto
 
Caching tips
Caching tipsCaching tips
Caching tips
Leonardo Soto
 
Una historia de ds ls en ruby
Una historia de ds ls en rubyUna historia de ds ls en ruby
Una historia de ds ls en ruby
Leonardo Soto
 
El Lado Cool de Java
El Lado Cool de JavaEl Lado Cool de Java
El Lado Cool de Java
Leonardo Soto
 
Dos Años de Rails
Dos Años de RailsDos Años de Rails
Dos Años de Rails
Leonardo Soto
 
Dos años de Rails
Dos años de RailsDos años de Rails
Dos años de Rails
Leonardo Soto
 
Mi Arsenal de Testing en Rails
Mi Arsenal de Testing en RailsMi Arsenal de Testing en Rails
Mi Arsenal de Testing en Rails
Leonardo Soto
 
Mapas en la web con Cloudmade
Mapas en la web con CloudmadeMapas en la web con Cloudmade
Mapas en la web con Cloudmade
Leonardo Soto
 
Startechconf
StartechconfStartechconf
Startechconf
Leonardo Soto
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
Leonardo Soto
 
Decent exposure: Controladores sin @ivars
Decent exposure: Controladores sin @ivarsDecent exposure: Controladores sin @ivars
Decent exposure: Controladores sin @ivars
Leonardo Soto
 
The Hashrocket Way
The Hashrocket WayThe Hashrocket Way
The Hashrocket Way
Leonardo Soto
 
Sounds.gd lighting talk (RubyConf Uruguay)
Sounds.gd lighting talk (RubyConf Uruguay)Sounds.gd lighting talk (RubyConf Uruguay)
Sounds.gd lighting talk (RubyConf Uruguay)
Leonardo Soto
 
Un tour por Java, Scala, Python, Ruby y Javascript
Un tour por Java, Scala, Python, Ruby y JavascriptUn tour por Java, Scala, Python, Ruby y Javascript
Un tour por Java, Scala, Python, Ruby y Javascript
Leonardo Soto
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
Leonardo Soto
 
Oss
OssOss
Javascript funcional
Javascript funcionalJavascript funcional
Javascript funcional
Leonardo Soto
 
App Engine
App EngineApp Engine
App Engine
Leonardo Soto
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
Leonardo Soto
 
Tres Gemas De Ruby
Tres Gemas De RubyTres Gemas De Ruby
Tres Gemas De Ruby
Leonardo Soto
 

Mehr von Leonardo Soto (20)

El arte oscuro de estimar v3
El arte oscuro de estimar v3El arte oscuro de estimar v3
El arte oscuro de estimar v3
 
Caching tips
Caching tipsCaching tips
Caching tips
 
Una historia de ds ls en ruby
Una historia de ds ls en rubyUna historia de ds ls en ruby
Una historia de ds ls en ruby
 
El Lado Cool de Java
El Lado Cool de JavaEl Lado Cool de Java
El Lado Cool de Java
 
Dos Años de Rails
Dos Años de RailsDos Años de Rails
Dos Años de Rails
 
Dos años de Rails
Dos años de RailsDos años de Rails
Dos años de Rails
 
Mi Arsenal de Testing en Rails
Mi Arsenal de Testing en RailsMi Arsenal de Testing en Rails
Mi Arsenal de Testing en Rails
 
Mapas en la web con Cloudmade
Mapas en la web con CloudmadeMapas en la web con Cloudmade
Mapas en la web con Cloudmade
 
Startechconf
StartechconfStartechconf
Startechconf
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
 
Decent exposure: Controladores sin @ivars
Decent exposure: Controladores sin @ivarsDecent exposure: Controladores sin @ivars
Decent exposure: Controladores sin @ivars
 
The Hashrocket Way
The Hashrocket WayThe Hashrocket Way
The Hashrocket Way
 
Sounds.gd lighting talk (RubyConf Uruguay)
Sounds.gd lighting talk (RubyConf Uruguay)Sounds.gd lighting talk (RubyConf Uruguay)
Sounds.gd lighting talk (RubyConf Uruguay)
 
Un tour por Java, Scala, Python, Ruby y Javascript
Un tour por Java, Scala, Python, Ruby y JavascriptUn tour por Java, Scala, Python, Ruby y Javascript
Un tour por Java, Scala, Python, Ruby y Javascript
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
 
Oss
OssOss
Oss
 
Javascript funcional
Javascript funcionalJavascript funcional
Javascript funcional
 
App Engine
App EngineApp Engine
App Engine
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Tres Gemas De Ruby
Tres Gemas De RubyTres Gemas De Ruby
Tres Gemas De Ruby
 

Kürzlich hochgeladen

Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
Techgropse Pvt.Ltd.
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
Claudio Di Ciccio
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
David Brossard
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
FODUU
 

Kürzlich hochgeladen (20)

Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdfAI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
AI-Powered Food Delivery Transforming App Development in Saudi Arabia.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
CAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on BlockchainCAKE: Sharing Slices of Confidential Data on Blockchain
CAKE: Sharing Slices of Confidential Data on Blockchain
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
OpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - AuthorizationOpenID AuthZEN Interop Read Out - Authorization
OpenID AuthZEN Interop Read Out - Authorization
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Things to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUUThings to Consider When Choosing a Website Developer for your Website | FODUU
Things to Consider When Choosing a Website Developer for your Website | FODUU
 

Jython: Python para la plataforma Java (EL2009)