« first day (1796 days earlier)      last day (1294 days later) » 
00:00 - 14:0014:00 - 00:00

12:21 AM
@JuanPerez No, ni idea
 
 
2 hours later…
2:09 AM
@PatricioMoracho Porque me esta generando este error el script que hicimos ayer:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-5-5705f32f0bdc> in <module>
     13                         "customer_id": int(json_data.get('$id')),
     14                         "name": pet,
---> 15                         "value": (datetime.strftime(datetime.strptime(json_data.get(pet),'%m/%d/%y'),"%Y-%m-%d") if pet == 'Pet Birthday 1' or pet == 'Pet Birthday 2' else json_data.get(pet))
dataPerson = []
for item in dataMemberships:
    id_ = item['id']
    response = requests.get(f'{base_urlKlaviyo}/api/v1/person/{id_}', params=params)
    if response.status_code == 200:
        json_data = json.loads(response.text)
        pets= ['Pet Name 1', 'Pet Name 2', 'Pet Type 1', 'Pet Type 2', 'Pet Breed 1', 'Pet Breed 2', 'Pet Birthday 1', 'Pet Birthday 2']
        keys_resp = json_data.keys()
        for pet in pets:
            if pet in keys_resp:
                dataPerson.append(
 
 
1 hour later…
mb0
3:18 AM
Ustedes que opinan de quemar un token en ambiente de desarrollo para agilizar integración de api para no hacer login cada vez (el token vive por 5 minutos)
Seria una buena practica?
 
 
3 hours later…
5:56 AM
A las güenas :-)
 
6:11 AM
Buenos dias
 
Wenas
quemar un token vaya con los términos usados.
Tal vez le cobran los tokens???
 
6:50 AM
Están muy animados hoy.
Imagino que están currando. Un día seré como ustedes. XD
 
@MauricioContreras yo estoy nervioso
en principio en mi consultora me iban a colocar en otro cliente el jueves, pero aquí no se mueve ni una sola noticia
 
7:07 AM
@DavidDPG tal vez tu puesto se lo dieron a un sudaka indocu que necesita los papeles. XD
 
puff
pues le hago un lick
 
Yo por fin entregué la migración y traducción de la web que me pidieron. Ahora a esperar las correcciones. Le volveré a poner cuidado al curso Python. Que tengo 3 semanas de atraso, me pongo al día entre hoy y mañana. Y luego continúo con mi proyecto personal.
 
7:24 AM
jelou
 
Mr. Lozano
 
Muy buenos días!
Una pregunta, me ha mandado la profesora que modifique la página que recibo mediante la función de PHP phpinfo()...
¿Es posible? XD
El documento devuelve una página html con el css integrado en ella... ¿Cómo se podría modificar?
Muchas gracias ^^
 
@Manuel la página que recibes?
No entiendo muy bien. Quien recibe páginas por lo general es el navegador. Tal vez te refieres a la página que envías. Pero eso de modificar usando phpinfo() no me suena.
¿Dónde está @phpMyGuel cuando se le necesita?
 
@MauricioContreras Quedrá modificar la página generada. No estoy seguro, pero es muy posible que el comando phpinfo( ) use echo para enviarla. Sería capturar esa salida y modificarla.
Vamos, digo yo :-)
 
7:40 AM
@Trauma claro, ahora entiendo, que parece que habla como Yoda: modificar he de la página
 
XDDDDD
0
Q: Error de hackeo windows 7 virtual

Jesús Esteban DíezExploit failed [bad-config]: Rex::BindFailed The address is already in use or unavailable: (0.0.0.0:4444).

Tengo que ir urgentemente a comprar pilas nuevas para mi bola de cristal :-(
 
8:02 AM
Muchas gracias a los dos!!
Siento si me expliqué mal. Estoy en clases ahora y no puedo despistarme mucho
Voy a intentarlo. Muchas gracias
 
Je. El desplegator caido. El levantador no me lee (está en una llamada, creo). Y el otro metiendo prisa :-/
Maldición china: Ojalá vivas tiempos interesantes.
Hoy tiene pinta de que va a ser un día ... interesante :-(
Paso de todo. Voy a por un poco de nicotina.
 
8:25 AM
Eh wennas
 
8:42 AM
@Manuel Guardando la página con Ctrl + S desde el navegador y tocando a "cascoporro"
@Manuel te han pedido modificar la página resultante de ejecutar phpinfo, pero te podrían haber pedido lo mismo de una paǵina cualquiera de SOes. La dinámica es la misma: Guarda una copia en tu local, accede a su código fuente y despáchate a gusto.
 
@Muriano eso es jaquear no?
 
@Pikoh No hombre!! Esto es con "fines académicos"
 
Ahhh ok, entonces vale
 
@Pikoh Puedes robarle millones a un banco o apuntar todos los misiles de EEUU hacia Rusia... pero si es con fines académicos, no te pasa nada. #TrustMe.
 
Si, son palabras mágicas, como habeas corpus
 
8:53 AM
¿ Leísteis la noticia de que el Santander ha dejado a 0 las cuentas de muchos clientes, particulares y empresas ?
Fue poco después de que actualizaramos nuestros servicios
 
@Trauma ?
 
Me acojoné un güevo
@Pikoh Salio este finde, creo
 
Yo conozco a alguien que esta trabajando para el Santander..una empresa de caceres
y tenian el finde que viene algun despliegue..igual fueron ellos XD
 
pues no te extrañe :-)
pero yo me acajoné tela ... y eso que lo nuestro no tiene nada que ver con la banca normal
 
Ah,pero fue en cadiz nada mas
alguna migración en el fin de semana
le he preguntado a mi colega a ver si fueron ellos XD
 
9:01 AM
jejeje
no te lo dirá, no es como para estar orgulloso :-/
 
hay confianza..si han sido me lo dice XD
 
Ah, ok
y lo decimos en las redes ... fueron ellos xDD
Carajo, solo 1 conflicto O_O
esto es suerte
 
@Trauma joder me has asustado
 
@NicolasOñate Salió en la prensa
 
@Trauma yo no la leo ni veo las noticias
 
9:11 AM
¿ Ni meneame ?
 
dice mi colega que no fue su equipo..tendré que creerle XD
 
@Trauma xataca
 
@Pikoh ¡ HAHAHAHA !
 
@Pikoh ni el mio
Uno del Santander es bobo. nos contrata pero luego le digo: no deberiamos hacer esto porque funcionará mal. pero dice de hacerlo. adivinad. no funciona bien
para que nos contrata si no nos hace caso en lo que sabemos?
 
joeeeeeeee ... la VPN no conecta
Hoy está siendo un día la mar de interesante :-(
 
9:17 AM
@lois6b el cliente manda
mientras lo deje todo por escrito...
 
sisi, en email está todo... aish
 
joeeeee ... ayer todo el puñetero dia tirando test, y ningún fallo
subo las verviones nuevas, tiro un test solo porsiaca ... y falla O_O
 
9:59 AM
@MauricioContreras ¿Alguien ha hecho la PHPseñal?
 
@phpMyGuel si, en la mañana alguien necesitaba modificar el html y css devuelto por el phpinfo()
O eso entendí luego de la aclaración de @Trauma. XD
 
10:18 AM
@MauricioContreras Tendrías que capturar el output de la función para después editarlo:
3
Q: Is it possible to add html to phpinfo page?

VinceSo I was creating my own phpinfo.php page. It echos out the phpinfo() which is good, but I wanted to add html to it. I wanted to add to the top of the page a back button to take me back to my home directory. Then underneath that link I was gonna display the phpinfo(). I noticed that phpinfo() gen...

 
@lois6b Ese era un chiste recurrente en mi anterior empresa: el jefe contrataba consultores para auditar y solucionar los procesos de la empresa
y luego no hacía ni caso
le pregunté al que creo más lúcido de los que estaban allí y me dijo: contrata gente para tener una opinión más que ignorar
 
aish
 
@PabloLozano Creo que sale más barato contratar a alguien sin formación para que te diga gilipolleces. Al menos tendría más sentido el ignorarlas.
 
@PabloLozano que tal en la nueva ?
 
de momento bien, peleándome con los proyectos para intentar compilarlos sin fallos
tengo un fedora 31
como Python 2 está ya deprecated (terminó su mantenimiento este verano), no viene
así que me bajé los fuentes de Python2, los he compilado...
y ahora tengo python2, con lo que el yarn install (equivalente a npm install) no me peta en ese punto
pero falla más adelante, claro
y todos los compañeros usan Mac
así que tampoco es que pueda preguntarles mucho
 
10:29 AM
@PabloLozano ¿¿ Has compilado un programa en C ?? O_O
mondiée
 
ah, era c?
yo he seguido las instrucciones
y como no ha petado... pues ya
 
python, hasta donde yo se, está hecho en C de toda la vida
jejeje
no se la mala fama de los compilados ... si hasta los javeros pueden hacerlo ...
xD
 
eres tú el que se ha peleado una semana para compilar algo
a mi me ha ido a la primera, como debería ser
 
Y PICO. Una semana y pico
 
y pala, si quieres xD
 
10:33 AM
jejeje
Claro, a ti te han dado las instrucciones :-p
A mi me ha tocado hacerlas
jejeje ... si el test falla ... ¡ pues cambia el test !
Veras como así no falla :-)
 
11:17 AM
llevo compilando casi 20 minutos O_O
y tengo un i7 con 24 GB de RAM y SSD
8 núcleos y todos al 100% a la vez, esto no lo había visto
 
madre mia, que estas compilando? el codigo fuente del covid?
 
11:41 AM
@Pikoh en una lista se puede reducir eliminando los elementos repetidos de manera rápida? es decir existe alguna funcion interna?
esto me suena
vale, nada, si ya lo pregunté
 
@NicolasOñate en c#? tienes Distinct por ejemplo
pero devuelve una nueva lista
 
@Pikoh si, algo asi era, lo estoy buscando que se que lo tengo por mi código
 
ok
 
que ya me contestasteis
 
o haces un groupby
 
11:44 AM
si, era iterando la propia lista
 
11:56 AM
@JuanPerez Hay algo que no le gustó a _strptime_datetime, revisa la cadena que le estás pasando a la hora de convertirla en fecha
 
 
1 hour later…
12:57 PM
230
A: Remove duplicates from a List<T> in C#

Jason BakerPerhaps you should consider using a HashSet. From the MSDN link: using System; using System.Collections.Generic; class Program { static void Main() { HashSet<int> evenNumbers = new HashSet<int>(); HashSet<int> oddNumbers = new HashSet<int>(); for (int i = 0; i <...

HashSet, parece magico
 
1:11 PM
0
Q: almacenar varios array en LocalStorage Javascript

Alvaro AliagaEstoy almacenando datos de un formulario en el localstorage, mi idea es hacer una lista de cada vez que se envie ese formulario, se guarde en un array todos sus datos. Logro hacerlo, peero lo q me esta pasando es que cada vez que envio la informacion al localstorage, se me reescribe la anterior. ...

 
Pregunta c#
Esto no debería filtrar los elementos repetidos? es problema del modelo que no lo haga?
HashSet<modelo> equipo = new HashSet<modelo>();
foreach (var puesto in Puestos)
{
equipo.Add(FuncionGetModelo(puesto.id));
}
var equiposFiltrado = equipo.Distinct().ToList();
 
depende cuál es el tipo de Modelo?
 
{'customer_id': 33582, 'name': 'Pet Birthday 1', 'fechaOriginal': '10/1/19', 'fechaFormato': '19/10/01'}
 
@NicolasOñate me parece un poco "overkill" usar hashset para eso, pero es otra opción
 
si es algo que implementaste vos, sobreescribiste Equals y GetHashCode?
 
1:22 PM
@g3rv4 +1
 
apostaría a que ese es el problema
 
tienes que decirle al compilador cuando dos objetos son iguales..si no no lo sabe
 
@g3rv4 modelo creado por mi
 
@PatricioMoracho Fijate esta salida la fecha original esta en m-d-y, necesito transformarla a Y-m-d
 
si no, usa la dirección de memoria
y dos objetos son iguales sólo si son la misma instancia
 
1:23 PM
@PatricioMoracho Fijate tambien que esta tomando los "01" del d y la fecha original solo tra "1"
 
@JuanPerez Y esas cadenas las queres transformar en una fecha válida? es eso?
 
@g3rv4 no se si te estoy entendiendo, por qué sobreescribí esas dos funciones si no las he tocado?
.Add las sobreescribe?
 
@g3rv4 hmm...pero si son dos instancias diferentes con las mismas propiedades, no tienen la misma direccion
 
claro, por eso
un segundo que hago un linqpad mostrando lo que digo
 
@PatricioMoracho Claro la api de bigcommerce necesita la fecha en formato Y-m-d
 
1:26 PM
@NicolasOñate no las has sobreescrito..tienes que sobreescribirlas
 
@Pikoh ahhh pero por que? donde puedo leer sobre eso?
 
Hay varias opciones
ahi tienes una
@NicolasOñate por que ya lo dije antes...el compilador sabe cuando dos enteros son iguales, pero no sabe cuando dos instancias de una clase tuya lo son
 
 
tienes que indicarle como comparar las instancias para saber que son iguales
 
@Pikoh aaaahh vaaalee
 
1:29 PM
El ejemplo que te pone @g3rv4 es claro
 
@g3rv4 Dump()?
 
@NicolasOñate es un helper de linqpad :) para poder ver qué hay en una variable
 
@g3rv4 es como el de php entonces
 
@JuanPerez el problema está acá: datetime.strptime(json_data.get(pet),'%m/%d/%y'), puedes imprimir el valor de json_data.get(pet) y ver que pasa
 
en el primer caso, gervasio1.Equals(gervasio2) da false
 
1:31 PM
@g3rv4 me encanta como usas sintaxis "moderna". Yo todavía no me acostumbro :)
 
pero gervasio2.Equals(gervasio2) da true, por eso no lo agrega de nuevo
@Pikoh :) es un camino de ida
 
@g3rv4 si,pero cuesta al principio. Ahora, es super elegante en mi opinion. Ese obj is Persona p da gloria verlo
 
@g3rv4 entonces creo que gervasio1.Equals(gervasio2) es lo que me va a ocurrir por la suerte que tengo
 
sisi, ayuda cuando gente del equipo lo menciona en los PRs
 
{'customer_id': 33582, 'name': 'Pet Birthday 1', 'value': '10/1/19', 'value1': '19/10/01'}, {'customer_id': 31242, 'name': 'Pet Name 1', 'value': 'Micky', 'value1': 'Micky'}, {'customer_id': 31242, 'name': 'Pet Name 2', 'value': 'Grace', 'value1': 'Grace'}, {'customer_id': 31242, 'name': 'Pet Type 1', 'value': 'Dog', 'value1': 'Dog'}, {'customer_id': 31242, 'name': 'Pet Type 2', 'value': 'Dog', 'value1': 'Dog'}
 
1:33 PM
@NicolasOñate no es suerte... el compilador no sabe cuándo una instancia de una clase tuya es igual a otra
le tenés que decir
en mi segundo ejemplo, gervasio1.Equals(gervasio2) dio true
 
@PatricioMoracho Fijate la salida original esta en el campo value
 
entonces, al agregarlo al hashset lo ignora
 
El campo value1 tiene el formato aplicado
 
fijate que la salida del segundo ejemplo... lo único que cambió es que implementé el hashcode y equals
 
@g3rv4 comprendo
 
1:35 PM
si tu modelo tiene ImmutableArray o List o algo de eso... tenés que tener en cuenta el orden al hacer el hash y el equals
 
@JuanPerez Pero print(datetime.datetime.strptime('10/1/19', '%m/%d/%y')) funciona bien. Me parece que es otro el valor que te está dando problemas, puede ser?
 
y eso de la sintaxis nueva es igual a obj == Persona?
 
@NicolasOñate hace una comparacion de tipos, y si da true asigna obj a p
 
pero ya casteado
 
@PatricioMoracho Correcto como te digo el campo original es value te agregue el otro valor de value1 para que veas cuando se aplica el formato de la fecha
@PatricioMoracho Me explico ?
dataPerson = []
limit = 10
for item in dataMemberships[:limit]:
    id_ = item['id']
    response = requests.get(f'{base_urlKlaviyo}/api/v1/person/{id_}', params=params)
    if response.status_code == 200:
        json_data = json.loads(response.text)
        pets= ['Pet Name 1', 'Pet Name 2', 'Pet Type 1', 'Pet Type 2', 'Pet Breed 1', 'Pet Breed 2', 'Pet Birthday 1', 'Pet Birthday 2']
        keys_resp = json_data.keys()
        for pet in pets:
            if pet in keys_resp:
                dataPerson.append(
@PatricioMoracho Fijate que agregue otro value pero sin darle formato solo trayendo tal cual la data original como viene
 
1:38 PM
Comprendo
pero y si no quiero que el override esté en toda la clase?
o aun teniendo ese override funciona normal?
 
el override es tu forma de decirle cuándo dos instancias distintas (porque son objetos distintos) tienen que ser tratados como iguales
por lo que... si tenés 200 fields, y cada uno importa
tenés que comparar los 200 :(
si hay alguno calculado o transient, lo podés ignorar
lo divertido es que si mañana agregás uno más, tenés que tocar las dos funciones
 
@g3rv4 o.O
 
@g3rv4 pero es raro. Normalmente en una clase siempre hay algun campo que define la igualdad
 
si, por eso está bueno tener tests alrededor
 
1:42 PM
o un par de ellos a lo sumo
 
@Pikoh ? en serio? no... creo haber visto algo así nunca
 
lo que me refiero es que en esa clase ya tengo equals, si hago el override no me estropeará lo que ya tengo?
 
@JuanPerez, si tienes una excepción cuando intentas setear la clave value1, no puede ser que tengas un valor válido en dicha clave. Lo que me estás mostrando supongo son los valores de la última iteración que si funcionó. Antes del append, agrega

if pet == 'Pet Birthday 1' or pet == 'Pet Birthday 2':
print( json_data.get(pet) )

revisa el último valor antes del error, ahí está el problema
 
@g3rv4 imagina una clase de personas. lo normal es que tengas un identificador unico (D.N.I. en españa) que comparandolo ya sabes que son dos personas iguales
 
@NicolasOñate si tenés Equals... yo diría que está mal implementado (dado que la comparación no funciona). Además... tenés que sobreescribir el hashcode también (Equals es generalmente "caro", por lo que con el hashset podés ahorrar mucho)
 
1:44 PM
@Pikoh a si, yo tengo uno de esos
me refiero en mi elemento
 
@Pikoh ah, pero yo nunca lo implementaría así... vos lo que querés es mirar si dos instancias son iguales... si en una cambiaste el nombre pero mantuviste el DNI, equals va a dar true
cuando mandes a la bd a mirar si hubieron cambios ponele, puede no detectarlos (porque hace un .Equals y retorna true)
 
@g3rv4 en ese caso, creo que falla algo en la logica del programa
 
@PatricioMoracho Imprimio solo esto:
10/1/19
5/1/19
3/1/19
 
Yo trato de aplicar en las clases algo similar a las bases de datos, algun id que haga de clave unica
sobre todo si voy a tener que compararlas
 
ja, si trabajáramos juntos te discutiría esto a muerte
 
1:45 PM
@g3rv4 discutemelo :)
 
@g3rv4 lo tengo para comparar strings, no me empezaria a fallar?
 
si fuera una clase immutable, a lo sumo estoy de acuerdo en dejar el hashset guardado para evitar recalcularlo
@Pikoh si tuvieras un cache de personas, en algo tipo redis. Imaginate que al actualizar la dirección de la persona le pasás cache.ActualizarPersona(p)
el cache perfectamente podría tener un diccionario en memoria (para evitar ir a redis cada vez)
y ActualizarPersona hace un p.Equals(valorViejo)
 
@g3rv4 y daría true, con lo que sabría que instancia actualizar
 
daría true, entonces.. si es equals, no lo actualiza
la lógica sería
 
ah vale, entiendo lo que dices
pero yo no lo implementaria asi
 
1:49 PM
@JuanPerez '3/1/19' se convierte bien a datetime con el formato que tienes. Puede ser que haya un "blanco" como último print? sino no tengo respuesta
 
vos no, pero... no estás programando para vos
 
vale, ahora que os comprendeis, yo me he perdido
 
if pet == 'Pet Birthday 1' or pet == 'Pet Birthday 2':
print( json_data.get(pet))
 
una vez que un sistema es gigante, no puede depender de que la gente trabajando en eso entienda 100% de cómo lo implementaste
 
@PatricioMoracho Pero acá no se esta haciendo ningun formato
Esta treyendo tal cual como viene la respuesta original
 
1:50 PM
cuanto más se rompan las expectativas de cómo funciona el sistema, hay más lugar para bugs
 
@g3rv4 ahora si que no entiendo lo que dices. Es cuestión de que la implementación sea compartida por todo el equipo
 
si ves en un PR alguien haciendo
if (valorNuevo.Equals(valorViejo)){
  // no hago nada, es el mismo valor!
}
eso no va a hacer sonar ninguna alarma en quien lo esté revisando
 
la gran duda que tengo es que si sigo la lógica de @g3rv4, escribo el override de equals, si ya tengo otro equals me lo rompe???
o es como java que permite varios
 
@JuanPerez Formato para leer la cadena a un datetime, no es eso lo que estás haciendo primero?
 
hay un solo override de equals
que recibe un object
si ya tenés uno... está mal :)
 
1:52 PM
@g3rv4 en mi codigo ya uso equals normal
sin overrides
 
dataPerson.append(
{
"customer_id": int(json_data.get('$id')),
"name": pet,
"value": (datetime.strftime(datetime.strptime(json_data.get(pet),'%m/%d/%y'),"%y/%m/%d") if pet == 'Pet Birthday 1' or pet == 'Pet Birthday 2' else json_data.get(pet))
}
)
 
por eso, si implemento el override me lo destruiría?
 
ah, eso... tapa el Equals original... y el compilador va a llamar el otro (porque lo llama en object)
 
@g3rv4 De todas formas, el ejemplo que me pones nunca se me ha dado a mi, dado que yo trabajo siempre en escritorio. En el ejemplo que dices si puede tener sentido que el equals tome todas las propiedades para comparar. Pero en ese caso, posiblemente usaria reflection para comparar todas las propiedades y no tener que modificar el codigo en caso de agregar mas
 
@PatricioMoracho Fijate así esta el codigo cuando lo ejecuto y me tre el error
 
1:52 PM
reflection es muy lento...
 
@g3rv4 entonces el equals original me dejaria de funcionar...
 
si estás haciendo algo donde importa la performance... no es la mejor opción
@NicolasOñate no creo que puedas tener dos métodos con la misma firma
 
@g3rv4 es algo mas lento, pero es seguro y te evita tener que modificar el codigo. y siempre se puede cachear, no se cambia la estructura de una clase todos los dias
 
uno overriding y otro no
@Pikoh por eso... en el ejemplo de actualizar un cache, eso es algo que pasa mucho... en ese path, reflection es un no no
 
@g3rv4 No es como en java que puedes tener un metodo y un metodo override?
 
1:54 PM
@NicolasOñate creo que no, pero... probalo :) yo me equivoco muy seguido
@Pikoh si trabajáramos junto, esta te la peleo hasta con el manager
 
@g3rv4 como digo, eso no te lo voy a discutir dado que no tengo experiencia en esos casos. Pero..tendría que hacer una prueba de rendimiento. Y como digo, se puede hacer reflection una sola vez y almacenar los resultados para mejorar el rendimiento
 
si no es así sería la primera vez desde que conozco c# que me decepciona y que lo consideraría peor en ese sentido
 
@Pikoh ... tendrías que hacer reflection cada vez que vas a comparar dos objetos para guardar en el cache
además de agregar una API que no es estandar en .NET, por lo que cada dev nuevo que entre tiene que aprenderla
cuando ya existe una API hecha por MS, que todas las librerías usan
mañana le pasás un objeto tuyo a una librería como Dapper
y perfectamente puede hacer un .Equals para cachear algo en memoria
estás rompiendo las expectativas del framework :)
 
vaaale va dentro del modelo
 
Estoy de acuerdo en que no estoy de acuerdo. Pero como digo, no puedo discutirtelo dado que no tengo casi nada de experiencia en programacion web
 
1:58 PM
o me equivoco?
 
;)
@NicolasOñate claro, en la definicion de la clase
 
00:00 - 14:0014:00 - 00:00

« first day (1796 days earlier)      last day (1294 days later) »