« first day (1951 days earlier)      last day (1140 days later) » 
00:00 - 16:0016:00 - 21:00

4:00 PM
@PatricioMoracho Buen punto: Si cumple los requerimientos no puede considerarse lento!!! Luego viene que sea fácil de mantener.
 
@quevedo un modulo de python lleno de globals, funciones de dos páginas y bucles for accediento a iterables por el indice del bucle....party time
 
@JoseRodriguez esa lista de requerimientos: no estoy dispuesto a satisfacerla por ningún salario
 
A mi me gusta pensar en "mantenibilidad" que tan mantenible es un código a lo largo de los años, que tán fácil es incorporar cambios, tanto por el "yo" del futuro como por otros. He visto código "entendible", pero no "mantenible", que repetía patrones por todos lados y no encapsulaba estos en funciones, por dar un ejemplo.
 
@PatricioMoracho buena observación. Acepto haber usado mal el concepto entendible. No caí en cuenta de que eso no lo hace fácil de mantener.
hay platos de espagueti que se leen y entienden fácil y ni Dios les daría soporte
 
@quevedo Muy cierto..
 
4:14 PM
@CandidMoe Nescape fué un fracaso por perder el tiempo en reaser su propio código. Interesante y yo que iba a hacer lo mismo.
@Pikoh Gracias por los enlazes.
 
tengo un problema
he solicitado un review de la libreria que hace similar a un $var_dump de php
pero que lo formatea con un diseño mas legible
digamos que el 20% de lo que me han sujerido en el review lo he podido hacer
pero el otro 80
no tengo ni idea de como hacerlo o por donde empesar
y la sugerencia de copiate de otra libreria no me gusta por que copiar no es lo mismo que entender y aprender...
incluso los post han tenido buena acogida pero el problema no es la libreria o ellos soy yo XD
me hace falta un mentor XD
entonces... hay es donde vengo yo y pregunto ... existen algun sitio donde personas con conocimiento de distintos niveles hagan de mentores???
no necesariamente de la red de S.E...
 
@FranciscoNúñez ¿Lo pediste en code review stack exchange?
 
@PabloLozano si
 
pues pon la pregunta aquí
lo mismo podemos ayudar
 
4:23 PM
@DanielBriceño por que es mi propio codigo y no hay nada parecido o igual... Xd y se supone que esto lo estoy haciendo para auto-aprender y seguir avanzando ...
 
php no es lo mío, pero da igual el lenguaje: los patrones son similares
 
1
Q: Class showing a format similar to var_dump v1.0.5

Francisco NúñezFirst of all I must thank for the help given in the previous post: Class showing a format similar to var_dump RC5 Version I have it deployed in a early versio v1.0.5: https://github.com/arcanisgk/BOH-Basic-Output-Handler As they should imagine; Thanks to your help, the main code has had serious c...

@PabloLozano es el tema cuando me dicen por ejemplo esto:
Access Specifiers
Private, Protected and Public are used, which is great to see but I think there has been put a lot of thought for doing it.
quede perdido...
no se que se supone que debo interpretar de este renglon con respecto a mi codigo...
aveces soy malo interpretando el ingles...
 
realmente no le veo el sentido... si hubiese un there hasn't
 
yo se lo pregunte:
Access specifiers They are used Private, Protected, and Public, which is great to see, but I think a lot of thought has gone into doing it. You can be more specific?
Class: you have some example of how to implement abstract classes
 
@PabloLozano creo que es lo que quería decir :)
 
4:29 PM
@FranciscoNúñez I am sure you will definitely good examples of OOP in PHP. You can put the examples you have found and put that implementation up for review. But for now I would leave it up to you as it took some time to review the code and I would love see what you can come up from this. For reference: github.com/php-cheatsheet, you might find something there. All the very best!
 
Hasta mañana a todos
 
ciao pikoh
 
Yo te recomendaría eliminar la documentación de llos métodos private
son privados, nadie tiene que leer documentación de cómo usarlos
 
@FranciscoNúñez Hay un tema, que no he podido entender: var_dump muestra algo aún en caso de que la página se caiga... ¿Vas a lograr algo similar ?
 
Yo me estoy leyendo justo ahora Clean Code, y es verdad que todo es más claro con métodos pequeños y clases sencillas
te ahorras muchos comentarios
 
4:35 PM
@Pikoh ¿Eres moredador de Stack overflow?, ¿Cuales son las recompenza?.
 
@PabloLozano bueno, eso es parte del zen de python, no?
 
@quevedo a que te refieres con que la pagina se caiga??
 
@JoseRodriguez de cualquier lenguaje
 
@DanielBriceño mas trabajo XD
 
XD Y mas paga.
 
4:37 PM
@FranciscoNúñez Yo suelo usar var_dump($algo) para verificar que paso por algún sitio, cuando por algún fallo (error grave no controlado) la página se cae y recibo página en blanco
 
@DanielBriceño yo me estoy mirando ya el ferrari...
 
@FranciscoNúñez y, necesito, ver hasta dónde llega la ejecución porque no tengo idea de dónde la cagué!!
 
Y yo veo lejo la masion que quiero. @JoseRodriguez Pero la veo, en mi imaginación pero la veo.
 
ok esa es la orientacion que tiene; se supone que se debe usar para depurar cuando un dato no esta en la variable o verificar que datos hay en la variable; normalmente esta libreria tiene varias opciones:
1. Ejecutar para tener una salida por Web o por CLI.
2. Poder interrumpir la ejecucion del codigo de manera abrupta si es necesario.
3. retornar el string formateado (no necesariamente colorizado)
@quevedo para esto tambien tengo otra libreria que es un error handler ...
 
@FranciscoNúñez gracias. La voy a revisar
 
4:41 PM
Estas dos Librerias estan orientadas a ser usadas por el desarrollador en la auto-verificacion y facil lectura de datos y errores...
pero la ultima que es el formateador es la que me ta dando problemas desarrollarla y aplicar las mejores practicas y recomendaciones
pero al estar todo en ingles me lio la vida...
 
@FranciscoNúñez Aunque para los casos en que la ejecución va bien, tengo una librería con una función mdf(array de objetos) que me muestra formateado lo que quiero examinar
 
@PabloLozano El que tenga que mantenerlos los va a necesitar.
 
Buenisimos dias!
 
@LogicaMiau igual (estás en filipinas) ?
 
@CandidMoe si o si quiero dejar los comentarios de cada propiedad metodo clase atributo componente etc... no quiero que se preste a supociciones el codigo.... siempre he dicho que : creer y suponer es la madre de todos los problemas...
 
4:43 PM
Buenos dias.@LogicaMiau
 
@Pikoh ya te fuiste pero me ubiera gustado leer tu interpretacion...
 
@quevedo eh, no, en México ._.
 
@LogicaMiau buenos dias.
 
@FranciscoNúñez En particular en los matrimonios... cuando la esposa supone (sexto sentido) la vida se vuelve una mierda
@LogicaMiau jajajaja ya sabía es por la hora
ya casí no es hora de buenos días
 
Ah XD hasta las 12 es buenos dias
 
4:46 PM
11:45!
 
es relativo... en español natural debería decirse: **Buen día tengan todos.**

con esto no importa si es mañana o tarde o noche; simplemente es un saludo y le deceas que tengan un buen dia en general a todos....
me gusta por que no tiene limitaciones horarias interpretativas...
regresando a mi caso quien me ayuda con el tema de la interpretacion de las respuestas en code review???
@quevedo Quevedo tengo planeado combinar esas dos librerias en un desarrollo pero es un poco complejo por que el manejador de errores; esta envevido en el htaccess y el user.init y no se puede distribuir con composer si quiero hacer eso no encontre como hacerlo... ya que la recomendacion generar del manejador de errores es que debe estar instanciado antes que cualquier otra cosa en php ...
 
buen dia daniel
 
Yo me retiro chao. Ya son las 12 aquí en Venezuela.
Igual que tengas un buen año.
 
ya los obligan a dormir desde las 12??
 
4:51 PM
@FranciscoNúñez Estoy revisándolo. Y, de momento no encuentro un punto para ponerlo en mis proyectos de prueba
 
@CandidMoe Si el método tiene 5 líneas y el nombre es autoexplicativo no necesita un javadoc
 
@quevedo como asi que no encuentras un punto???
 
@FranciscoNúñez si
 
simplemente lo descargas y descomprimes en el root de tu proyecto
y dependiendo de si usas apache o fpm fast CGI
 
porque mi .httaccess regirige todo a index.php
 
4:53 PM
debes configurar el htaccess o el user.init
@quevedo no hay problema lo colocas antes de eso...
 
de modo que voy a tener que instanciar tus objetos dentro de mi GlobalBag
 
lo que se busca es precargar y sobre escribir los metodos nativos
@quevedo eso no se que es ... XD
podemos verlo con anydesk??
 
jajajaja Es una clase que enmascara el entorno global
 
@quevedo eso lo hacia yo antes y aun tengo que darle mantenimiento a una SPA... con esa estructura
por no querer implementar namespaces...
 
async def send_chunk(writer, data):
    hex_size = hex(len(data))[2:]
    writer.write(hex_size)
    writer.write("\r\n")
    writer.write(data)
    writer.write("\r\n")
    await writer.drain()
¿Que hace este método? ¿Cómo se usa?
 
4:55 PM
@FranciscoNúñez La cree cuando necesitaba urgarle los miaos a zendframework, para que todo lo que se ejecutara me reportara estar actuando
 
@quevedo ok
@CandidMoe eso toma un dato y un writer y le calcula el tamaño escribiendolo en el writer luego agrega un salto de linea y escribe el contenido luego escribe otro salto de linea y por ultimo retorna todo lo escrito, me parece no soy experto en pythin
 
@FranciscoNúñez Porque ellos inyectas las clases y nunca puedes saber (eso creen) como está la pila de procesos
 
@quevedo estoy evitando usar frameworks XD
 
@FranciscoNúñez Yo no los uso, cree uno propio
 
@quevedo para no depender de sus cosas extras que taigan errores y que tenga que estar actualizando y que no tengan nada que ver con el proyecto XD
@quevedo en eso estoy XD
 
4:58 PM
@FranciscoNúñez podríamos cooperar un poco
 
@quevedo ahora si crees que no puedes usar el metodo de htacces o user.init; el error handler es una clase que puedes importar en donde arranca su sitio...
@quevedo fue lo que te dije hace dias...
 
bueno, uno que plega a su casa. ta mañana
 
@JoseRodriguez bye
 
@JoseRodriguez ta mañana
@FranciscoNúñez ya estoy revisando, voy a crear una instalación nueva para testear localmente
 
vente para otra sala para que no molestemos aqui
 
5:11 PM
@CandidMoe No es autoexplicativo
 
@PabloLozano Envia un chunk HTTP. data debe ser una cadena (no bytes). data puede ser vacía, pero no puede ser None (null). Para alguien que sepa HTTP podría resultar obvio, pero uno no puede contar con eso. Por eso, documentar. (El original está documentado).
 
No siempre se puede evitar la documentación
por eso todos los lenguajes tienen esa característica (añadir comentarios)
pero estoy harto de ver cosas como
class User {
/** returns the user name
String getName() { return this.name;}
}
un ejemplo:
if (employee.salary < 50000 && employee.hasChild) {
  //...
}
lo puedes transformar a
const isEligibleForChildCareBenefits = (employee) => {
  return employee.salary < 50000 && employee.hasChild;
}
if (isEligibleForChildCareBenefits(employee)) {
  //...
}
y el nombre te lo dice todo
en el código que has puesto, si está en un archivo que se llama http_utils o algo así, eso ya da contexto
 
5:28 PM
@PabloLozano ¿Es nombre-apellido o apellido-nombre?
 
@CandidMoe Ni idea, el comentario es inútil
 
Claro, falta el comentario útil. Por ejemplo, "devuelve el apellido-nombre correctamente capitalizado"
 
sería más claro si el atributo fuera fullName o lastName, con otro atributo firstName
getSurnameNameWithProperCaps()?
 
Lo que a mi me irrita son esas "docs" del estilo "devuelve al hora". Bueno, ¿que hora? ¿Hora local o UTC? ¿Con horario de verano/invierno?
 
eso es horrible, el tema de las fechas es un mundo
 
5:38 PM
En Python, como en otros lenguajes sin declaraciones, tenemos el problema de que nada te dice en formato tiene que estar la cosa. Tienes un método usa una variable fecha, y no sabes si es una cadena "01/02/2021", con/sin "/", en qué orden, o si es un DateTime (como entero) o una tupla ...
Yo mismo me equivoco. Se me olvida si el método recibe un string o una clase particular.
 
Justo ayer eso me estaba volviendo loco
Tratando de comprar una fecha que estaba en str con un datetime, nononono, horrible
 
5:54 PM
@CandidMoe Sabes que puedes añadir type hints, no?
@CandidMoe Ese método no lo habías escrito tú? Yo lo he visto por aqui hace poco...
 
@abulafia Si; ocupo los type hints, pero son insatisfactorios. En mi interprete Lisp, por ejemplo, casi todos los argumentos son "Atom".
@abulafia Si, es un método mio.
 
@CandidMoe y no sabes qué hace?
 
@abulafia Está documentado:
async def send_chunk(writer, data):
    """
    Envia data como un chunk HTTP.

    :param writer: Stream de salida
    :param data: Contenido a enviar
    """
    hex_size = hex(len(data))[2:]
No es mucho, pero es trabajo honesto.
 
Ah, no entiendo entonces tu pregunta. O era un ejemplo de por qué deben documentarse?
 
@abulafia Era para demostrar que incluso la cosa más nimia necesita una explicación
 
6:00 PM
Ok, es que aunque leí unos cuantos mensajes previos no encontré el contexto de tu intervención. Ya me extrañaba que preguntaras cómo funciona una función que tú mismo habías escrito
 
Yo pensé que lo iban a entender de inmediato, dado el hint "chunk" y dado el obvio formato de chunk HTTP.,
 
obvio si conoces cómo va el transfer-encoding: chunked
por cierto, creo que se comportaría mal para un chunk de tamaño cero (el último de la serie)
 
@abulafia Los chunk se terminan con un chunk largo cero. Lo maneja correctamente.
 
No sobraría el \r\n final en el chunk de largo cero?
 
In the following example, three chunks of length 4, 6 and 14 (hexadecimal "E") are shown. The chunk size is transferred as a hexadecimal number followed by \r\n as a line separator, followed by a chunk of data of the given size.

4\r\n (bytes to send)
Wiki\r\n (data)

6\r\n (bytes to send)
pedia \r\n (data)

E\r\n (bytes to send)
in \r\n
\r\n
chunks.\r\n (data)

0\r\n (final byte - 0)
\r\n (end message)
 
6:04 PM
ah, estaba equivocado, gracias
 
Aquí está en uso:
async def send_dict(writer, dicc):
    """
    Envia un diccionario como JSON.

    :param writer: Stream de salida
    :param dicc: Un diccionario
    """
    buffer = '{'
    separator = ""
    for key, value in dicc.items():
        buffer += '{}"{}": {}'.format(separator, key, value)
        separator = ",\r\n"
    buffer += '}'
    uasyncio.run(send_chunk(writer, buffer))
    uasyncio.run(send_chunk(writer, ""))
Para que se viera bonito, cada llave va en una línea separada (si no, depurar se hace complicado)
 
Como va eso
Eso es python, no?
 
Si. Python. Como no tenía memoria suficiente, tuve que generar el JSON a pulso.
 
muy estructurado y bien documentado.
 
6:30 PM
Me da que Mauricio tiene hoy lío. Mañana vemos eso.
Si se puede, claro :)
 
6:41 PM
@AntonioU. hey
 
 
2 hours later…
8:42 PM
0
Q: Accesibilidad Web

David E. Luna M.Problemas de Accesibilidad Web Me he encontrado con una situación en el modo oscuro de Stack Overflow. Se trata de un problema serio de contraste de acuerdo a la siguiente vista previa: Es demasiado costoso distinguir el texto del fondo, por lo que se dificulta seriamente la revisión de edicione...

 
00:00 - 16:0016:00 - 21:00

« first day (1951 days earlier)      last day (1140 days later) »