« first day (1621 days earlier)      last day (1498 days later) » 

6:49 AM
A las güenas :-)
 
@Trauma no he saludado pero te gané
 
@DavidDPG jejeje ... si no saludas, no cuenta ;-p
 
):
 
7:10 AM
Buenos dias
 
@Pikoh helló
 
1
A: Vector. Buscar el numero mayor y el del medio de un array con javascript

William Ernesto Hernandez Vasqbuenas necesito me ayuden yo necesito encontrar el numero mayor y el numero menor con javascript porfavor

quien vota positivo esto?
 
7:34 AM
si te molesta de manera leve yo sería capaz
 
Necesito opiniones: una pregunta preguntando qué es un stack trace es una mala pregunta?
 
@Pikoh su compañero de clase
 
-3
Q: ¿Qué significa tracear el stack?

Carlos Segura AntónEstaba leyendo un comentario de stackoverflow cuando de repente apareció esta expresión. ¿Podrían expicarme qué significa? El comentario exacto en el que apareció la expresión es el siguiente: Quita ese System.out que tienes en el catch y tracea el stack completo de la excepción. Ahí verás qué...

 
@PabloLozano se resuelve buscando en google no ?
 
7:48 AM
Pues estoy buscando y no encuentro en español algo que me mole, le he pegado un enlace a la documentación de Android
por poner un ejemplo
Quizá una pregunta de SO que muestre uno sea un ejemplo más claro
 
@MauricioContreras tuki es un bully no hace más que meterse conmigo
 
8:03 AM
Buenos días, supervivientes.
@Pikoh Al menos usó el buscador de preguntas jajaja.
 
8:22 AM
@PabloLozano es curioso, he buscado un poco y efectivamente no encuentro ninguna explicación en español en condiciones sobre que es un stack trace...
 
8:42 AM
@DavidDPG jajaja. Ya lo regaño. Es que está aburrido y no tiene más nada qué hacer.
@Pikoh pues a escribir tu propia explicación en Wikipedia.
 
@MauricioContreras demasiado trabajo tengo ya
 
Python tiene una variante del with que prohibieron en JS, curioso
pero se parece a un try con closables de Java
 
9:08 AM
Voy a escribir un reguetón que se llame tracéame el stack
 
@MauricioContreras Yo lo escucharía
 
9:57 AM
moola
el resto de parodias geniales . como la de Linux
 
 
2 hours later…
12:19 PM
Que muchiaburrimiento de día :-(
 
mafalda♥
 
12:56 PM
@Trauma pues asi faltan unos cuantos mas
si en wuhan llevan desde enero y hasta mañana no vuelven a la normalidad, nosotros llevamos desde marzo, nos queda hasta julio
 
buenassssssssss
yo no se como pueden aburrirse...
 
yo sigo cursos de python y me agarro de los pelos...
que feo lenguajeeeeeeeeeeeeee
que feoooooooo
que bien que explican algunos conceptos, y despues van y dicen una burrada que te dan ganas de matarlos...
"python es multiplataforma, porque te permite programarlo en cualquier plataforma" OMG!
 
1:11 PM
@gbianchi Eso no es culpa del lenguaje, sino del curso :-)
 
@abulafia ah si si.. no dije que era del lenguaje eso...
es mas, explican muy bien.. me matan cuando meten esas burradas en el medio.
 
@PabloLozano A qué te refieres?
@gbianchi Bueno, tampoco veo tan grande la burrada. ¿Qué es lo que te repatea?
 
@abulafia un lenguaje no es multiplataforma porque te permita programarlo en cualquier sistema operativo!
otro curso distinto.. veniamos bien...
hasta que...
define la variable carros = [..,.,..,..]
hace carros.sort()...
y explica...
carros es un objeto.. (ya dijo que en python eran todos objetos)
y carros.sort() envia un mensaje sort a carros :facepalm:
 
@gbianchi ¿Qué significa entonces multiplataforma? Bueno, el matiz es más bien que te permita ejecutarlo en múltiples operativos y dispositivos. O eso entendí yo siempre.
 
@abulafia claro!!! es eso..
no es que se puede programar desde cualquier plataforma... programar se puede programar cualquier lenguaje desde cualquier lado, si al fin y al cabo son archivos de texto...
 
1:23 PM
@gbianchi Bueno, eso de "enviar mensaje" me lo he encontrado muchas veces en cursos variados de OOP. Parece ser que era el lenguaje "original" con que se planteó la OOP. Los objetos reciben "mensajes" de otros objetos, en vez de "ejecutan métodos".
 
no se es multiplataforma por el desde donde, si no a donde permite ejecutarlo..
@abulafia yo no lo escuche nunca... un metodo no es un mensaje... en tal caso, el mensaje serian las variables....
 
> A method call is also known as message passing. It is conceptualized as a message (the name of the method and its input parameters) being passed to the object for dispatch.
yo hacía años que no escuchaba esa terminología, pero recuerdo habérmela encontrado en mis inicios con OOP, en C++, en los años 90
siempre me confundió
 
mira vos...
bueno.. le damos la derecha en esa..
nunca lo habia escuchado asi.. y nunca lo trataria asi.. no me suena natural...
pero bueno, si es un termino conocido, aunque antiguo, vale...
 
Si me permitís intervenir, creo que estáis confundiendo las cosas
 
@Trauma hable por favor...
 
1:31 PM
/me es todo oidos
 
el messege passing es un término muy común, para seguir con los conceptos de objetos
los objetos del mundo real no tienen métodos
en los primeros tiempos, se llamaba así, paso de mensajes
porque se suponía que los objetos intercambian mensajes entre ellos
viene de Smalltalk
 
interesante...
 
es un concepto
que se implementa con llamadas a métodos
Smalltalk y Objetive-C lo llevan mas al pie de la letra
en Objective-C, tu no llamas a un metodo
envias un mensaje
[ objeto mensaje args... ]
receptor, mensaje, argumentos
 
ahi se ve mas lindo...
 
que, casualmente, es equivalente a llamar a una función de una instancia
 
1:33 PM
y sonaria mas logico lo de pasar un mensaje...
 
pero tenéis razón en que es una nomenclatura muy antigua
hoy en día no se usa mucho
 
Sí, bueno, pero eso no contradice lo que yo entendía. Y que es la razon por la que algunos textos, ante el código objeto.foo(), en vez de decir que se está invocando un método foo en el objeto dice que "se envía al objeto un mensaje foo"
 
vamos, nada :-)
@abulafia Perdona entonces, no entendí bien la conversación
 
además está relacionado con lo del dynamic dispatching y es que en el fondo el cliente ni siquiera sabes qué método se va a ejecutar en realidad (debido a herencias, sobrecargas, etc). Simplemente le manda el mensaje "haz esto" y es el objeto el que determina en tiempo de ejecución qué método invocar ante la recepción de ese "mensaje"
 
@gbianchi x2
 
1:36 PM
Bueno, se puede interpretar casi literalmente en la mayoría de los lenguajes interpretados
hasta donde yo se, implementan los metodos como un diccionario clave -> código
 
pude desbloquear el logro de ir a dormir a las 4am y despertarme 8am para trabajar :-p
 
entonces, obj.func( ) equivale a buscar la clave 'func' en el diccionario asociado al objeto obj
en Javascript se ve muy claro
 
@Trauma Eso es literal en el caso de python. Cada objeto tiene un diccionario obj.__dict__, por lo que obj.foo() literalmente es lo mismo que obj.__dict__["foo"]()
 
igual el concepto queda claro en smalltalk, pero no queda claro en otros lenguajes...
 
(bueno, ahora que lo pienso, no exactamente lo mismo)
 
1:39 PM
@abulafia Y en Javascript y en Objective-C
 
En python creo, no estoy del todo seguro, que en realidad obj.foo() equivale a obj.__getattr__("foo")()
y lo que ocurre es que la definición por defecto de __getattr__() mira en obj.__dict__. Pero puedes sobrecargarla :-)
 
ok
en lua es también así
 
así es más fácil construir objetos "proxy" para cosas como RPCs, etc
 
pero es el mismo concepto ... con un poco de funcionalidad extra
en Objective-C, lo que tiene es un methodo 'unknown' o algo así que se llama si la función no existe
y te deja hacer lo mismo, crear proxy
y la jerarquia de clases y herencia también se ve muy facil así
 
interesante
 
1:41 PM
si no está en el diccionario, se busca en el diccionario de la clase padre
en Javascript es donde mejor se ve, es literal
 
Python admite herencia múltiple, así que cada clase tiene otro atributo que es una lista de ancestros, que determina el orden en que deben recorrerse buscando el atributo
 
viste, vos que estabas aburrido...
 
no se como lo hace python, pero tiene toda la pinta y toda la lógica :-)
Lua no tiene objetos ni herencia
pero tiene también un methodo 'unknown', cuando no lo encuentra, llama a ese metodo
así que puedes simular a mano la herencia
poniendole un atributo ClaseBase
o complicarlo todo lo que quieras
@abulafia fedorque preguntó una vez que es mas rápido en python, si llamar o no a super( ) directamente
si lo que decimos es correcto, llamar a super( ) debería ser mas rápido
porque se salta un diccionario
 
Yo aprendí algo de Lua para usarlo en luatex. Es un lenguaje super-simple y muy potente. En el iPad tengo Codea, que permite hacer juegos muy chulos en Lua, pero no le he dedicado apenas tiempo. No hay tiempo para todo!
@Trauma En contraposición a qué?
 
en contraposición a buscar primero en el diccionario asociado al objeto
@abulafia Yo estoy tonteando ahora con löve, que es parecido, juegos en 2D con lua
 
1:47 PM
Pero no te entiendo... super() típicamente lo llamas desde el constructor para invocar al de la clase base. ¿Qué pondrías si no pones super()?
(bueno, no solo para el constructor)
 
si quieres llamar a un método que sabes seguro que tu clase no implementa
 
Dices en vez de self.metodo()?
 
si no usas super, primero buscará en el diccionario asociado a tu clase
correcto
 
ah, creí que decías en contraposición a hacer ClaseBase.metodo(self), que también se puede
y creo que esto segundo sería aún más rápido
el problema es que tienes hardcoded la clase base
 
no se, sería lo mismo qje hacer super( ).method( ), ¿ no ?
 
1:49 PM
por lo que es frágil ante refactorizaciones
 
ah, ya te entiendo
 
sí, sería lo mismo, pero te ahorras una invocación a super(). Las invocaciones tienen su coste
 
correcto
eso es una cosa que mucha gente tampoco sabe ni tiene en cuenta
siempre es mas rápido usar un operador que llamar a un método
en lenguajes interpretados
 
Yo lo que no sabía es que en Python los frames de la función no se crean en la pila, sino en el heap
tiene su sentido, para posibilitar los closures
 
jejeje
 
1:51 PM
pero cuando me enteré, no sé por qué, me voló la cabeza
y no solo los closures, también los generadores
 
yo estuve estudiando un tiempo a fondo los conceptos de Lua
 
que pueden "pausar" y "reanudar" su ejecución
 
claro
 
y posibitlitan las corutinas
 
por eso no los puedes poner en la pila
 
1:51 PM
si no les molesta, me voy a vestir..
 
si los pones en la pila, no se pueden devolver o retornar
 
esto de trabajar desde casa no me hace bien...
 
@gbianchi ¡ HAHAHAHA !
 
Yo, que vengo del assembler y del C, jamás pensé que un marco de pila pudiera estar en otro lugar que en la pila :-)
 
A mi mi mujer me regaña cuando me ve en pijama xD
 
1:52 PM
@Trauma aca estan todos durmiendo...
 
@abulafia Si, para los que venimos de bajo nivel es raro
pero como dices, es imprescindible para hacer ciertas cosas
además, los lenguajes interpretados no se ejecutan como los compilados
no fuerzas a la CPU a ejecutar el código en cierta posición
 
claro, además
 
sino que vas leyendo las instrucciones desde un loop y ahí interpretas
 
Sí, casi que estás haciendo un emulador de CPU, puedes emular la pila como quieras. En este caso en forma de lista enlazada de marcos de pila, almacenada en el heap
 
entonces, el concepto de pila no es aplicable tal cual
correctísimo :-)
Un rato de charla muy agradable, no suelo encontrar gente para hablar de estas cosas :-)
pero el deber me llama :-(
 
1:55 PM
Igualmente!
 
@Trauma mañana vuelvo a criticar otras cosas de estos cursos y listo...
jejejeje
 
:-p
 
2:07 PM
esos son unos libracos de python
Que algún día voy a ponerme a revisar, detenidamente
Para mi gusto faltaría: Python for Muggles
 
2:21 PM
buenas, alguien que entienda de llamadas a json me puede ayudar? sobretodo a retrofit
 
@Isaac llamadas a json.. seran llamadas a una api que devuelve un json?
 
si eso jaja
 
y cual es el problema?
 
a ver, tengo una api a la que le tengo que pasar una fecha para que me devuelva una serie de datos con esa fecha, uno de esos datos que me devuelve es esa propia fecha
entonces yo en android para usar retrofit y crear la clase modelo, debo pasarle con un parametro el nombre de ese parametro que devuelve, es una etiqueta con un nombre fijo @SerializedName
el problema es que si ese objeto va a ir cambiando de nombre segun la fecha, que le pongo o como lo hago?
 
vos me estas diciendo que el json que te devuelve tu api no es siempre igual? que hay un "item" del mismo que cambia el nombre?
 
2:32 PM
eso es
 
@Isaac entonces es una api mala.. hui de ahi
jajajaja
 
huyo entonces jajajaja
 
quien escribio esa api?
en serio...
no puede mandarte un dato cuyo nombre varie segun el parametro que pasaste..
 
ni idea, la encontré, es que estoy haciendo una app de covid-19 en mi pais
 
se supone que el json deberia ser "standard"
 
2:34 PM
y tengo que meter el dato de la fecha
 
tenes ejemplos de la api?
 
ehhhhh alguien que no estaba bien hizo esa api...
te vas a volver loco tratando de leerla con metodos automaticos...
 
huyo de ahi entonces no? jajaja
 
@Isaac y... si no queres parsearla a mano si...
 
2:38 PM
huyo entonces
 
si no te queda otra, buscamos alguien que sepa de android y retrofit...
 
es que antes tenía otra fuente de datos del propio gobierno, un archivo csv que van actualizando, pero hay dias que lo suben mal, le faltan rows, y entonces al tratar los datos me peta la app
y claro, no quiero depender de un archivo que a veces suben mal xD
 
claro, se entiende...
 
3:34 PM
Me voy ya pero..no entiendo.. que parametro dices que varía en ese json @Isaac?
 
@Piko
 
ah,ya veo..la fecha
 
@Pikoh la fecha
 
si..no entiendo muy bien como alguien hace eso
lo unico que se me ocurre es que cuando recibas el json y antes de "parsearlo", busques la fecha y le pongas un nombre fijo
Y dicho esto..hasta mañana a todos :)
 
 
4 hours later…
7:33 PM
Buenas
Libro gratis para pasar la cuarentena Writing Php extensions Se escriben en C.
 
@quevedo JAJAJAJAJAJA
 
@gbianchi Lo puse porque se que aquí aman Php!!
les puede resultar divertido hacer que php supere lo que le critican
 
@quevedo eso es imposible.... ahhh
vos decis de lo malo... eso se puede seguro...
🤣
 
7:55 PM
@gbianchi jajajaja
 
 
1 hour later…
10:09 PM
MEY DEY MEY DEY
 

« first day (1621 days earlier)      last day (1498 days later) »