« first day (2025 days earlier)      last day (1066 days later) » 

12:16 AM
@AndreaJimenez No, se. Si es js, entonces se ve que pasas como parametro a un inicializador un arreglo diferente en los dos lados. Por lo que la funcion inicializadora cambia su variables de manera tal que las dos instancia van por camino diferente.
Es como una madre que tiene dos hijos iguales, pero tu le compra cosas diferente y los tratas igua, cada uno tomará su camino deacuerdo a muchas variables y una de ellas es lo que tu le has dado.
@abulafia Ya creo que entiendo los condicionales(Son solo operaciones aritmeticas simple, pero ingeniosa), por favor corrigeme si estoy equivocado:
x==y: x-y: si es bits 0 (pasa 3volt en el cabre), entonces es verdadero, sinó pasa (5volt, Si el voltaje es menor a 5 entonces la resistencia rechasa el voltaje y el voltaje pasa por otro cable).
x<y: x-y: si x es menor entonces el resultado es negativo(true), sino es positivo(false).
x>y: si x es mayor entonces el resultado es positivo(true), sino es negativo(false).
not x==y : si el resultado es 0 entonces es (false), sino es otro numero entonces es (true).
la computadora juega con la electricidad de manera increible.
Debo admitir que el que hiso la computadora: Dominaba muy bien la matematica y sobre el tema de la electricidad. Sacando provecho de las dos areas.
Pregunta: ¿Como hace la intruccion MOV para mover datos?.
¿Como hace la computadora para ejecutar operaciones arimeticas (add(Al nivel hadware))?
 
12:52 AM
@DanielBriceño nop.. nada que ver...
@AndreaJimenez Estas pasando dos medios de autenticacion diferente en el header...
 
1:04 AM
Me equivoqué.
@gbianchi ¿ Como hace la computadora las comparaciones ?.
 
@DanielBriceño depende el tipo de comparacion...
por ejemplo cual?
 
compara bits a bits si son iguales...
 
0101b=01010b
0=0 1=1 0=0 1=1
0001b==0010b
0=0 0=0 1=0! 0=1!
Lei que cmp hace una resta y compara el bit 0. De hay saque la idea de que se usan operaciones matematicas. @gbianchi
Una ley que se me quedo en la mente desde que estudié: ¿Como hacer controles para motores es esta?: La ley de ohm sobre la resistensia se me ha quedado en la mente.
La corriente siempre eligira pasar por donde este con menos resistencia.
De aquí saqué que se usa la resistencia para los circuito de la computadora.
 
 
1 hour later…
2:23 AM
alguien sabe donde puedo vender una base de datos? y en que precio rondan?
 
 
4 hours later…
6:06 AM
@AugustoDanielRuyz ¿Qué contiene la base de datos?
 
6:31 AM
@DanielBriceño La corriente pasa por todas partes; no "elige" pasar por aquí y por allá no.
 
7:31 AM
@gbianchi No, Daniel estaba en lo correcto. Estaba hablando de codigo maquina. Efectivamenete, a nivel de CPU, la comparacion == se suele implementar con la istrucion asm CMP que no es mas que una resta entre registros. A veces se usa XOR en vez de CMP porque es mas eficiente
se lo que se trata es de usar una operacion de la ALU que produzca como resultado 0 si los registros eran iguales. Eso permite seguidamente hacer un JZ por ejemplo, que es un salto condional basado en el valor del flag Z
ese flag se pone a 1 si la última operacion realizada por la ALU dio como resultado cero
 
 
4 hours later…
11:08 AM
@DanielBriceño Es correcto. La instrucción CMP hace una resta de los registros que le indiques, por ejemplo CMP EAX, EBX. Esa resta tiene lugar en la ALU, y en el caso de CMP, a diferencia de SUB que también hace una resta, el resultado no se guarda en ningún registro
sin embargo la ALU tiene los "bits de estado" (o flags) que se actualizan con cada operación aritmético lógica, por tanto aunque CMP no almacene el resultado, sí que alterará los bits de estado
El bit ZF se activará si el resultado salió 0, lo que te permite después hacer un salto condicional JZ o JNZ. Por tanto CMP EAX, EBX seguido de JZ etiqueta, saltará a esa etiqueta si los registros EAX y EBX eran iguales
Los restantes bits de estado de la CPU también se actualizan según el resultado de la operación. Por ejemplo, CF es el bit de carry y se activa si se produce acarreo. SF es el bit de signo y se activa si el resultado tiene el bit más alto a 1. OF es el bit de overflow y se activa si el resultado (interpretado como entero que puede ser positivo o negativo) no cabría en un registro.
Tienes distintos tipos de salto condicional basados en esos bits, como JC, JNC, JS, JNS, JO y JNO. Además hay otros saltos un poco de "más alto nivel", como JLE que salta si EAX<=EBX (y que comprueba ciertas combinaciones de los bits de estado, en concreto que ZF=1 o bien SF!=OF)
 
 
2 hours later…
1:39 PM
@abulafia @CandidMoe ¿Como la computadora lleva a cabo la suma?.
 
El mundo se va al carajo
Acabo de ver una respuesta de @Trauma en PHP!
5
A: Problema al cancelar la eliminación de comentario

TraumaEstas mezclando cosas y te estás liando tu solo. Tu código PHP, tal y como lo tienes, se ejecutará siempre, lo cual quiere decir que siempre se va a borrar el comentario. Esto: <?php $borrarcom=$conexion->prepare("DELETE from comentarios WHERE id_comentario=?"); $borrarcom->bind_param("i", $i...

 
Buenas, tengo una duda sobre clean arquitecture referente a una pregunta del foro, esta: https://stackoverflow.com/questions/57603422/clean-architecture-where-to-put-input-validation-logic

Si alguno me puede echar un cable, se lo agradecería mucho.

La duda:

En la respuesta, creo, el usurio plantea que se haga una interfaz con un método validate() y que cada modelo implemente dicha interfaz, ¿no? ¿O lo he entendido mal?

Por otro lado, ¿el usuario plantea lanzar una excepción por cada posible error de validación? ¿No es eso muy exagerado?
 
No creía que eso fuese posible... Qué será lo siguiente, encontrarme con una suya en Java?!
@Manuel Si y no. Está diciendo que implemente la interfaz con el método validate(), pero no que cada llamada de ese método que devuelva un "error" deba tirar una excepción. Si no que tras validar todas las entradas, si hay errores, tiras la excepción. Algo así es lo que hacemos nosotros en el trabajo de hecho, y así en front se recibe una lista con todos los componentes que dieron error y el mensaje de dicho error.
 
@Benito-B, muchas gracias por la respuesta
para serte sincero, no termino de ver cómo hacer algo así. ¿Te puedo explicar lo que he hecho y si quieres me dices que tan acertado/equivocado estoy?
 
Ponlo, seguro que si no yo, alguien podrá ayudarte
 
1:53 PM
Intento aprender un poco sobre clean, pero a veces me parece muy abstracto... Y por a veces, quiero decir siempre
 
Para eso estamos aquí :)
 
Thanks!
Tengo la siguiente jerarquía:
domain/model/form/RaceFormValidator.kt
domain/model/form/FormExceptions.kt
domain/model/form/ModelValidator.kt
ModelValidator es una interfaz que tiene un método abstracto, llamado validate. También, por ahora, contiene un método público que valida si una cadena es nula o está vacía.
En FormException tengo las excepciones a arrojar, según qué esté mal en la validación
class FormNameException(message: String) : Exception(message)
class FormVelocityException(message: String) : Exception(message)
class FormHeightException(message: String) : Exception(message)
class FormAgeException(message: String) : Exception(message)
 
Ese método público se va a un Utils, no es cosa del validador saber cómo se comprueba si la cadena está vacía o no
 
Y en RaceFormvalidator, el modelo que implementa la interfaz
Entonces el validador solo tiene un único método abstracto?
Lo he metido en la interfaz, según recomienda la respuesta que he leído en la pregunta que pasé. Aunque para ser sincero, no sé si lo he entendido bien XD
 
El asunto es tener la interfaz para que tus clases extiendan de ella, y así siempre puedes coger todas las clases juntas y recorrerlas haciendo it.validate(), guardar los resultados en una lista y luego devolver la lista si tiene algo, o continuar si no
Claro que para hacerlo "bien", no deberían ser excepciones
La excepción la tiras al final, adjuntándole la lista de errores
 
2:01 PM
Entonces, no debería tener varias excepciones, sino una sola que diga qué errores han sucedido, ¿no?
 
Exacto
 
Um... Y la excepción debe ser una cadena de texto, un código?
 
El resultado de validate() debería ser una clase tipo FormError, que lleve una ID para identificar el componente y el texto para mostrar al usuario debajo de dicho componente
 
Pregunta tonta, ¿a qué te refieres con componente?
?_?
 
A cada componente de tu formulario xD Estoy acostumbrado a usar Angular en front, así que todo son componentes para mi... Un text input, un combo, desplegables varios...lo que sea
Todo con lo que interactua el usuario y que necesita validación, vaya
 
2:03 PM
Ahhh, vale, vale
Jajajaja
Pues muchas gracias. Lo voy a intentar como me has indicado
^^
 
Jellou
@Benito-B y las de Java las tiene escondidas.
 
@MauricioContreras Claro. Por eso tiene doble cuenta... en realidad no es para ocultarnos su identidad. Es porque su otra cuenta tiene el dorado de Java
 
2:46 PM
@DanielBriceño Ben Eater construyó un computador de 8 bit en unos cuantos breadboards.
 
3:01 PM
@abulafia ah.. nunca le conteste a eso... creo...
 
3:53 PM
@Benito-B ufff, no me digas que el verdadero nombre de @Trauma es Jorge (o Elena, según la época). XD
 
@MauricioContreras jajajajajaja
 
@CandidMoe ¿Sera posible contruir un computador en una calculadora?.
Esa conputadora se ve calidad.
 
@DanielBriceño Una calculadora es un computador.
 
Entonces se puede modificar y darle instrucciones para que haga cosas mas complejas.
 
@DanielBriceño ¿Cómo suman los computadores? angelmicelti.github.io/4ESO/EDI/sumador_completo.html
@DanielBriceño Claro, hay quienes han modificado las calculadoras gráficas TI para correr Doom
 
4:15 PM
XD
Me quede leyendo el curso desde el principio y me acorde de esta pregunta:
Si 2/2:1 porque no se calcula el uno, cuando se transforma los numeros a binarios.
1/2:0,5
Y ¿Como es que se determina si el numero es el 1?.
 
4:31 PM
¿Qué operación es 2/2:1?
 
2/2:1 y el resto es 0.
1x2:2
 
Sigo sin entender. No conozco la operación ":"
 
No ya conseguí respuesta para la primera pregunta. Se trata de sacar el binario del decimal.
2/2 el resto es 0, 1/2 el resto es 1, 0.5/2 el resto es 1
010b
¿Pero para obtener el 1?
2/2 el resto es 0, 1/2 el resto es 0, 0.5/2 el resto es 1, 0.2/2 el resto es 0.
0010b
 
5:07 PM
Mejor lo simprifico: if(dec==2){ bin[1]='0';bin[2]='1';}else if(dec==1){bin[1]=1;bin[2]='0';} bin[0]='b';bin[3]='0';
 
@DanielBriceño Usando circuitos lógicos binarios. Mediante transistores se pueden construir "puertas lógicas" que son circuitos capaces de hacer operaciones entre dos bits. Por ejemplo la puerta AND toma dos bits y saca como resultado otro bit que vale 1 sólo si los dos bits de entrada eran ambos 1
la operación XOR por ejemplo saca 1 sólo si sus dos bits son diferentes, y saca 0 si son iguales
esa puerta XOR ya puede verse como una especie de suma "supersimplificada", capaz de sumar dos bits, pues si le metes como entrada 0 y 0, sacará 0 (porque las entradas son iguales), lo que coincide con el resultado de la suma 0+0
y también funciona si le metes 1 y 0, o 0 y 1, ya que en ese caso al ser las entradas diferentes sacará 1, lo que coincide también con el resultado de la suma (pues tanto 0+1 como 1+0 vale 1)
incluso en cierto sentido funciona para la entrada 1,1. La puerta XOR dará como resultado 0 porque las entradas son iguales, y en cierto sentido ese es también el resultado de 1+1, ya que aunque ese resultado es 2, el 2 no cabe en un solo bit, por lo que la respuesta 0 nos estaría dando solo el bit más bajo, y se produciría un acarreo (es decir "me llevo una")
El acarreo sería la operación AND entre los dos bits de entrada, ya que sòlo cuando ambos bits son 1 es cuando hay que "llevarse una". Así que un sumador super-simple de solo dos bits podría hacerse con una puerta XOR y otra AND
esa idea podría extenderse por repetición, para sumar primero dos bits y luego otros dos (más la que te llevas del anterior), etc... construyendo así un sumador mediante puertas lógicas
 
Solo con un circuito XOR y un AND, Suena facinante, la computadora debe tener mas de mil de estas combinaciones.
Tengo un emulador de circuitos electrico. Voy a ver si puedo hacer una simple calculadora.
 
5:23 PM
Una CPU tiene miles de millones de transistores
pero no hacen falta tantos para una ALU. La mayoría están son usados para memorias internas (cachés), para la unidad de control, los microprogramas, etc
@DanielBriceño Creo que entiendo lo que querías preguntar aqui...
Escribir un número binario no es más que escribir un número en base 2. Los números pueden escribirse en cualquier base. Nosotros estamos acostumbrados a la base 10 porque tenemos 10 dedos
cuando cuentas en una base B, necesitas B cifras diferentes (una de ellas será el 0). Por eso, nosotros que contamos en base diez usamos diez cifas: 0,1,2,3,4,5,6,7,8 y 9
cuando estás contando cosas y agotas las cifras disponibles, marcas 1 "base" y vuelves a seguir contando unidades. En nuestro caso contamos 1 "decena", y luego seguimos contando unidades
así que cuando dices 23 por ejemplo, estás diciendo 2 decenas y 3 unidades. O de otro modo "2 veces he agotado la base, y me han sobrado 3 unidades más"
ahora imagina que ese mismo número lo quieres expresar en base 8. (lo que sería normal si tuviéramos 8 dedos). En base 8 sólo tienes las cifras del 0 al 7
si intentas contar 23 objetos y cada vez que agotas tus 8 dedos cuentas 1 "decena" (que ahora no vale 10 sino 8), y sigues, verás que para llegar a 23 tienes que agotar 2 veces el 8 y te sobran 7.
por tanto en base 8 ese número de objetos se escribirá 27
(2 veces he agotado la base 8 y me sobran 7)
El binario es contar en base 2. En base 2 sólo tienes 2 dígitos (el 1 y el 0), por lo que agotarás la base muy a menudo. Las "decenas" valen 2.
Por eso 11 significa "he agotado la base 1 vez, y me sobra 1". O sea 2+1 (tres)
Si sigues hacia las centenas, millares, etc... te darás cuenta de que en base 10 eso son potencias de 10. El 100 significa "he agotado 10 veces mi base y me sobran 0 unidades". O bien "He agotado 1 vez mi base al cuadrado"
100 es 10 al cuadrado, 1000 es 10 al cubo, etc... En base 8 las "centenas" tendrían valor 64 (8 al cuadrado) y los "millares" valdrían 512 (8 al cubo)
en base 2 las "centenas" valen 4, los "millares" valen 8
por eso 1001 es 9
y por eso no hay que dividir el 1 para pasar a base 2, porque el 1 final es el de las "unidades". Sólo vas dividiendo entre 2 para sacar las "decenas", "centenas", etc
 
5:43 PM
Interesante. Mi primer intento fué con dos fuente de corriente continua. 1- Con una carga de 3volt. 2- con una carga de 3volt.
Ambos tenia un start que impedia el paso de la corriente.
Estaban conectado al principio de los start y los start a un mismo cable
ese cabre se dirijia al XOR y la salida a un voltimetro, y al AND que tambien al voltimetro.
Fué el peor intento, el voltimetro me media 10voltios aunque precionará el start de 3voltios.
El segundo conecte dos switch en las fuente de poder, cada switch se dirijia a una parte del XOR y cada ves que dejaba los dos contactos conectado, me daba un bol
El segundo conecte dos switch en las fuente de poder, cada switch se dirijia a una parte del XOR y cada ves que dejaba los dos contactos conectado, me daba un voltaje de 0, cada ves que dejaba un lado conectado y el otro nó. Me daba -5. Eso es lo que te refieres.
 
6:55 PM
Con cables, fuentes de potencia, e interruptores no vas a conseguir puertas lógicas. Éstas se hacen con transistores. Los transistores tienen propiedades especiales que les permiten actuar como una especie de interruptor, solo que el control del interruptor (si está abierto o cerrado) se controla mediante la corriente que les llega por otra entrada
el transistor está hecho de un material llamado semiconductor, que es un material que puede conducir o no la electricidad, según la señal que les llega por otra entrada
antes de los transistores se usaban "válvulas de vacío" para ese cometido, pero eran enormes y no se podían miniaturizar
 
7:18 PM
Una puerta OR implementada con dos transistores. Cuando la entrada A está en alto (+6V, por ejemplo), el transistor entra en conducción, conectando la salida (Out) a la fuente (6V). Lo mismo aplica a la entrada B. Si ambas entradas están en bajo (0V), ningún transistor conduce, no hay corriente en el emisor y por tanto, no hay caida de voltaje en la resistencia 4.7K, por lo que Out queda en 0V.
 
7:41 PM
La compuerta AND es más fácil de entender: ambas entradas (A y B) deben estar en alto para que los transistores T1 y T2 conduzcan y pongan OUT en alto (+Vcc). Si una entrada está en bajo, el transistor no conduce y OUT queda en bajo (0V).
 
7:57 PM
@CandidMoe ¿Conoces un emulador de circuito electrico que sea gratis y pese menos de 10mg?
Estoy buscando uno para pc, pero no consigo ni uno que no sea online o de pago y que pese menos de 10mgb.
 
El que uso yo. Simple, sencillo, no me complico la vida: falstad.com/circuit
Que corran local en el PC (Linux) habia unos buenos (chipmunk), pero desaparecio. Ahora quedan basados en Spice (o similares) y son "complicados".
 
Me gusta. Se parece al que tengo en Android.
 
8:38 PM
0
Q: ¿Alguien sabe cuanta memoria puede llegar a requerir un programa que maneja imágenes de 1080 pixeles?

Edward Roblesme encuentro desarrollando un proyecto el cual se basa en un programa hecho en c que necesita como input una imagen de 1080 pixeles de resolución. Mi objetivo es lograr hacer funcionar ese programa en un microcontrolador que sea lo más económico posible, es por esa razón que necesito tener una id...

@CandidMoe Tú que tienes más experiencia en Arduino, ¿qué opinas de lo que plantea este usuario? (mira los ultimos comentarios)
 
9:20 PM
@abulafia Con un Raspberry Pi podría ser. Estas son las específicaciones para una camara en Aliexpress:
Características
Placa de Cámara Oficial Raspberry Pi, compatible con Raspberry Pi y Jetson Nano
Sony IMX219 8-megapixel sensor
Especificaciones de la cámara
Tamaño CCD: 1/4 pulgadas
Apertura (F) : 2,0
Longitud Focal: 3,04mm
Ángulo de visión (diagonal) : 62,2 grados
3280 × 2464 resolución de imagen fija
Soporte para grabación de vídeo 1080p30, 720p60 y 640x480p90
Dimensión: 25mm x 24mm x 9mm
Nota: Para usar la cámara con Raspberry Pi Zero / Zero W / Zero WH, debe comprar un cable específico: Raspberry Pi Zero v1.3.
En el papel, podría grabar 1080 a 30fps, o 720 a 60 fps.
Y el Raspberry Pi Zero tiene 512 MB RAM
 
9:52 PM
@CandidMoe Y un procesador de verdad, no como el de arduino xD
 
@Benito-B Eres cruel. Tiene su lugar en el ecosistema.
 
Claro que si. Soy gran fan de los arduinos (y de sus hermanos mayores, la verdad). Pero cuando se habla de querer procesar, arduino simplemente agacha la cabeza y deja que otros hagan el trabajo
Cada herramienta es buena para lo que es... arduino es genial como microcontrolador, pero su cpu es ... lo que es xD
 
@Benito-B Ah! Tú hablas de rendimiento, mientras yo me fijo en el diseño.
 
Yo hablo de la pregunta, que quería hacer OCR con un arduino
 
@Benito-B Imposible.
 
9:58 PM
OCR a una imagen de 1080p... arduino no es capaz ni de cargar la imagen!
 
Ahora estoy trabajando con una pantalla color sensible al tacto conectada a un Arduino Uno. Incluso la cosa más básica, como llenar la pantalla (320x240) de un solo color toma un par de segundos. Lento ....
 
Ufff
Yo estoy jugando con una raspberry y arduinos
No sabía lo fácil que es crear un serial port en python para controlar el arduino
 
10:14 PM
Claro, el Arduino pasa a ser un periférico del Raspberry. Perfecto!
 

« first day (2025 days earlier)      last day (1066 days later) »