« first day (1885 days earlier)      last day (1521 days later) » 

00:50
Buenas, tengo una duda y queria preguntarles sobre la BIOS y UEFI, lo que pasa es que estoy aprendiendo assembler y me tope con las interrupciones del ciclo de fetch y bueno por ahi lei que esta dado por la BIOS, es decir que la BIOS se encarga de administrar esas interrupciones de entrada y salida con los perifericos al momento de que estos requieran atención del procesador
Bueno, lo que pasa es que ahora me tope con que la BIOS esta obsoleta y lo que ahora se usa es una UEFI, no entendí muy bien las diferencias, solo se que es mas moderno y seguro
En fin, buscando mas definiciones he leido que estos firmware en realidad se encargan del arranque del sistema operativo y tambien de revisar los distintos elementos hardware del pc, pero no se como esta relacionado directamente eso con las interrupciones
:'v no se ni que diablos estoy escribiendo LKASDJL alguien que me ayude
 
5 hours later…
05:36
5
Q: Winter Bash 2020

PikohEl "Winter Bash 2020" ha comenzado y los sombreros (y las máscaras) se enumeran a continuación. Sólo hay dos respuestas: una para los sombreros secretos y otra para los sombreros normales. La lista de los sombreros secretos se actualizará a medida que los descubramos. Winter Bash es un evento div...

Falta el sombreo : "Defender of the unicorn" , lo pueden obtener aquì: winterbash2020.stackexchange.com/unicorn
 
4 hours later…
09:51
Egun on
 
1 hour later…
11:10
@ChavsoluteLocohombre ¿Qué necesitas saber? Yo desconozco los detalles pero puedo ayudarte con la "idea general"
 
2 hours later…
13:04
Es que ya me complique mucho, estaba estudiando lo de las interrupciones que se pueden hacer en assembler y dicen que es con la BIOS supongo que actualmente es con la UEFI, el punto es que cuando investigue sobre esos terminos dice que tiene que ver con el arranque del sistema operativo y ademas
Que cuando quiero hacer una interrupcion en assembler lo que hace el sistema operativo es que reutiliza las interrupciones del BIOS
No se, con lo que sepas me sirve, no entiendo muy bien cual es la relacion entre la funcionalidad de la BIOS o UEFI con las interrupciones
13:41
@abulafia, no se si reir o llorar:
1
Q: Modulo negativo y decimal - Javascript

Husdady function mod(n, m) { return ((n % m) + m) % m; } console.log("Segundo Operador de modulo negativo:") console.log(mod(3, -.2)) // ¿? RPTA: 0 console.log(mod(-3, -.2)) // ¿? RPTA: 0 console.log(mod(.3, -.2)) // BIEN console.log(mod(-.3, -.2)) // BIEN console.log(mod(3.6, -.2)) // ¿? RPTA: 0 ...

13:52
@ChavsoluteLocohombre Las interrupciones son de hardware; todas las CPU las tienen. Las placas (CPU + Memoria + etc) tiene BIOS. El BIOS es un conjunto de rutinas en ROM para funciones propias del hardware (leer el teclado, por ejemplo). Para invocar estas rutinas en un PC pones los parametros en registros y generas una interrupcion. La BIOS toma el control, ejecuta lo pedido y retorna a ti.
También hay interrupciones de hardware. Las genera el hardware y provocan la ejecución de una rutina específica. Esta rutina puede ser una tuya.
Lo mejor para estudiar interrupciones es que te compres un Arduino para jugar. La gracias es que nada se interpone entre tu código y el hardware. Ahi se te va a aclarar toda la película
@ChavsoluteLocohombre Una interrupción es una línea hardware que entra en la CPU y que puede ser "levantada" desde fuera por otro dispositivo conectado al bus (típicamente será algún dispositivo de entrada/salida, por ejemplo el controlador de teclado cuando detecta que has tocado una tecla)
Básicamente sirve para decirle a la CPU "un dispositivo requiere tu atención"
En el bus de datos el dispositivo coloca un número que le identifica, por ejemplo el 17. De este modo la CPU recibe un mensaje que puede traducirse por "El dispositivo número 17 requiere tu atención"
La CPU consulta entonces una tabla, llamada la tabla de vectores de interrupción, para ver qué hay en la posición 17 (en este ejemplo). Allí encontrará otro número que representa la dirección de memoria donde está la rutina que debe ejecutar para ese caso
abandonará momentánamente el programa que estuviera ejecutando y pasará a ejecutar la rutina señalada por el vector de interrupción. Cuando encuentre la instrucción IRET (en x86) volverá al programa con que estaba antes de ser interrumpido
Qué hay en esa rutina y qué es lo que hace depende de qué número de identificación haya puesto el dispositivo que interrumpió. El teclado necesita que lean la tecla que ha sido pulsada, otros dispositivos necesitarán otra cosa. Cada rutina se ocupa de lo que el correspondiente dispositivo necesite
esas rutinas forman parte del operativo. Cuando el operativo aún no ha sido cargado, porque estamos durante el arranque, esas rutinas forman parte de la BIOS
cuando el ordenador arranca se ejecuta siempre un programa cargado en una dirección fija. Ese programa se ocupa de preparar adecuadamente la tabla de vectores de interrupción, entre otras muchas cosas, y después de leer el sector de arranque del disco de arranque, el cual a su vez podrá modificar vectores de esa tabla, cargar el operativo, etc
la BIOS está almacenada en memoria que no se borra (por eso está ahí cuando el ordenador arranca, antes de que hayas cargado nada). Y por eso seguirá ahí incluso después de que el operativo se haya cargado, por lo que el operativo podría usar si lo necesitara alguna de las rutina de la BIOS
lo de UEFI, a efectos de la explicación anterior, sería equivalente a BIOS
15:03
La Unified Extensible Firmware Interface (UEFI, lit. «interfaz unificada de firmware extensible») es una especificación que define una interfaz entre el sistema operativo y el firmware. UEFI reemplaza la antigua interfaz del Sistema Básico de Entrada y Salida (BIOS) estándar presentado en las computadoras personales IBM PC como IBM PC ROM BIOS.
 
2 hours later…
16:36
Feliz navidad muchachos :-D , estuve desaparecido jeje
@CandidMoe He visto muchos phyton, pyhton :-p es como jugar a mover la posición de la letra H
La otra sería escribirlo en castellano: pitón.
17:36
Buenas...
18:33
En castellano para algunos paises puede sonar a albur 😅
18:48
@CandidMoe aunque no está relacionado directamente con el animal. Es mas bien una coincidencia.
@MauricioContreras Bueno, coincidencia o no, su mascota y logo sí que es la serpiente
Yo últimamente pronuncion "páizon", pero antes de eso pasé por pronunciaciones más peregrinas, como "pízon" (tónica en la i), o "páiton", o "píton" (tónica en la í también). Creo que nunca "pitón".
@abulafia Eso no lo niego. Es lo más coherente debido al nombre del lenguaje. Aunque haberle puesto un Silly Walker también hubiera funcionado. Con el permiso, claro está, de los humoristas británicos. XD
@MauricioContreras Wikipedia. "Monty" fue elegido a propuesta de Eric Idle como un guiño humorístico al Mariscal de Campo Montgomery, un legendario general británico de la Segunda Guerra Mundial; y añadiendo después una palabra de pronunciación suave, optaron por "Python".
Guido le puso Python en honor al grupo Monty Python
@CandidMoe Si, eso lo sé. A lo que me refiero es a que el creador del lenguaje no pensaba directamente en el animal, sino en el grupo humorístico cuyo nombre tenía el del animal. Tal vez no me expliqué bien.
Lo mismo se hubieran llamado los Monty Falcon, y el lenguaje se llamaría Falcon.
@MauricioContreras Lo tengo claro. Agregue la información para beneficio de quienes no conocen Python.
19:09
Yo no sabía de donde venía el nombre :O Ahora entiendo el primer programa de Python que nos enseñó mi profesor y que se llamaba The Black Knight y lo único que hacía era poner "None shall close me" cuando intentabas cerrar la ventana
@abulafia Hola que tal estas, estas online? me gustaria preguntarte una duda que tengo.
19:26
@drdevenv Sí, adelante
te pregunto aqui o hay chat privado,para no liarse con los demas comentarios
@Benito-B Hay varios guiños al grupo desde el lenguaje. El entorno de desarrollo se llama "Idle", y en la documentación suele usarse "spam" y "eggs" en vez de los típicos "foo" y "bar"
@drdevenv depende de la naturaleza de la pregunta. Si no es privada yo creo que mejor por aquí. Así otros podrían también responder
ok
mira estoy con el programa que me ayudaste, el caso es he puesto otro post para ver si alguien me podia ayudar y nadie me ha contestado aun.Mientras tanto he intentado solucionar lo que fallaba y ahora estoy casi apunto pero me falla una cosilla
podrias ayudarme y decirme si la estructura del programa es correcta o si lo estoy haciendo todo mal
Si esa, seguramente no se entiende nada y esta mal formulada
El caso es que tengo el mismo programa pero creado con clases y en ficheros diferentes
cuando ejecuto por partes es decir cada fichero me va bien
19:32
Vaya por delante que no tengo experiencia con Tkinter, más allá de los pequeños ejemplos que he podido hacer para ayudar a algunos usuarios con sus preguntas. Nunca he hecho una aplicación compleja con múltiples ventanas
pero cuando desde uno empiezo a llamar al otro pues no consigo capturar el valor de la ventana
no te preocupes
Voy a intentar ejecutar tu programa a ver si entiendo qué se pretende, y pensar cómo lo haría yo
la intencion es lo que cuenta y algo me podras ayudar
ok
gracias
Sabes algo de programación orientada a objetos? porque generalmente las aplicaciones de interfaz gráfica de usuario se simplifican bastante y quedan mejor estructuradas si usas OOP
la verdad es que en mis tiempos jajja algo sabia pero la verdad es que ahora estoy muy pez, y nunca habia programado con python,habia tocado delphi y VBasic pero sin hacer grandes cosas
el programa ahora lo tengo con clases pero me pierdo en la estructura
19:36
No entiendo el código que has puesto en la pregunta. ¿Es todo un solo script o son varios?
La indentación no es correcta en algunos lugares. Por ejemplo la función redirector() está indentada y no deería estarlo
Lo mismo con tablaMulti
dejame ver
la verdad es que como he tocado tanto no se si redirector lo indente.Es solo un Script
lo que viene a hacer es lo siguiente
pregunta login, cuando es ok , cierra ventana y te abre otra ventana
en esa venta hay una caja de texto y la idea es poner varios botones
cuando pulses un boton hacer algo, en este caso el boton tabla de multiplar te abre una venta y te preguna por un numero y te genera la tabla en la caja de texto, todo esto siempre con el redirector para pasar todos los print a GUI
no se si me he explicado bien
perdona por el rollo y gracias por mirarlo
Ok, estoy en ello. Dame un rato
Estoy tratando de reescribirlo usando clases y frames y toplevel
No tranquilo lo que necesites
la funcion tabla multi no la tenia tampoco indentada pero probe a meterla antes del boton de todas las maneras y al final se quedo asi
20:20
si necesitas algo dimelo por favor
te puedo pasar el codigo que he hecho
Tengo algo ya que medio funciona, pero me faltan pulir detalles, pues como ya te he dicho no tengo experiencia con esto
todo funciona más o menos como describes, pero cuando se cierra la última ventana visible, aún así el programa no termina, porque la ventana "root" sigue en ejecución (invisible)
Este es mi código
import sys

import tkinter as tk
from tkinter import messagebox
from tkinter import Tk
from tkinter import Text
from tkinter import Label
from tkinter import Entry
from tkinter import Button
from tkinter import StringVar
# from tkinter import IntVar


def centrar(ventana, master):
    x = (master.winfo_screenwidth() - master.winfo_reqwidth()) / 2
    y = (master.winfo_screenheight() - master.winfo_reqheight()) / 2
    ventana.geometry("+%d+%d" % (x, y))

class Login:
    def __init__(self, master):
Aún hay bastante que mejorar ahí, y quizás no hace exactamente lo que querías, pero es un punto de partida que al menos funciona
quizás puedas usarlo para plantear otra pregunta más concreta en la que alguien con más experiencia que yo te pueda ayudar
@drdevenv Mira ^^^
lo voy a probar
espera y te digo
Pues si te digo la verdad creo que si me va a valer .mañana trabajre con el para pulirlo porque yo lo habia hecho igual que tu con clases pero separando las cosas en ficheros diferentes ,un para login otroa para tabla otro para la ventana principal.
el caso es que en la venta de pedir numero de la tabla si lo pruebo suelto si que me va pero cuando intento enlazar todo no va bien y creo que es por los mainloop o algo asi,pero el tuyo va bien del principio solo hay que ponerle el boton de salir en la tabla ,poner los botones bonitos con ttk y creo que me va a valer.En cuanto lo vaya puliendo te digo que tal.Muchisimas gracias por tu ayuda, se agradece un monton cuando estas atascado y no das mas.
20:37
De nada. Voy a probar otra forma de hacerlo con Frames a ver si es más sencillo
te mantego informado, de como va el proyecto a ver si con el tuyo puedo tirar definitivamente para adelante.Muchas gracias de nuevo.Yo mire con Frames que hay un tutorial por aqui pero no acababa de salir igual.Un saludo .Hablamos voy a ver la tv un rato
21:35
@drdevenv Aqui tienes otra version que usa Frames y un mecanismo "bastante genérico" para especificar qué frame va después de otro (en la clase App)
import sys
import tkinter as tk
from tkinter import messagebox
from tkinter import Tk
from tkinter import Text
from tkinter import Label
from tkinter import Entry
from tkinter import Button
from tkinter import StringVar

class Panel(tk.Frame):
    def __init__(self, master, titulo="Sin título", ancho=360, alto=180):
        super().__init__()
        self.master:tk.Tk = master
        self.siguiente = lambda: None
        self.titulo = titulo
        self.ancho = ancho
        self.alto = alto
        self.x = (self.master.winfo_screenwidth() - self.ancho) // 2
21:47
Buenas.. Tengo una duda como podria mostrar registros que no pertenezcan a un rango de fechas por ejemplo:
servertime >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 10 DAY), '%Y-%m-%d')
AND servertime <= CURDATE()
Tengo este filtro pero quisiera mostrar son los que no esten en ese rango
22:15
@abulafia Gracias, mañana lo pruebo. He intentado poner buttons y entrys ttk qué tienen aspecto más moderno en el 1er código en la ventana del login pero por alguna razón no funciona. Mañana más 😉
22:33
@drdevenv Al margen de lo que me puedas contar mañana, he decidido publicar este último código (mejor comentado) como respuesta, pues puede ser útil a alguien más. Quizás incluso a mi yo futuro si alguna vez necesito hacer algo así y ya no recuerdo cómo lo había resuelto aqui :-)
@JuanPerez:
(servertime < DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 10 DAY), '%Y-%m-%d')
OR servertime > CURDATE(),2))
O bien
NOT (servertime >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 10 DAY), '%Y-%m-%d')
AND servertime <= CURDATE())
23:35
@PatricioMoracho Estas ahí ?

« first day (1885 days earlier)      last day (1521 days later) »