Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Foxy Rider

#51
Cita de: Xafi en 12 Noviembre 2012, 19:57 PM
http://www.3djuegos.com/noticia/129477/0/directx-111/exclusivo-windows-8/ Ya esta microsoft privatizando!

Eso no es privatizar, es no aprender absolutamente nada del error que ya cometió con el Vista ... tiraste un lindo dato ahí !
#52
CitarPor cierto como aporte parece ser que aunque el unity actual (el 3.algo) no es compatible con el SO linux parece ser que el unity 4 si lo será (http://blog.desdelinux.net/unity-4-el-motor-de-juegos-3d-llegara-a-linux/)

Golazo !! Unity3D siempre me pareció un motor *decente* para un proyecto indie !!
Lástima los features que le faltan a la licencia "free" (cuando leí que no soportaban LoD, RTT o postprocessing en la free dije un "WHAT? !!!" en voz alta y no es broma), pero si el proyecto camina pueden buscar ayuda (teniendo una demo en mano) mediante un crowdfunding.

Lo que colgué con preguntar es si el juego vá a ser libre/código abierto o privativo (freeware, con suscripción, etc) ?

Saludos.
#53
¿Para qué? Si a duras penas logran soportar 720p y agradecé cuando ves algo en 1080 ...
Algo en 4K tiene requerimientos mucho más brutales para el almacenamiento y el ancho de banda =/

Saludos.
#54
Programación C/C++ / Re: Error en malloc()
11 Noviembre 2012, 20:18 PM
A ver ...

1) Por favor, si tenés una función que tiene la funcionalidad de malloc(), podrías hacer algo como esto:

C

void* Alloc(size_t stringSize)
{
       void* stringMemory = malloc(stringSize);
               if (!stringMemory) fprintf(stderr,"strAlloc() failed !!! malloc returned nullptr  \r\n"); /* Aca deberia ir un codigo que maneje de manera agraciada la falta de memoria */

       return stringMemory;
}



C++
Código (cpp) [Seleccionar]

template <typename T>
T* Alloc(std::size_t memorySize)

{
       T* reservedMemory;

       try
       {
               reservedMemory = (T*) new char[memorySize];
       }
       catch (std::exception& mExcept)
       {
                std::cerr << "strAlloc() failed // " << mExcept.what() << std::endl; // Aca deberia ir un codigo que maneje de manera agraciada la falta de memoria
       }

       return reservedMemory;
}





Verificá siempre el retorno del pedido de memoria ... salvo que hablemos de algo despreciable

2) Si te interesa saber sobre problemáticas de memoria de tu aplicación, te aconsejo ver alguna aplicación como Valgrind

Saludos.

P.S//Edit → Recién me avivo de que al código en "C" le puse "string" (por que era char* el tipo) a las variables, pero que después dije "screw this" y le mandé un void y no renombré ... same thing lol
#55
Cita de: moikano→@ en 11 Noviembre 2012, 16:48 PM
Ok, me quedo claro, gracias a ambos.


Si te copa leer más de eso, buscá sobre el motor de javascript v8 del Chromium ... el de Mozilla era embebible, pero tengo entendido que desde TraceMonkey es una tarea más tediosa.

Con eso vas a hacer que tu aplicación entienda javascript, vas a poder ampliar ese javascript con tu funcionalidad propia de tu programa (por ejemplo, lograr que ese javascript maneje gráficos 3d vía opengl ponele), y vas a poder correr ese javascript de cualquier lado, sólo con tener un buffer con el código javascript a correr (que puede venir de un archivo tuyo, entrada de usuario, loquesea) ... y estás

Citar-) Tenemos una historia escrita (basicamente decidimos hacer el juego porque queríamos hacer un proyecto interesante y uno de nosotros hizo una historia para un concurso de escritura, cómo la historia estaba muy bien decidimos hacer un juego sobre ella, modificandole algunos aspectos y metiendoles detalles de algunos juegos que nos gustan (como Skyrim). El guión si lo puedo publicar (evidentemente algo genérico para que no sea facil plagiarlo) si consigo que el que hizo la historia me de permiso.

Ponelo bajo régimen de derecho de autorx común y si podés registrá la obra en la entidad de tu país ... no debería salirte mucho, y con eso podés publicarlo tranquilamente sin preocuparte sobre el plagio (suponiendo que tu obra es original) por que vas a tener un probatorio de que la obra y sus componentes originales son tuyos.

Yo te diría que lo pongas bajo un licenciamiento Libre Creative Commons No Comercial y Share Alike ... pero entiendo las restricciones que quizá le quieras poner a la obra (y las respeto)

Si te interesa leer un poquito más de derecho de autorx (desde la perspectiva de alguien que milita la cultura libre; obviamente quiero tener la transparencia de avisarte que el texto vá a estar empapado de nociones ideológicas), tengo un post hecho sobre eso en mi semi abandonado blog (tengo borradores en camino, pero algunas situaciones personales me roban mucho tiempo como para sentarme a escribir) → vertexsymphony.wordpress.com/2012/08/27/un-acercamiento-al-derecho-de-autor-y-licenciamientos-copyleft/

Por supuesto que no quiero hacer spam, pero me gusta el formato que le dí (bueno, es el formato que me hubiese gustado ver al abordar esa temática como texto introductorio y en español; y como no lo encontré ...)

Citar-) Lo de que la aplicación sea portable, al usar Unity se puede compilar para PC, Mac, iOS, android, wii, xbox, ps3, navegador... Pero nosotros en principio haríamos la aplicación para PC y Mac y luego, más adelante veríamos si seguir porque como ya he dicho el juego en principio es como hobbie y como medio para aprender.

Pero no en Linux, FreeBSD, IllumOS ni ningún otro sistema libre ... por lo que te diría que cambies "PC" por "Windows"

Citar-) Lo del multijugador no me refiero a un multijugador tipo MMORPG ni un juego con soporte para muchas personas... ni siquiera (de principio) de gente fuera de tu LAN. yo pensaba en que si estas aburrido o no puedes pasarte una misión y tienes a un amigo o hermano en tu casa pues pueda ayudarte

Bueno, algo enfocado a LAN permite más chanchadas y menos elegancia en el área de networking (no te preocupás tanto por la latencia, por ejemplo) ... pero con el uso masificado Wi-Fi tampoco asumas una conexión estable, pero sin duda esa limitación que ponés  ("sólo LAN") te dá más respiro en lo que es el área de red.

Citar-) Lo de que se use javascript y c# es porque en unity 3d se programa por scripts y luego el propio unity se encarga de compilar todas las escenas y archivos en un ensamblado para cada plataforma que desarrolles.

Conozco Unity y cómo embebe C# a nivel código por que lo he hecho ... por lo que le estás predicando al predicador (perdón por el comentario agrio, pero tenía que decirlo)
En el link que te pongo a continuación detallan como es, pero cambió un poco de la última vez que lo visité (que estaba súper incompleto y eso sólo era la punta del iceberg que te daba términos para embocarle a google); así que no sé cuan completo o bien que esté, igual fijate → http://www.mono-project.com/Embedding_Mono

Citar-) Ya se que hay mucha gente en muchos foros que dice de hacer el mejor juego que se ha hecho nunca, y luego resulta en nada porque se han puesto metas muy altas que ademas no las pueden lograr porque ni siquiera tienen un equipo bueno. yo puse el ejemplo de skyrim no por decir que va a superar a ese juego sino para dar una idea de que ambientación me gustaría que tuviera. Nosotros no aspiramos a realizar el mejor juego del mundo sino a aprender más sobre como se realiza un videojuego complejo y a intentar pasarnolo bien.

Humildad, eso es positivo ... :D

Saludos.
#56
Otro proyecto de videojuegos más ... a ver

Cita de: hackertotal22 en 10 Noviembre 2012, 13:35 PM
Gracias por tu propuesta. El juego sería de rol (conoces el juego skyrim?) pero aportandole un mapa extenso, una historia completa y sobre todo la posibilidad de jugar multijugador.
Si ves que puedes encajar en algo así o quieres aprender a hacer esto pues nos vendría bien que os apuntarais.
Por cierto gracias por la información  ;D

Rojo → Tienen un guíon armado? si es así publiquenlo (con los debidos cuidados de derecho de autorx que eso amerita) .... por lo pronto "mapa extenso" e "historia completa" no son dos cosas fácil de llevar adelante.
Lo que me hace poner en duda la posibilidad de este proyecto (no offense, pero hace 7 años que veo pasar un montón de proyectos que apuntan a la grandeza y ese es el mismo motivo de su fracaso ... les faltan recursos *en el sentido más genérico de la palabra*)

Piensen que la calidad depende del equipo que junten y si apuntan muy alto los resultados pueden llegar más tarde (lo cual es bastante "desmoralizante" para un equipo de desarrollo)

Azul → Diría que lo re-pienses desde una perspectiva de programador. Soportar multijugador no es algo que se pueda sacar "fácil"; de hecho es una de las cosas más complicadas lograr eficiencia de tráfico, estabilidad de la conexión, resistencia a fallos en la red (microcortes por ej) y problemas de latencia/ping.

CitarA lo de la página web, la verdad es que si deberíamos pero lo que pasa es que no tengo muchos conocimientos de programación web por lo cual la web sería algo "cutre" XD...

Usen un CMS como Joomla o mejor ... armen un Wordpress como una suerte de blog de desarrollo  (usen mucho el tema de tags)

CitarC#... eso no suena muy portable. Me equivoco?

Es tan portable como Mono :  "Mono can be run on many operating systems including Android, BSD, iOS, Linux, OS X, Windows, Solaris, Unix, and some for game consoles such as PlayStation 3, Wii, and Xbox 360."

(Humm, tendría que corregir eso de "BSD" por algo más expandido)

CitarTengo una duda sobre esta parte, ya que javascript está orientado a navegador, como es que lo usáis o usaréis para hacer un juego que, por lo que tengo entendido, no es de navegador?

javascript es un lenguaje de scripting que normalmente se embebe en navegadores ... pero puede embeberse en cualquier aplicación.


Saludos.
#57
Foro Libre / Re: Blackberry o Lumia
5 Noviembre 2012, 13:34 PM
CitarNo me gusta ni Android ni iPhone tanto por la seguridad

Eso no hace más segura a las otras términales ... las capas de  "seguridad" que agregues o quites tienen que ver con una cuestión de prácticas más que de sistemas.

Citarla privacidad

Desde el momento que te conectás a la red perdés privacidad1&2; la diferencia es que elegís cuanto y a quien le das datos.
Ah, y si encima usás un smartphone con algún servicio de terceros, solito te dedicás a cruzar datos.

Repito, la seguridad (y en este caso la privacidad) tiene que ver con una cuestión de prácticas ... todo lo demás es (parafraseando a Linus Torvalds) Masturbation

Saludos.

[1] http://www.zeit.de/digital/datenschutz/2011-03/data-protection-malte-spitz
[2] http://www.zeit.de/datenschutz/malte-spitz-data-retention
#58
Citarpor eso mencioné algunas funciones como esas, porque me imagino que si quiero poner un hilo a dormir y que me libere la cpu debería usar algo como 'wait'

No, los procesos tienen diferentes flags de estado  ... en el caso de linux no podés "dormir" un hilo con una función equivalente al SuspendThread() de Windows, pero sí podés usar algo como un mutex para "esperar" (que es la manera que se recomienda en windows de todas maneras)

Citarbien, yo entiendo que por ejemplo el kernel mediante el scheduler por ejemplo use round robin para los procesos, digamos.... pero en cuanto a los hilos de un proceso cómo los planifica? osea espera a que duerma uno para proseguir con otro, o espera señales del programa (programación, ejemplo 'wait'), o el kernel interviene directamente con los hilos y los planifica por ejemplo usando algun algoritmo de prioridades.

Linux usa el Completely Fair Scheduler.
Lo de arriba debería responder lo otro.

CitarEso es lo que quiero saber, porque si es así que el kernel lo hace, entonces lo que yo leí que el programador debía encargarse de todo está mal, y lo leí en varios lugares. por ejemplo usando una libreria.

Citame el texto y lo vemos, quizá está mal o quizá no ... pero no, si bien parecería que es "teóricamente posible" no estoy al tanto de un sistema operativo que permita cambiar el scheduler programáticamente desde modo usuario. Si se puede instruir al algoritmo de scheduling (repito: si lo permite, por que cada kernel es un mundo) podés dar "hints" sobre prioridad, affinity, etc ... pero eso es algo MUY diferente a "el kernel lo hace [...] yo leí que el programador debía encargarse  [...] por ejemplo usando una libreria"

Citarson controversias que nunca me terminan de aclarar la situación. tan sólo estoy interesado en saber quien lo hace y medianamente como lo hace. porque me imagino que si es el kernel como te dije antes, entonces debería poder reconocer cuantos hilos hay en un proceso, pero como te dije, he leído que no se da cuenta de la cantidad de hilos que tiene un proceso. por eso  estaba casi convencido de que lo hacía el programador.

quien lo hace → El scheduler es el que planifica procesos u hilos
medianamente como lo hace →  http://en.wikipedia.org/wiki/Completely_Fair_Scheduler#Algorithm
he leído que no se da cuenta de la cantidad de hilos que tiene un proceso →

Código (bash) [Seleccionar]
cat /proc/`pgrep clementine`/status | grep Threads
ps -eLo pid,cmd,nlwp | grep clementine



Nah, no son controversias ... es que hablar de scheduling es hablar de teoría de sistemas operativos, después de las especificidades de cada sistema y sus algoritmos.
Ponele que en linux un proceso es un conjunto de hilos (o un hilo solo) que comparten espacio de memorias ... linux no diferencia entre procesos e hilos, sino que planifica tareas (tasks) y a esas las maneja según el tiempo de ejecución.

Citaraparte si el kernel interviene tiene que poder reconocer que es un hilo y que es un proceso, y saber cuantos hilos hay en un proceso determinado, para poder planificarlos. algo como una lista de subprocesos, no lo se. pero yo leí que el kernel ve a un proceso en modo user como si fuera un sólo hilo, así tenga 5 o más.

Pensá en términos de código ... hay mil maneras de resolver un problema, no? planificar tareas es lo mismo, hay mil maneras de planificarlas y depende del kernel (libres tenés Linux, IllumOS, FreeBSD, OpenBSD, NetBSD, DragonflyBSD, Minix, Match de HURD, el de HaikuOS, etc ... entendés por que soy insistente con que primero pienses de manera más genérica? )

La explicación está en el link de Wikipedia.


Citarpero entonces surge un inconveniente, quién provoca el context switch y cómo?
porque el programador pueda usar alguna función del sistema para provocar un switch, también puede poner a dormir un hilo para poder continuar con otro por ejemplo, ese tipo de cosas son mis dudas.

Ver
1) http://www.informit.com/articles/article.aspx?p=101760&seqNum=3
2) Primera respuesta sobre mutexes

Citarlo de la biblioteca que se encarga de todo te juro que lo leí no lo estoy inventando, se dice que la librería hace todo, crea, destruye, planifica, etc

Waaait, lo de crear y destruir hilos (que en el fondo son tareas) es válido ... planificar no, creo que habrás leído de CPU affinity? http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html

Eso no es planificar ... es un tema semántico nomás

Citarpero eso no aclara nada porque lo que quisiera saber en ese caso es como hace el kernel para hacer el switch en base a la librería y como sincronizarse en si con la librería (yo asumiía que mediante systemcalls) pero cómo el kernel reconoce los hilos de un proceso? yo leí que no notaba más de un hilo

Ya creo que está contestado arriba ...

Saludos.
#59
Citardigamos, entiendo que un algoritmo como el round robin puede usarse desde el modulo planificador del kernel a los procesos en modo usuario (sin detallar si un proceso en modo user tiene una imagen a nivel kernel). osea les asigna un cuantum a cada uno. ahora supongamos que uno de entre varios procesos de user tiene 5 hilos. bien yo preguntaba como se planifican esos 5 hilos dentro del proceso. osea quién los planifica en primer lugar, el kernel o lo debe hacer el programador manualmente usando funciones del sistema (por ejemplo wait, wake, etc)

Te diría que vuelvas un poco atrás en tu lectura de sistemas; por que noto que hay conceptos que necesitás entender antes de leer lo que estás leyendo ahora.
Lo que subrayé es lo que me hizo notar eso ... lo de process wait y wake "son estados" y no funciones (okno, wait si es una funcion ... y wake no es un estado en sí)

Fijate que el scheduler es una parte elemental del kernel y por ende el kernel es SIEMPRE el que planifica y no el programador de aplicaciones en modo usuario  (que puede agregar información para cambiar el comportamiento del scheduler si quiere y el algoritmo lo permite ... pero siempre planifica el scheduler y no el programador)

Citar
mi pregunta es específica sobre como se realiza la planificación de los hilos dentro de un proceso. (suponiendo que tiene por ejemplo 3 o más hilos)

cómo hace el cambio de contexto de un hilo a otro, cómo se reparten los tiempos de ejecución (imagino que entre esos 5 hilos deben repartirse el cuantum asignado al proceso, y su planificación no puede salirse de ese tiempo), quién y cómo lo hace, esa es mi duda.


Tendrías que leer el código fuente para tener lo específico de todo el proceso, pero la información "de alto nivel" la tenés detallada en este artículo de Wikipedia (e importantísimo: sus referencias)

http://en.wikipedia.org/wiki/Completely_Fair_Scheduler

Saludos.
#60
Seguridad / Re: Nueva encuesta: Mejor Firewall
5 Noviembre 2012, 07:13 AM
CitarPrimero asegurarnos de que el router no tenga ningun firewall. Porque si tiene un cortafuegos el Router.. pues para que necesitamos otro FIREWALL?

Hay diversos tipos de dispositivos que cumplen el rol de "router" ... pero por lo pronto eso no importa, vamos al eje de la cuestión: si ese dispositivo "router" es comprometido significa "acceso a la red interna"; y una capa extra de seguridad jamás está de más.
Bah, de movida todas las máquinas tienen que estar cuidadas también a nivel interno ... motivos? dejá correr tu imaginación que no es difícil pensar por qué.

CitarPor segundo; mirar que tipo de red ip utilizamos, si somo clientes (pc de escritorio) windows o linux, por lo normal es que tengamos ip dinamica, y el 95% de los virus y spyware y tal, buscan redes de ip fija (pc servidores).

Ajá, por que las botnets corren sólo en servidores? ¿de donde sacaste ese 95%? :rolleyes:
IP estática o dinámica no significa nada más que simplemente cambiar un poquito la estrategia de networking, nada grave para cualquiera que recién aprende a programar.

CitarLas redes de ip fijas suelen ser redes privadas (empresas la mayoria). Una red privada esta en contra de los principios del uso del internet, que se invento para que fuera una red de uso publico. Por eso los hackers autenticos se apoyan a esa filosofia del verdadero uso de la red. Y un hacker de esos con el coeficiente intelecctual muy alto no atacarian al usuario publico porque seria delito. En cambio si atacan a una empresa, por que una empresa esta en contra de los principios del uso en internet.

Esto es un sinsentido por donde lo lea ... primero que una IP estática no es algo correlacionable a una red de un ente privado (más con el agotamiento de direcciones de IPv4 y algunos ISP que dan IPs que son prácticamente estáticas) y si fuera un ente privado eso tampoco es correlacionable a "un enemigo de los hackers", ya que hay unos cuantos entes privados com Google, Red Hat, Canonical y similes que son afines a la ideología e intereses de unx hacker.

CitarHay una frase que dice; "quien pone la ley, llama al delito" pues con la seguridad informatica sucede igual, si os poneis un firewall poneis en duda de que detras de vuestro sistema escondais algo privado, y lo mas normal es que termineis con ataques de verdad, ataques por parte de mucha actividad y codigo en la red publica que fue programado en su dia expresamente para atakar a los  firewall.

Nonsense ... ¿Un poco de capitulación de las viejas épocas del under?
Sacá la puerta de tu casa, no le pongas rejas a las ventanas y demás ... sin importar tu condición socioeconómica, atrae al crimen

Es lo más ilógico que escuché en mi vida.

CitarYo por mi experiencia. he tenido windows xp durante 8 años sin ningun antivirus ni firewall. Y de virus ninguno, bueno uno solo, y fue el peor de todos. Sabeis cual era?

Lo que significa que no necesariamente TU EXPERIENCIA PERSONAL sea extrapolable al modelo de amenaza de las demás personas ... tu caso es muy especial

Saludos.