SlideShare una empresa de Scribd logo
1 de 51
Descargar para leer sin conexión
Por qué no debemos aprender
  “Lo que las empresas piden”
      Welcome to siglo XXI




       Svet Ivantchev, eFaber
          svet@efaber.net

            1 de abril de 2009,
             Uni Encounter V
Plan

• Los informáticos, el futuro y nuestra
  preparación
• Tecnologías interesantes
• El marcado de trabajo y Lifelong Learning
¡Decidido!
Primero voy e Uni EE
Informáticos

• Ingeniería?
• Arte? Artesanía?
• O son albañiles (aka picateclas)?
• Y si fuera poco ... ¡hay intrusos!
• En realidad ... hay de todo
“Preparar para el
        futuro”
• 1992 (DOS, Clipper, HTM-qué? ...)
• 1996 (Windows 95, HTML, PH-qué?)
• 1999 (Java)
• 2004 (PHP, J2EE, J2ME)
• 2007 (PHP, mySQL, Ruby on-qué?)
Así que ...


• Todo lo que podemos estudiar no vale?
• Líderes vs seguidores
(+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6))
¿De quién depende?
¿Qué hacer?


Innovar (con perdón)
Innovación
La aviación civil y el DC-3




•   Hélice de inclinación variable
•   Tren de aterizaje retráctil
•   Tipo de construcción monocoque
•   Motor radial enfriado por aire
•   Alerones
La fotografía




1521    1609           1826
EC2
Ideas

1. Rendimiento “humano”
2. Pensar “al revés”, RPN
3. Erlang y variables que no cambian
4. Paralelización, CUDA
1) Rendimiento “humano”
          La motivación de los agentes: € y :-)

                      1990              2009               $$$
    CPU          80286, 6 MHz       Xeon, 3 GHz          1/5.000
    RAM              128 Kb             4 Gb            1/40.000
    Disco            360 Kb              1T           1/3.000.000
  yo / hora            2€               50 €              25 x

     Un tarea que lleva: 10 h de programación y 10 h de cálculo?
Una herramienta que me hace 10x mas productivo pero es 20x mas lenta?
Ruby


Python, Perl, PHP...
Ejemplo: Ruby OSA
Ej: Ruby OSA




it = OSA.app('iTunes')
OSA.app('iChat').status_message = it.current_track.name
Ej: detalles



• 20.minutes.ago
• 1.gigabyte
• 15.times { ... }
2. HP y RPN
RPN
           1+2=3
    1 + 2 * 5 = 11 ← 1+(2*5)
    1 + 2 * 5 = 15 ← (1+2)*5



    1                          3
1   2           3              5   15


1   2          +           5       *
RPN
            (42 + 16) * (87 - 31)
            ---------------------------------
                          12


• ((42 + 16) * (87 - 31)) / 12 =
• 42 ↵ 16 + 87 ↵ 31 - * 12 /
Quicksort
                      42 16 23 8 15 4
                      4 8 15 16 23 42


function quicksort(array)
     var list less, greater
     if length(array) ≤ 1
         return array
     select and remove a pivot value pivot from array
     for each x in array
         if x ≤ pivot then append x to less
         else append x to greater
     return concatenate(quicksort(less), pivot, quicksort(greater))
Ref: http://es.wikipedia.org/wiki/Quicksort
void quicksort(int* izq, int* der)
/*Se llama con: quicksort(&vector[0],&vector[n-1]);*/
{
! if(der<izq) return;
! int pivot=*izq;
! int* ult=der;
! int* pri=izq;

!   while(izq<der)
!   {
!   ! while(*izq<=pivot && izq<der+1) izq++;
!   ! while(*der>pivot && der>izq-1) der--;
!   ! if(izq<der) swap(izq,der);
!   }
!   swap(pri,der);
!   quicksort(pri,der-1);
!   quicksort(der+1,ult);
}

void swap(int* a, int* b)
{
! int temp=*a;
! *a=*b;
! *b=temp;
}
Erlang

qsort([]) -> [];

qsort([Pivot|Rest]) ->
  qsort([ X || X <- Rest, X < Pivot])
  ++ [Pivot] ++
  qsort([ Y || Y <- Rest, Y >= Pivot]).
Erlang 101
Erlang (BEAM) emulator version 5.6.5...
Eshell V5.6.5 (abort with ^G)

1> 1+6.
7
2> X=3.
3
3> Y=12.
12
4> {P, Q} = {11, 12}.
{11,12}
5> P.
11
6> Y=Q.
12
7> Y=13.
** exception error: no match of right hand side value 13
Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] ...
Eshell V5.6.5 (abort with ^G)

1> L = [ 7, 65, 5, 9, 11 ].
[7,65,5,9,11]
2> [ C | R ] = L.
[7,65,5,9,11]
3> C.
7
4> R.
[65,5,9,11]
tienda.erl:
  -module(tienda).
  -export([precio/1]).

 precio(manzanas)    ->   2.90;
 precio(fresas)      ->   3.50;
 precio(leche)       ->   1.50;
 precio(ordenador)   ->   199.


tienda1.erl:
  -module(tienda1).
  -export([total/1]).

 total([{Que, N}|T]) -> tienda:precio(Que) * N + total(T);
 total([]) -> 0.
Erlang (BEAM) emulator version 5.6.5 [source] [smp:2]
Eshell V5.6.5 (abort with ^G)

1> c(tienda1).
{ok,tienda1}

2> c(tienda1).
{ok,tienda1}

3> L=[{ordenador,1},{manzanas,2},{fresas,3},{leche,1}].
[{ordenador,1},{manzanas,2},{fresas,3},{leche,1}]

4> tienda1:total(L).
216.8
Permutaciones
123    ->    123    132    213   231    312    321

1234 ->

["1234","1243","1324","1342","1423","1432","2134","2143",
 "2314","2341","2413","2431","3124","3142","3214","3241",
 "3412","3421","4123","4132","4213","4231","4312","4321"]




                Para ver todas las permutaciones de X123:

      1- calcular las de de 123: 123, 132, 213, 231, 312, 321

       2- Intercalar X: X123, 1X23, 12X3, 123X, ..., ...
p.erl:
  -module(p).
  -export([perms/1]).

  perms([]) -> [[]];
  perms(L) -> [[H|T] || H <- L, T <- perms(L--[H])].




Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] ...
Eshell V5.6.5 (abort with ^G)

1> c(p).
{ok,p}
2> p:perms("12").
["12","21"]
3> p:perms("123").
["123","132","213","231","312","321"]
“Yo lo que quiero es trabajo”
http://blogs.oreilly.com/iphone/2008/11/turning-ideas-into-application.html
Mike Vanier:
         LFM and FLSP


• languages designed for smart people
• languages designed for the masses
  http://www.paulgraham.com/vanlfsp.html
Java

• "We wanted to build a system that could
  be programmed easily without a lot of
  esoteric training and which leveraged today's
  standard practice."


  http://java.sun.com/docs/overviews/java/java-overview-1.html
Craig McClanahan                 James Duncan
                                        Davidson




   servlet 2.2, 2.3 y JSP 1.1, 1.2
specifications, JavaServer Faces 1.0    Tomcat, Ant
¿Así que aprendo Ruby,
  y Erlang y ya esta?
Q &A

Más contenido relacionado

Similar a Lo que las empresas piden (20)

Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)
 
Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
Programación de código
Programación de códigoProgramación de código
Programación de código
 
Curso lisp
Curso lispCurso lisp
Curso lisp
 
eduardo hernandez investigacion 1
eduardo hernandez investigacion 1eduardo hernandez investigacion 1
eduardo hernandez investigacion 1
 
Taller processing arduino
Taller processing arduinoTaller processing arduino
Taller processing arduino
 
Nosqlcp
NosqlcpNosqlcp
Nosqlcp
 
Nosqlcp
NosqlcpNosqlcp
Nosqlcp
 
Reactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJSReactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJS
 
Paralela6
Paralela6Paralela6
Paralela6
 
Parte03
Parte03Parte03
Parte03
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Understanding Advanced Buffer Overflow
Understanding Advanced Buffer OverflowUnderstanding Advanced Buffer Overflow
Understanding Advanced Buffer Overflow
 
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RGestión y Análisis de Datos para las Ciencias Económicas con Python y R
Gestión y Análisis de Datos para las Ciencias Económicas con Python y R
 
Microcontroladores: Ejemplo de un computador real: AtmegaX8PA
Microcontroladores: Ejemplo de un computador real: AtmegaX8PAMicrocontroladores: Ejemplo de un computador real: AtmegaX8PA
Microcontroladores: Ejemplo de un computador real: AtmegaX8PA
 
Variables2
Variables2Variables2
Variables2
 
Fun[ctional] spark with scala
Fun[ctional] spark with scalaFun[ctional] spark with scala
Fun[ctional] spark with scala
 
Meetup Fun[ctional] spark with scala
Meetup Fun[ctional] spark with scalaMeetup Fun[ctional] spark with scala
Meetup Fun[ctional] spark with scala
 

Más de Svet Ivantchev

Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Svet Ivantchev
 
Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Svet Ivantchev
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a ElixirSvet Ivantchev
 
Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Svet Ivantchev
 
Gaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlGaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlSvet Ivantchev
 
Gaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataGaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataSvet Ivantchev
 
Gaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotGaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotSvet Ivantchev
 
Gaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoGaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoSvet Ivantchev
 
Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Svet Ivantchev
 
How Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningHow Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningSvet Ivantchev
 
Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Svet Ivantchev
 
Libros electrónicos III
Libros electrónicos IIILibros electrónicos III
Libros electrónicos IIISvet Ivantchev
 
Libros electrónicos II - ePub
Libros electrónicos II - ePubLibros electrónicos II - ePub
Libros electrónicos II - ePubSvet Ivantchev
 
Libros electrónicos I
Libros electrónicos ILibros electrónicos I
Libros electrónicos ISvet Ivantchev
 
Cloud Computing: Just Do It
Cloud Computing: Just Do ItCloud Computing: Just Do It
Cloud Computing: Just Do ItSvet Ivantchev
 
Cloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'TsCloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'TsSvet Ivantchev
 
Los mitos de la innovación
Los mitos de la innovaciónLos mitos de la innovación
Los mitos de la innovaciónSvet Ivantchev
 

Más de Svet Ivantchev (20)

Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).Machne Learning and Human Learning (2013).
Machne Learning and Human Learning (2013).
 
Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)Big Data: 
Some Questions in its Use in Applied Economics (2017)
Big Data: 
Some Questions in its Use in Applied Economics (2017)
 
Introducción a Elixir
Introducción a ElixirIntroducción a Elixir
Introducción a Elixir
 
Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016Gaztea Tech Robotica 2016
Gaztea Tech Robotica 2016
 
Gaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot ControlGaztea Tech 2015: 4. GT Drawbot Control
Gaztea Tech 2015: 4. GT Drawbot Control
 
Gaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y FirmataGaztea Tech 2015: 3. Processing y Firmata
Gaztea Tech 2015: 3. Processing y Firmata
 
Gaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBotGaztea Tech 2015: 2. El GT DrawBot
Gaztea Tech 2015: 2. El GT DrawBot
 
Gaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al ArduinoGaztea Tech 2015: 1. Introducción al Arduino
Gaztea Tech 2015: 1. Introducción al Arduino
 
Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?Learning Analytics and Online Learning: New Oportunities?
Learning Analytics and Online Learning: New Oportunities?
 
How Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human LearningHow Machine Learning and Big Data can Help Us with the Human Learning
How Machine Learning and Big Data can Help Us with the Human Learning
 
Vienen los Drones!
Vienen los Drones!Vienen los Drones!
Vienen los Drones!
 
Data Science
Data ScienceData Science
Data Science
 
Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2Libros electrónicos IV: ePub 2
Libros electrónicos IV: ePub 2
 
Libros electrónicos III
Libros electrónicos IIILibros electrónicos III
Libros electrónicos III
 
Libros electrónicos II - ePub
Libros electrónicos II - ePubLibros electrónicos II - ePub
Libros electrónicos II - ePub
 
Libros electrónicos I
Libros electrónicos ILibros electrónicos I
Libros electrónicos I
 
Cloud Computing: Just Do It
Cloud Computing: Just Do ItCloud Computing: Just Do It
Cloud Computing: Just Do It
 
Cloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'TsCloud Computing: What it is, DOs and DON'Ts
Cloud Computing: What it is, DOs and DON'Ts
 
BigData
BigDataBigData
BigData
 
Los mitos de la innovación
Los mitos de la innovaciónLos mitos de la innovación
Los mitos de la innovación
 

Último

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIAFabiolaGarcia751855
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 

Último (20)

Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 

Lo que las empresas piden

  • 1. Por qué no debemos aprender “Lo que las empresas piden” Welcome to siglo XXI Svet Ivantchev, eFaber svet@efaber.net 1 de abril de 2009, Uni Encounter V
  • 2. Plan • Los informáticos, el futuro y nuestra preparación • Tecnologías interesantes • El marcado de trabajo y Lifelong Learning
  • 3.
  • 4.
  • 5.
  • 6.
  • 8.
  • 9. Informáticos • Ingeniería? • Arte? Artesanía? • O son albañiles (aka picateclas)? • Y si fuera poco ... ¡hay intrusos! • En realidad ... hay de todo
  • 10. “Preparar para el futuro” • 1992 (DOS, Clipper, HTM-qué? ...) • 1996 (Windows 95, HTML, PH-qué?) • 1999 (Java) • 2004 (PHP, J2EE, J2ME) • 2007 (PHP, mySQL, Ruby on-qué?)
  • 11. Así que ... • Todo lo que podemos estudiar no vale? • Líderes vs seguidores
  • 15. Innovación La aviación civil y el DC-3 • Hélice de inclinación variable • Tren de aterizaje retráctil • Tipo de construcción monocoque • Motor radial enfriado por aire • Alerones
  • 16. La fotografía 1521 1609 1826
  • 17. EC2
  • 18. Ideas 1. Rendimiento “humano” 2. Pensar “al revés”, RPN 3. Erlang y variables que no cambian 4. Paralelización, CUDA
  • 19. 1) Rendimiento “humano” La motivación de los agentes: € y :-) 1990 2009 $$$ CPU 80286, 6 MHz Xeon, 3 GHz 1/5.000 RAM 128 Kb 4 Gb 1/40.000 Disco 360 Kb 1T 1/3.000.000 yo / hora 2€ 50 € 25 x Un tarea que lleva: 10 h de programación y 10 h de cálculo? Una herramienta que me hace 10x mas productivo pero es 20x mas lenta?
  • 20.
  • 21.
  • 24. Ej: Ruby OSA it = OSA.app('iTunes') OSA.app('iChat').status_message = it.current_track.name
  • 25. Ej: detalles • 20.minutes.ago • 1.gigabyte • 15.times { ... }
  • 26. 2. HP y RPN
  • 27. RPN 1+2=3 1 + 2 * 5 = 11 ← 1+(2*5) 1 + 2 * 5 = 15 ← (1+2)*5 1 3 1 2 3 5 15 1 2 + 5 *
  • 28. RPN (42 + 16) * (87 - 31) --------------------------------- 12 • ((42 + 16) * (87 - 31)) / 12 = • 42 ↵ 16 + 87 ↵ 31 - * 12 /
  • 29. Quicksort 42 16 23 8 15 4 4 8 15 16 23 42 function quicksort(array) var list less, greater if length(array) ≤ 1 return array select and remove a pivot value pivot from array for each x in array if x ≤ pivot then append x to less else append x to greater return concatenate(quicksort(less), pivot, quicksort(greater))
  • 31. void quicksort(int* izq, int* der) /*Se llama con: quicksort(&vector[0],&vector[n-1]);*/ { ! if(der<izq) return; ! int pivot=*izq; ! int* ult=der; ! int* pri=izq; ! while(izq<der) ! { ! ! while(*izq<=pivot && izq<der+1) izq++; ! ! while(*der>pivot && der>izq-1) der--; ! ! if(izq<der) swap(izq,der); ! } ! swap(pri,der); ! quicksort(pri,der-1); ! quicksort(der+1,ult); } void swap(int* a, int* b) { ! int temp=*a; ! *a=*b; ! *b=temp; }
  • 32. Erlang qsort([]) -> []; qsort([Pivot|Rest]) -> qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y >= Pivot]).
  • 33. Erlang 101 Erlang (BEAM) emulator version 5.6.5... Eshell V5.6.5 (abort with ^G) 1> 1+6. 7 2> X=3. 3 3> Y=12. 12 4> {P, Q} = {11, 12}. {11,12} 5> P. 11 6> Y=Q. 12 7> Y=13. ** exception error: no match of right hand side value 13
  • 34. Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] ... Eshell V5.6.5 (abort with ^G) 1> L = [ 7, 65, 5, 9, 11 ]. [7,65,5,9,11] 2> [ C | R ] = L. [7,65,5,9,11] 3> C. 7 4> R. [65,5,9,11]
  • 35. tienda.erl: -module(tienda). -export([precio/1]). precio(manzanas) -> 2.90; precio(fresas) -> 3.50; precio(leche) -> 1.50; precio(ordenador) -> 199. tienda1.erl: -module(tienda1). -export([total/1]). total([{Que, N}|T]) -> tienda:precio(Que) * N + total(T); total([]) -> 0.
  • 36. Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] Eshell V5.6.5 (abort with ^G) 1> c(tienda1). {ok,tienda1} 2> c(tienda1). {ok,tienda1} 3> L=[{ordenador,1},{manzanas,2},{fresas,3},{leche,1}]. [{ordenador,1},{manzanas,2},{fresas,3},{leche,1}] 4> tienda1:total(L). 216.8
  • 37. Permutaciones 123 -> 123 132 213 231 312 321 1234 -> ["1234","1243","1324","1342","1423","1432","2134","2143", "2314","2341","2413","2431","3124","3142","3214","3241", "3412","3421","4123","4132","4213","4231","4312","4321"] Para ver todas las permutaciones de X123: 1- calcular las de de 123: 123, 132, 213, 231, 312, 321 2- Intercalar X: X123, 1X23, 12X3, 123X, ..., ...
  • 38. p.erl: -module(p). -export([perms/1]). perms([]) -> [[]]; perms(L) -> [[H|T] || H <- L, T <- perms(L--[H])]. Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] ... Eshell V5.6.5 (abort with ^G) 1> c(p). {ok,p} 2> p:perms("12"). ["12","21"] 3> p:perms("123"). ["123","132","213","231","312","321"]
  • 39. “Yo lo que quiero es trabajo”
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 46. Mike Vanier: LFM and FLSP • languages designed for smart people • languages designed for the masses http://www.paulgraham.com/vanlfsp.html
  • 47. Java • "We wanted to build a system that could be programmed easily without a lot of esoteric training and which leveraged today's standard practice." http://java.sun.com/docs/overviews/java/java-overview-1.html
  • 48. Craig McClanahan James Duncan Davidson servlet 2.2, 2.3 y JSP 1.1, 1.2 specifications, JavaServer Faces 1.0 Tomcat, Ant
  • 49. ¿Así que aprendo Ruby, y Erlang y ya esta?
  • 50.
  • 51. Q &A