from math import ceil
lista = list(range(1001))
n_trabajos = len(lista)
max_tam_bloque = 100
n_trozos = int(ceil(n_trabajos/max_tam_bloque))
tam = len(lista)//n_trozos
result = [ lista[i:i+tam] for i in range(0,len(lista), tam)]
lista = list(range(1001))
n_trabajos = len(lista)
max_tam_bloque = 100
n_trozos = int(ceil(n_trabajos/max_tam_bloque))
tam = int(ceil(n_trabajos/n_trozos))
result = [ lista[i:i+tam] for i in range(0,len(lista), tam)]
@NicolasOñate No pasa nada con el primo. Por ejemplo, 1031 es primo. El enunciado sería: divide un montón de 1031 piezas en varios montones aproximadamente iguales (lo más iguales que se pueda) de modo que cada montón no tenga más de 100 piezas.
mi algoritmo lo resuelve creando 11 montones con [94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 91] piezas en cada uno
@LauraZ de maravilla, cerré el 2020 con el lanzamiento de mi primer curso de C#, completé mi curso de 3 meses de producción de música electrónica, lancé un par de tracks
@mauricio la mentoría básicamente es un acuerdo de tener una guía: "yo estoy aquí y quiero avanzar, no conozco el camino, ¿me entrenas?" y el mentor te dice, mira, aquí tienes un mapa, una brújula, aquí las recomendaciones, algunos te regalan un par de tennis/zapatillas nuevas y tú debes avanzar
@JheymanMejia 3 semanas aprox desde que terminó mi curso :D
@mauricio también le vas haciendo preguntas conforme avanzas, no siempre te darán la respuesta que quieres escuchar, siempre te hablan desde la experiencia real, y si no la tienen, no hay problema, te la dicen y ambos aprenden algo nuevo
hola a todos, tengo una pregunta, actualmente estoy investigando sobre ensamblador nasm, hasta ahorita todo bien en linux, pero mi duda viene con windows, estoy tratando de buscas las interrupciones de windows pero cuando no funciona, ¿alquien sabe donde puedo buscar la lista de interupciones de windows?
I can't seem to find a good reference for NASM x86 interrupts on a Linux system. For example, what is int 0x60 and how is it different from int 0x80?
Is there a manual somewhere which will list all the interrupt numbers which can be used in conjunction with the int instruction?
La Lista de Interrupciones de Ralf Brown (conocida popularmente en el mundo hispano como Lista de Ralfy) es una lista comprensiva de interrupciones, llamadas, hooks, interfaces, estructuras de datos, direcciones de memoria y de puertos, y opcodes de procesador para máquinas x86 comprendiendo desde el mismo comienzo de la era del PC hasta el año 2000, siendo todavía aplicable en su mayor parte a los PC's de hoy en día. Cubre sistemas operativos, controladores de dispositivos, y software de aplicación; tanto de características documentadas como información indocumentada, incluyendo bugs, limitaciones…
pero por lo que lei y entendi, es que los sistemas operativos bloquean las interrupciones por bios, es por eso que se usan intermediarios que usan los SO, por ejemplo en linux se usa la interrupcion 0x80 que por medio de los registro de uso comun se le especifica que se va realizar
pero en wnidows, sus interrupciones son diferentes, he buscado que se usan el 0x21 pero cuando lo compilo me sale que el programa no es compatible
Tengo un problema con hilos de un socket, cuando se conecta el programa al socket este crea un hilo y luego crea otro haciendo muchas sesiones, y esto hace que el programa mande muchas solicitudes, entonces lo que hice fue:
def reconsocketloop():
shandle = cliente.socket
while (1):
...
@tecnobyte No es que se bloqueen las interrupciones, es que se impide que un programa de usuario pueda instalar una rutina de servicio a una interrupción. Esas rutinas forman parte del sistema operativo, y las direcciones de memoria donde está la tabla de vectores de interrupción están protegidas y sólo los procesos del kernel pueden acceder a ellas o cambiarlas.
Por otro lado, las interrupciones 0x80 o 0x21 son interrupciones software. No tienen el mismo sentido que las interrupciones hardware, sino que se usan como mecanismo para cambiar el nivel de seguridad en que se halla la CPU. Así se cambia del nivel "usuario" en el que hay muchas restricciones, al nivel "kernel". Es por tanto la forma de llamar a un servicio del kernel desde una rutina de usuario, con la consiguiente escalada de privilegios
cuando programas en C y haces una llamada a una función de la biblioteca windows, esa función incluye código para invocar el trap (que así es como se suele llamar a la interrupción software que sirve como punto de entrada al operativo)
en el fondo, a nivel de ensamblador, todos tienen la misma forma INT NUMERO
pero el número que debe usarse, y lo que ocurra después, depende del operativo
sí, claro. Enlazando con las librerías adecuadas y haciendo un call a la rutina que quieras
de hecho esa es la forma en windows de hacer un system call. Debes llamarlo a través de una rutina de librería
internamente esa rutina hará el INT 0x80
pero no debes intentar hacer tú directamente el INT 0x80 porque no sabes qué hay que poner en los registros para conseguir según qué resultados. Porque todo eso está no documentado
> Python has won the TIOBE programming language of the year award! This is for the fourth time in the history, which is a record! The title is awarded to the programming language that has gained most popularity in one year.
What language is that? It's good old C and if you reckon it should compile, well, it does. Does it produce the mystical and highly vaunted middle-out compression from the show? No.
@mauricio Habías preguntado sobre esto mismo hace un tiempo? (como un año o así)?
es que me suena mucho haber tenido esta conversación y si no fue contigo fue otro :-)
El algoritmo que describe la serie no puede existir. No es diferente del "teletransportador" de Star Trek, o del "salto al hiperespacio" de Star Wars. Es un truco del guión
@abulafia me alegra hablar contigo despues de mas de un año, si fue contigo, solo que en esos tiempos te pregunte como se pueden abstraer cosas de la vida real a codigo
@mauricio Eso no es tan asombroso. Las librerías o frameworks al final están hechas también con un lenguaje. Al final, en algún momento, alguien tiene que codificar los algoritmos en vez de usar los que otro ha codificado
eso es como decir que cuando aprendes a escribir puedes usarlo para escribir poesía o novela. Un lenguaje al final es una forma de expresar un algoritmo para que una máquina pueda ejecutarlo. Frontend y backend no son más que términos para clasificar quién lo ejecuta (si la máquina que está dando la interfaz de usuario u otra máquina que se comunica con la primera por internet)
@abulafia leere sobre ese algoritmo y basado en esa informacion obtenida entreno mi cerebro para obtener una mejor pregunta , despues te invoco amigo de colombia a españa