lunes, 28 de octubre de 2013

Arbol de Problemas y Arbol de Objetivos

IDENTIFICACION DEL PROBLEMA

- Especificacion/Planteamiento del problema: El problema debe plantearse de forma que permita encontrar diferentes posibilidades de solucion.

ERROR-> expresar el problema como negacion  falta de algo.
EJEMPLO MAL
-No existe un generador local de energia electrica
-Falta de programas de educacion inicial
EJEMPLO BIEN
-Limitada provision de energia electrica durante el dia
-Bajo rendimiento de los niños en los primeros años de educacion primaria.

El arbol de problemas es una  metodologia para este analisis.

Metodologia Cientifica

Scientific Method
Body of techniques for investigating phenomena, acquiring new knowledge, or correcting and integrating previous knowledge.

Trial and error (Generate and test)
Heuristic method of problem solving, repair, tuning, or obtaining knowledgeIt is characterised by repeated, varied attempts which are continued until success or until the agent stops trying. It is an unsystematic method which does not employ insight, theory or organised methodology.
Prueba y error es un método en el cual proporcionas una solución a cierto problema y lo pruebas en el sistema que analizas. Si la solución es muy cercana a lo que deseas, el problema esta resuelto, en caso contrario debes dar otra solución y así lo haces hasta dar con aquella que satisfaga las necesidades que se requieran. Por otra parte, "aprender de tus errores" significa acumular experiencia, tener en memoria una experiencia con el fin de no cometerla de nuevo. 
Paradigma. Es una conceptualización más concreta de una idea o teoría subyacente,
contiene definiciones, constructos e interrelaciones entre dichos constructos.

Modelo. Es una representación más detallada de la realidad. Los modelos pertenecen de
manera específica a fenómenos particulares y diferentes modelos pueden representar al mismo fenómeno desde distintos puntos de vista paradigmáticos.

sábado, 7 de septiembre de 2013

Repaso Poscomp

############################# Arquitetura e Organização de Computadores
-Organização de Computadores: Memórias
-Unidades Centrais de Processamento
-Entrada e Saída.
-Linguagens de Montagem.
-Modos de Endereçamento
-Conjunto de Instruções
-Mecanismos de  Interrupção e de Exceção
-Barramento
-Comunicações
-Interfaces e Periféricos
-Organização de Memória
-Memória Auxiliar
-Arquiteturas RISC e CISC
-Pipeline
-Paralelismo de Baixa Granularidade
-Processadores Superescalares e Superpipeline
-Multiprocessadores
-Multicomputadores
-Arquiteturas

-Paralelas e não Convencionais.


http://endigital.orgfree.com/sequencial/counterasc.htm
http://www.sj.ifsc.edu.br/~odilson/ELD/Apostila%20-%20Contadores%20v2.pdf


############################# Circuitos Digitais
-Sistemas de Numeração e Códigos
-Aritmética Binária
-Representação e Manipulação de Circuitos
-Combinatórios
-Minimização e Otimização de Funções Combinatórias
-Projeto de Circuitos Combinatórios
-Análise e Síntese de Componentes Sequenciais e de Memória
-Projeto de Circuitos Sequenciais
-Modelo de Máquinas de Estado Finito (FSM)
-Circuitos Sequenciais Síncronos e Assíncronos
-Componentes de Armazenamento
-Projeto de Sistemas Digitais: Hierárquico e Modular
-Princípios e Técnicas de Projeto
-Conceitos de Controle e de Tempo
-Famílias Lógicas
-Dispositivos Lógicos Programáveis (PLD).

############################# ALGEBRA LINEAL
-Eliminacion de Gauss
-Espacios, subespacios vectoriales, Bases,
-Autovals, Autovectores
-Diagonalizac
-Espacios con producto interno
-Proyecciones ortonormales

############################# Linguagens de Programação
-Conceitos
-Paradigmas de Linguagens de Programação
-Semântica Formal.
-Teoria dos Tipos: Sistemas de Tipos, Polimorfismo. Verificação e Inferência de Tipos.

############################# Linguagens Formais, Autômatos e Computabilidade Gramáticas. 
-Linguagens Regulares, Livres-de-Contexto e Sensíveis-ao-Contexto.
-Tipos de Reconhecedores.
-Operações com Linguagens.
-Propriedades das Linguagens.
-Autômatos de Estados Finitos Determinístico e não Determinístico.
-Autômatos de Pilha.
-Máquina de Turing.
-Hierarquia de Chomsky.
-Funções Recursivas.
-Tese de Church.
-Problemas Indecidíveis.
-Teorema da Incompletude de Godel.
-Classes de Problemas P, NP, NP Completo e NP-Difícil.
-Métodos de Redução de Problemas.

############################# Organização de Arquivos e Dados
-Organização, Estrutura e Operação de Arquivos. Diretórios: Conteúdo e Estrutura.
-Arquivos do Sistema e Sistema de Arquivos Virtuais.
-Técnicas de Pesquisa.
-Dados e Metadados.
-Representação Digital e Analógica.
-Algoritmos de Codificação e Decodificação.
-Compressão de Dados, Áudio, Imagem e Vídeo.

############################# Sistemas Operacionais
-Conceito de Processo.
-Gerência de Processos/Processador.
-Comunicação, Concorrência e Sincronização de Processos.
-Gerenciamento de Memória: Memória Virtual, Paginação, Segmentação e “Swap”.
-Gerenciamento de Arquivos.
-Gerenciamento de Dispositivos de Entrada/Saída.
-Alocação de Recursos.

############################# Técnicas de Programação 
-Desenvolvimento de algoritmos.
-Tipos de dados básicos e estruturados.
-Comandos de uma Linguagem de programação.
-Metodologia de desenvolvimento de programas.
-Modularidade e abstração.

############################# Teoria dos Grafos
-Grafos orientados e não-orientados
-Caminhos
-Planaridade
-Conectividade
-Coloração
-Grafos Infinitos
-Algoritmos em grafos
-Problemas intratáveis
-Busca em Largura e Profundidade.
-Algoritmos do Menor Caminho.
-Árvore Geradora.
-Ordenação Topológica

############################# ANALISIS COMBINATORIO
-GRAFOS
-ARBOLES

############################# CALCULO DIFERENCIAL E INTEGRAL

############################# GEOMETRIA ANALITICA

############################# LOGICA MATEMATICA

############################# MATEMATICA DISCRETA
-Conjuntos e Álgebra de Conjuntos como uma Teoria Axiomática
-Relações sobre Conjuntos
-Relações de Equivalência e Ordem. Reticulados
-Monóides
-Grupos
-Anéis
-Teoria dos Códigos
-Canal Binário
-Canal Simétrico
-Código de Blocos
-Matrizes Geradoras e Verificadoras
-Códigos de Grupo
-Códigos de Hamming
-Teoria dos Domínios: Ordens Parciais Completas
-Continuidade
-Ponto Fixo
-Domínios
-Espaço das Funções

############################# PROBABILIDAD Y ESTATISTICA
-Eventos. Experimentos Aleatórios
-Análise Exploratória de Dados. Descrição Estatística dos Dados
-Espaços Amostrais
-Probabilidades em Espaços Amostrais Discretos
-Distribuições de Probabilidades de Variáveis Aleatórias Unidimensionais e Bidimensionais
-Esperança Matemática
-Variância e Coeficientes de Correlação
-Aproximação Normal
-Estimação Pontual e por Intervalo
-Teste de Hipóteses para Médias
-Testes do Qui-Quadrado
-Testes de Comparações de Médias
-Regressão e Correlação

############################# ANALISIS DE ALGORITMOS


############################# ALGORITMOS Y ESTRUCTURAS DE DATOS
-Metodologia de Desenvolvimento de Algoritmos
-Tipos de Dados Básicos e Estruturados
-Comandos de uma Linguagem de Programação
-Recursividade: Conceito e Implementação
-Modularidade e Abstração. Estratégias de Depuração
-Cadeias e Processamento de Cadeias
-Estruturas de Dados Lineares e suas Generalizações: Listas Ordenadas, Listas Encadeadas
-Pilhas e Filas. Árvores e suas Generalizações: Árvores Binárias, Árvores de Busca e Árvores Balanceadas.
-Tabelas Hash.
-Algoritmos para Pesquisa e Ordenação
-Algoritmos para “Garbage Collection”
-Técnicas de Projeto de Algoritmos: Método da Força Bruta
-Pesquisa Exaustiva
-Algoritmo Guloso
-Dividir e Conquistar

-“Backtracking”
-Heurísticas.

############################# TECNOLOGIA

############################# Banco de Dados
Modelo de Dados. Modelagem e Projeto de Banco de Dados. Sistemas de Gerenciamento de Bancos
de Dados (SGBD): Arquitetura, Segurança, Integridade, Concorrência, Recuperação após Falha,
Gerenciamento de Transações. Linguagens de Consulta. Bancos de Dados Distribuídos. Mineração
de Dados.

############################# Compiladores
Compiladores e Interpretadores. Análise Léxica e Sintática. Tabelas de Símbolos. Esquemas de
Tradução. Ambientes de Tempo de Execução. Representação Intermediária. Análise Semântica.
Geração de Código. Otimização de Código. Bibliotecas e Compilação em Separado.

############################# Computação Gráfica 
Transformações Geométricas em Duas e Três Dimensões: Coordenadas Homogêneas e Matrizes de
Transformação. Transformação entre Sistemas de Coordenadas 2D e Recorte. Transformações de
Projeção Paralela e Perspectiva. Câmera Virtual. Transformação entre Sistemas de Coordenadas 3D.
Definição de Objetos e Cenas Tridimensionais: Modelos Poliedrais e Malhas de Polígonos. O
Processo de “Rendering”: Fontes de Luz, Remoção de Linhas e Superfícies Ocultas, Modelos de
Tonalização (“Shading”). Aplicação de Texturas. O problema do Serrilhado (“Aliasing”) e Técnicas de Anti-Serrilhado (“Antialiasing”). Visualização.

/////////////// Modelos de iluminação


Expressam as componentes de iluminação que definem a intensidade de luz reflectida por uma dada superfície, permitindo o cálculo da cor de cada ponto de superfície dos objectos contidos na imagem.


A luz incidente na face é reflectida de duas formas:
- Reflexão Difusa: a luz reflecte em todas as direcções, com igual valor de intensidade, devido à rugosidade da superfície reflectora.


A reflexão difusa devida a uma fonte de luz pontual é calculada de acordo com a lei de Lambert: a intensidade de luz reflectida depende do ângulo de iluminação. A intensidade observada no objecto varia, dependendo da orientação da superfície e  da distância à fonte de luz.


- Reflexão Especular: fontes pontuais de luz produzem zonas sobre-iluminadas na superfície reflectora. segun Modelo de Phong.. Reflexão observável em superfícies polidas

A intensidade da reflexão especular é proporcional a cosn(α), em que n depende das características da superfície (valor 1 para faces não polidas e 200 para faces perfeitamente polidas).





--- Iluminação ambiente
Corresponde a uma iluminação difusa, cuja luz é proveniente de inúmeras reflexões.




///////////////  (MSAA) Multi Sampling anti-aliasing - Antisserrilhado (anti-aliasing)
Uma das características da técnica é reutilizar informações capturadas da cena por uma amostra na computação de outras amostras, por exemplo, iluminação.

ALG Z-BUFFER  (depth-bufer).
● A representação eficente de cenários complexos  necessita de algoritmos de visualização para representar somente as partes visíveis do cenário

Alguns algoritmos conhecidos além do z-Buffer são o de Scan-line, Ray-Tracing.. entre outros.
- Não necessita ordenação prévia
- O tempo do cálculo da superfície visível é  aproximadamente independente do número de  polígonos do objeto.

/////////////////////////////////////// Shading (sombreamento) & Smooth Shading


Objectivo: calcular a cor de cada ponto das superfícies visíveis.
Solução brute-force: calcular a normal em cada ponto e aplicar o modelo de iluminação pretendido.



Modelos para colorir superfícies definidas por malha poligonal:

1. Sombreamento Constante


A cor é calculada apenas para um ponto do polígono e replicada em todos os pontos restantes do mesmo polígono.


2. Sombreamento Interpolado = Smooth Shading

   2.1. Algoritmo de Gouraud

--- Calcular a cor de cada vértice através do modelo de iluminação pretendido.
--- Calcular a cor dos restantes pontos do polígono por interpolação bi-linear


   2.2. Algoritmo de Phong

Efectua a interpolação das normais em vez da cor.
-a-- Para cada vértice da malha poligonal calcular o vector normal à superfície. Podem ser calculadas pela expressão analítica da superfície ou interpolando a normal dos polígonos vizinhos.
-b-- As normais nas arestas são calculadas através das normais nos vértices. As normais nos restantes pontos usam os pontos das arestas na mesma linha de varrimento.
--- O modelo de iluminação é aplicado em cada ponto.




////////////// Modelos de iluminación Modelos de iluminación
• Entendemos por modelo de iluminaci Entendemos por modelo de iluminación el cálculo de la intensidad de cada punto de la escena.

Modelo Phong
• En este Modelo, los objetos no emiten luz, sólo reflejan la luz que les llega de las fuentes de luz o reflejada de otros objetos.
• La luz reflejada por un objeto puede ser de La luz reflejada por un objeto puede ser de
tres tipos
– Luz ambiental: proviene de todas las direcciones e ilumina todas las caras del objeto por igual
– Luz difusa: proviene de una dirección pero se refleja en todas direcciones refleja en todas direcciones
– Luz especular: proviene de una dirección y se refleja s refleja sólo en una direcci lo en una dirección

1. Calcular intensidad en los vértices
– 1.1. Calcular normal en el vértice: para evitar visualizar las aristas la normal se calcula como la visualizar las aristas, la normal se calcula como la media de las normales de polígonos adyacentes.
– 1.2.Calcular la intensidad del vértice según el modelo de iluminación de Phong
2. Calcular la intensidad de los puntos interiores x interpolación lineal de las de los vértices

############################# Engenharia de Software
Processo de Desenvolvimento de Software. Ciclo de Vida de Desenvolvimento de Software.
Qualidade de Software. Técnicas de Planejamento e Gerenciamento de Software. Gerenciamento de
Configuração de Software. Engenharia de Requisitos. Métodos de Análise e de Projeto de Software.
Garantia de Qualidade de Software. Verificação, Validação e Teste. Manutenção. Documentação.
Padrões de Desenvolvimento. Reuso. Engenharia Reversa. Reengenharia. Ambientes de
Desenvolvimento de Software.

Teste de SW
1)Tecnicas y Criterios
2)Funcional - Grafo causa efecto
3)Estructural - MCDC (Modified condition/decision coverage)
4)Basado en defectos - Pruebas de mutacion
5)Basado en modelo - Metodo W


-----------------

A) TESTE CAIXA-BRANCA


Caixa de vidro, é um método de projeto de casos de teste que usa a estrutura de controle do projeto procedimental para derivar casos de teste. Usando métodos de teste caixa-branca, o engenheiro de software pode derivar casos de teste que (1) garantam que todos os caminhos independentes de um módulo tenham sido exercitados pelo menos uma vez, (2) exercitam todas as decisões lógicas em seus lados verdadeiro e falso, (3) executam todos os ciclos nos seus limites e dentro de seus intervalos operacionais, e (4) exercitam as estruturas de dados internas para garantir sua validade.


B) TESTE DE CAMINHO BÁSICO

Técnica de teste caixa-branca

Permite ao projetista de casos de teste originar uma medida da complexidade lógica de um projeto procedimental e usar essa medida como guia para definir um conjunto básico de caminhos de execução.




- Complexidade ciclomática
E a métrica de software que fornece uma medida quantitativa da
complexidade lógica de um programa. Quando usada no contexto do método de teste de caminho
básico, o valor calculado para a complexidade ciclomática define o número de caminhos
independentes no conjunto base de um programa e nos fornece um limite superior para a
quantidade de testes que deve ser conduzida para garantir que todos os comandos tenham sido
executados pelo menos uma vez.

- CAMINO INDEPENDIENTE

Um caminho independente é qualquer caminho ao longo do programa que introduz pelo
menos um novo conjunto de comandos de processamento ou uma nova condição





C) TESTE DE CAIXA PRETA

Também chamado de teste comportamental, focaliza os requisitos
funcionais do software. Isto é, o teste caixa-preta permite ao engenheiro de software derivar
conjuntos de condições de entrada que vão exercitar plenamente todos os requisitos funcionais de
um programa.



############################# Inteligência Artificial
Linguagens Simbólicas. Programação em Lógica. Resolução de Problemas como Busca. Estratégias
de Busca, Busca Cega e Busca Heurística. Hill climbing, best first, simulated annealing e Algoritmo
A*. Busca como Maximização de Função. Grafos And/Or. Esquemas para Representação do
Conhecimento: Lógicos, em Rede, Estruturados, Procedurais. Sistemas de Produção com
Encadeamento para a Frente e Encadeamento para trás. Raciocínio Não-Monotônico. Formalismos
para a Representação de Conhecimento Incerto. A Regra de Bayes. Conjuntos e Lógica Fuzzy.
Aprendizado de Máquina. Aprendizado Indutivo. Árvores de Decisão, Redes Neurais e Algoritmos
Genéticos. Sistemas Especialistas. Processamento de Linguagem Natural. Agentes Inteligentes.
Robótica.

############################# Processamento de Imagens
Introdução aos Filtros Digitais. Métodos de Espaço de Estados. Noções de Percepção Visual
Humana. Amostragem e Quantização de Imagens. Transformadas de Imagens. Realce. Filtragem e
Restauração. Reconstrução Tomográfica de Imagens. Codificação. Análise de Imagens e Noções de
Visão Computacional. Reconhecimento de Padrões.


////////////////////// Compresion de imagenes

Dominio Transformado:
• Walsh • Hadamard• Haar• Slan
Dominio Conjunto Espacio/Frecuencia:
• DCT • LOT • Gabor • Pirámide de Laplace • QMF • WaveletDominio Espacial • KLT

1)Procesam.
2)Dependencia
3)Vel. Conv.
4)Esc./Orient.
5)Loc. Esp.
6)Ortog.
7)Dominio
8)Núcleo

- WALSH  (FWT)
nucleo Separable Inverso Simetrico, procesam secuencial
- HADAMARD  (FHT)
Separable Inverso Simetrico, procesam secuencial
- HAAR
Separable Inverso Simetrico, procesam secuencial
- SLANT
Separable Inverso Simetrico
-COSENO DISCRETO (DCT)
Separable Inverso Simetrico
-ORTOGONAL SOLAPADA (LOT)
Separable Inverso Simetrico
-GABOR
Separable, procesam secuencial
-PIRAMIDE LAPLACE
Separable, procesam secuencial
-DISCRETA DE WALEVET (DWT)
(relacionada con filtros especulares de cuadratura) - Separable Inverso Simetrico
-DISCRETA DE KARHUNEN-LOÈVE (KLT)
Inverso

http://eii.unex.es/profesores/jalvarof/pdf/masterispdi99.pdf


############################# Redes de Computadores
Tipos de Enlace, Códigos, Modos e Meios de Transmissão. Protocolos e Serviços de Comunicação.
Terminologia, Topologias, Modelos de Arquitetura e Aplicações. Especificação de Protocolos. Internet
e Intranets. Interconexão de Redes. Redes de Banda Larga. Segurança e Autenticação. Avaliação de
Desempenho.

/////////////////// TCP
3-Way handshake (apresentacao de 3 vias) es utilizado para establecer una conexion logica entre transmisor y receptor.

1 – Capa Física: se encarga de las conexiones físicas de la red. Define los medios físicos por
los cuales viajarán los datos, las características materiales y eléctricas que se usan en la transmisión de
datos, características funcionales de la interfaz, transmisión del flujo de bits en el medio, maneja las
señales eléctricas, garantiza la conexión, etc.

2 – Capa de Enlace de Datos:
se encarga del direccionamiento físico de la red. Del acceso al
medio, de la detección de errores, de la distribución ordenada de tramas y del control de flujo.

3 – Capa de Red:
El objetivo de la capa de red es hacer que los datos lleguen desde el origen al
destino, aún cuando ambos no estén conectados directamente. En este nivel se realiza el
direccionamiento lógico y la determinación de la ruta de los datos hasta su receptor final.

4 – Capa de Transporte:
se encarga de efectuar el transporte de los datos desde la máquina
origen a la de destino, independizándolo del tipo de red física que se esté utilizando.

5 – Capa de Sesión:
Esta capa es la que se encarga de mantener y controlar el enlace
establecido entre dos computadores que están transmitiendo datos de cualquier índole. Debe ser capaz
de que la conexión establecida se pueda efectuar para las operaciones definidas de principio a fin,
reanudándolas en caso de interrupción

6 – Capa de Presentación:
El objetivo es encargarse de la representación de la información, de
manera que aunque distintos equipos puedan tener diferentes representaciones internas de caracteres los datos lleguen de manera reconocible.

7 – Capa de Aplicación:
Ofrece a las aplicaciones la posibilidad de acceder a los servicios de
las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos, como
correo electrónico, gestores de bases de datos y servidor de ficheros, etc.


http://www.ie.itcr.ac.cr/marin/mpc/redes/Modelo_osi_tcp_ip(oficial).pdf



############################# Sistemas Distribuídos
Problemas Básicos em Computação Distribuída: Coordenação e Sincronização de Processos,
Exclusão Mútua, Difusão de Mensagens. Compartilhamento de Informação: Controle de
Concorrência, Transações Distribuídas. Comunicação entre Processos. Tolerância a Falhas.
Sistemas Operacionais Distribuídos: Sistemas de Arquivos, Servidores de Nomes, Memória
Compartilhada, Segurança.

//////////////////// Diferente de outros métodos de download peer-to-peer, o BitTorrent :

- Protocolo que descarrega parte do trabalho de rastreamento para um servidor central (chamado de tracker - rastreador).
- Utiliza um princípio chamado olho por olho.  Isso significa que, para receber arquivos,
deve-se também fornecê-los. Isso resolve o problema de leeching, um dos principais objetivos do desenvolvedor Bram Cohen (em inglês).
- Com o BitTorrent, quanto mais arquivos você compartilhar, mais rápidos serão os seus downloads.
- Para melhor uso da largura de banda da internet disponível (o canal para a transmissão de dados), o BitTorrent baixa diferentes partes do arquivo que você deseja, simultaneamente, de diversos computadores.

///////////////
http://informatica.uv.es/iiguia/2000/BD2/3_0_BD2Tema3_06.pdf

viernes, 26 de julio de 2013

CC Research

- literatura 1ria = arts cientif publicados en revistas
- literatura 2ria = libros, articulos de sintesis (review articles), resumen el conocimiento de un tema

-- La investigacion cientif termina con la publicacion en una revista cientifica.
-- Termina cuando el lector entiende el contenido.

Marketing Online

3 pilares : posicionam, inbound, outbound
---------

posicionamiento

 - en buscadores
 - crear una marca y posicionarla de manera organica en lugares donde una persona normal las vea a nivel natural

posicionamiento organico de la marca en un entorno (google)
en google se llama SEO

1- de marca
2- de keywords

---------------------

- trafico casual
- t. de intencion

---------------------

inbound marketing (lo q no se paga)

-enfocado a encontrar clientes
-push
-anuncios de tv
-anuncios en revistas
-spam


-enfocado a ser encontrado
-pull
ejemplo:
 - videos how to
 - blog propio con clientes q se suscriben

outbound maketing (ads, tv, radio, se paga)

Videojuego Desarrollo

1.JUGABILIDAD Y EXP DE JUGADOR

- Satisfacción. Agrado o complacencia del jugador ante el videojuego y el proceso de jugarlo.

- Aprendizaje. Facilidad para comprender y dominar el sistema y la mecánica del videojuego. Más adelante se indica cómo estos conceptos se definen en lo que se denomina Gameplay y que se construye durante el proceso de desarrollo del juego.

- Efectividad. Tiempo y recursos necesarios para ofrecer diversión al jugador mientras éste logra los objetivos propuestos en el videojuego y alcanza su meta final.

- Inmersión. Capacidad para creerse lo que se juega e integrarse en el mundo virtual mostrado en el juego.

- Motivación. Característica del videojuego que mueve a la persona a realizar determinadas acciones y a persistir en ellas para su culminación.

- Emoción. Impulso involuntario originado como respuesta a los estímulos del videojuego, que induce sentimientos y que desencadena conductas de reacción automática.

- Socialización. Atributos que hacen apreciar el videojuego de distinta manera al jugarlo en compañía (multijugador), ya sea de manera competitiva, colaborativa o cooperativa.

2. FACETAS DE JUGABILIDAD

-Jugabilidad Intrínseca. Se trata de la Jugabilidad medida en la propia naturaleza del juego y cómo se proyecta al jugador. Está ligada al diseño del Gameplay que se describe más adelante. La forma de valorarla pasa por analizar cómo se representan las reglas, los objetivos, el ritmo y las mecánicas del videojuego.

- Jugabilidad Mecánica. Es la Jugabilidad asociada a la calidad del videojuego como sistema software. Está ligada a lo que sería el motor del juego, haciendo hincapié en características como
la fluidez de las escenas cinemáticas, la correcta iluminación, el sonido, los movimientos gráficos y el comportamiento de los personajes del juego y del entorno, sin olvidar los sistemas de comunicación en videojuegos que incorporan un modo multijugador.

- Jugabilidad Interactiva. Es la faceta asociada a todo lo relacionado con la interacción con el usuario, el diseño de la interfaz de usuario, los mecanismos de diálogo y los sistemas de control.

- Jugabilidad Artística. Está asociada a la calidad y adecuación artística y estética de todos los elementos del videojuego y a la naturaleza de éste. Entre ellos estarán la calidad gráfica y visual,
los efectos sonoros, la banda sonora y las melodías del juego, la historia y la forma de narración de ésta, así como la ambientación realizada de todos estos elementos dentro del videojuego.

- Jugabilidad Intrapersonal (o Personal). Está relacionada con la percepción que tiene el propio usuario del videojuego y los sentimientos que le produce. Como tal, tiene un alto valor subjetivo.

- Jugabilidad Interpersonal (o de Grupo). Muestra las sensaciones o percepciones de los usuarios que aparecen cuando se juega en grupo, ya sea de forma competitiva, cooperativa o colaborativa. En relación a cualquier sistema interactivo con soporte para grupos, se relacionaría con lo que tiene que ver con percepción del grupo (o awareness de grupo).

3. CALIDAD DEL JUEGO EN BASE A LA JUGABILIDAD
4. ORGANIZACION

DISEÑO
- D. NIVELES
- D. ARTISTICO
- GUIONISTAS

DESARROLLO
- DISEÑADOR DE SW
- PROGRAMAC
--- P GRAF
--- P IA
--- P DE SW
--- P DE AUDIO
--- P DE RED

TEST Y QA
- QA JUGABILIDAD
- QA FUNCIONALIDAD
- QA LEGAL

MARKETING
- PUBLICISTA
- RELACIONES PRENSA

5. Capa independiente de la plataforma
6. Programación multihilo

- Capacidad de respuesta, ya que el uso de múltiples hilos proporciona un enfoque muy flexible. Así, es posible que un hilo se encuentra atendiendo una petición de E/S mientras otro continúa con la ejecución de otra funcionalidad distinta. Además, es posible plantear un esquema basado en el paralelismo no bloqueante en llamadas al sistema, es decir, un esquema basado en el bloqueo de un hilo a nivel individual.

- Compartición de recursos, posibilitando que varios hilos mane-
jen el mismo espacio de direcciones.

- Eficacia, ya que tanto la creación, el cambio de contexto, la destrucción y la liberación de hilos es un orden de magnitud más rápida que en el caso de los procesos pesados. Recuerde que las
operaciones más costosas implican el manejo de operaciones de E/S. Por otra parte, el uso de este tipo de programación en arquitecturas de varios procesadores (o núcleos) incrementa enormemente el rendimiento de la aplicación.

--------------------

ICE (Internet Communication Engine) es un middleware de comunicaciones orientado a objetos, herramientas, APIs, y soporte de bibliotecas para construir aplicaciones distribuidas cliente-servidor orientadas a objetos. Multiplataforma.

-------------------

7. AI
Ilusion de inteligencia - COMPONENTE INTELIGENTE(dificultad o reto)

NPC = Agente = Non-Player Characters

- Autonomía, de manera que un agent actúa sin la intervención
directa de terceras partes. Por ejemplo, un personaje de un juego
de rol tendrá sus propios deseos, de manera independiente al
resto.

- Habilidad social, los agentes interactúan entre sí y se comunican
para alcanzar un objetivo común. Por ejemplo, los NPCs de un
shooter se comunicarán para cubrir el mayor número de entradas
a un edificio.

- Reactividad, de manera que un agente actúa en función de las
percepciones del entorno. Por ejemplo, un enemigo reaccionará,
normalmente, atacando si es atacado.

- Proactividad, de manera que un agente puede tomar la iniciati-
va en lugar de ser puramente reactivo. Por ejemplo, un enemigo
feroz atacará incluso cuando no haya sido previamente atacado.

8. MULTIJUGADOR

El uso de SOCK_STREAM implica una conexión confiable que lleva asociado unos mecanismos de reenvío, ordenación, etc. que consume tiempo de procesamiento a cambio de garantizar la entrega en el mismo orden de envío. En el caso de SOCK_DGRAM no se proporciona confiabilidad con lo que el tiempo de procesamiento se reduce.

¿Qué tipo de comunicación empleo?, bien, en función del tipo de datos que estemos transmitiendo deberemos usar un mecanismo u otro. Como norma general todos aquellos datos en tiempo real que no tiene sentido reenviar irán sobre SOCK_DGRAM mientras que aquellos tipos de datos mas sensibles y que son imprescindibles para el correcto funcionamiento deben ir sobre SOCK_STREAM.

Algunos ejemplos de uso de ambos protocolos nos pueden clarificar qué usos se le dan a uno y otro protocolo. En las últimamente populares conexiones multimedia en tiempo real, por ejemplo una comunicación VoIP, se suele usar para la transmisión del audio propiamente dicho el protocolo Real Time Protocol (RTP) que proporciona una conexión no confiable. Efectivamente, no tiene sentido reenviar una porción de audio que se pierde ya que no se puede reproducir fuera de orden y almacenar todo el audio hasta que el reenvío se produce generalmente no es aceptable en las comunicaciones. No obstante, en esas mismas comunicaciones el control de la sesión se delega en el protocolo Session Initiation Protocol (SIP) encargado del establecimiento de la llamada. Este tipo de datos requieren de confiabilidad y por ello SIP se implementa sobre TCP.

----------------------------------------------

Podemos trasladar este tipo de decisiones al diseño de los módulos de networking de un determinado videojuego. Una vez decidida la información necesaria que se debe transmitir entre los diversos participantes, debemos clasificar y decidir, para cada flujo de información si va a ser mediante una conexión confiable no confiable.

Es difícil dar normas genéricas por que, como adelantamos en la introducción, cada videojuego es diferente, no obstante, generalmente se utilizará comunicaciones no confiables para:

- Aquella información que por su naturaleza, lleven el tiempo implícito en su validez como información. Generalmente toda la información de tiempo real como movimientos de granularidad fina, audio y vídeo, etc.

- Información que pueda ser inferida a partir de datos que recibimos antes o después. Por ejemplo, si el movimiento de un personaje se compone de varios movimientos intermedios y se puede inferir uno de esos movimiento intermedios a partir del resto (o incluso ignorar), esa información es candidata a ser transmitida mediante una conexión o confiable.

----------------------------
JUEGO FPS

Comunicaciones confiables
- Inscribir a un personaje en una partida gestionada por un servidor.

Comunicaciones no confiables
- Posicion del enemigo

.. Cada cambio en la posición y orientación del jugador debe generar una serie de mensajes al servidor que, a su vez, debe comunicarlo a todos los jugadores involucrados.

.. Al ser un tipo de información que se modifica muy a menudo y vital para el juego, se debe notificar con mucha eficiencia.

.. En principio la pérdida ocasional de algún mensaje no debería plantear mayores problemas si se diseña con una granularidad adecuada. La información perdida puede inferirse de eventos anteriores y posteriores o incluso ignorarse.

9. CONSIDERACIONES DE DISEÑO

a. Compresión de datos: La compresión de datos entendida como las técnicas destinadas de cara a reducir el ancho de banda necesario para el juego multijugador. Entre las técnicas utilizadas podemos citar

• actualizaciones incrementales, es decir, enviar a los clientes sólo y exclusivamente la información que ha cambiado con respecto a la última actualización enviada. En esta técnica, de forma general, cada cierto tiempo se envía un estado completo del mundo para corregir posibles pérdidas de paquetes.

• seleccionar el destino de la información transmitida en función de qué clientes se ven afectados por el cambio de estado de los objetos en lugar de transmitir toda la información a todos.

• agregación: envío de datos comunes a varios jugadores con un solo paquete gracias a por ejemplo, el uso de comunicaciones multicast.


b. Interpolación: La interpolación permite obtener nuevos estados del mundo virtual del juego en el cliente a partir de los datos recibidos del servidor. En función de la complejidad de estos nuevos estados siempre son una aproximación al estado que tendríamos si obtuviéramos eventos de estado del servidor a una altísima frecuencia. Esta técnica nos permite actualizar el estado del juego en el cliente mas a menudo que las actualizaciones enviadas por el cliente y, al mismo tiempo, poder inferir información perdida en la red.

c. Predicción: La predicción nos ayuda a obtener nuevos estados futuros del mundo virtual del juego en el cliente a partir de los datos recibidos del servidor. La diferencia con la interpolación es que la interpolación genera nuevos estados entre dos estados recibidos por el servidor de cara a la renderización mientras que la predicción se adelanta a los eventos recibidos por el servidor.
Para ello, el cliente puede predecir su movimiento en función de la entrada que recibe del usuario y sin que el servidor se lo comunique.

d. Compensación de intervalo: a pesar de las técnicas anteriores siempre las acciones cuentan con un retardo que se debe compensar, en la medida de lo posible, guardando los eventos recibidos por los clientes y sincronizando el estado del mundo de forma acorde a como estaba el mundo cuando el evento fue originado, es decir, eliminando el intervalo de comunicación.

----------------------------

10. DISEÑO MULTIJUGADOR

Cuando hablamos de programación multijugador es necesario la gestión de varios clientes de forma simultánea. Existen dos alternativas a la atención de peticiones simultáneas de diversos clientes:

- Crear un nuevo proceso por cada petición. El socket servidor recibe una petición de conexión y crea un socket de servicio. Este socket de servicio se pasa a un proceso creado de forma expre-
sa para atender la petición. Este mecanismo desde el punto de vista del diseño es muy intuitivo con la consiguiente ventaja en mantenibilidad. De igual manera, para sistemas que sólo tienen un sólo procesador, este sistema adolece de problemas de escalabilidad ya que el número de cambios de contexto, para números considerables de clientes, hace perder eficiencia a la solución.

- Utilizar un mecanismo que nos permita almacenar las peticiones y notificar cuando un cliente nos manda una petición al servidor.


12. Multicast y Broadcast

Existen otros paradigmas de comunicación como son las comunicaciones uno a muchos (Multicast) y uno a todos (Broadcast).

En el caso de comunicaciones Multicast, el servidor comunica a un grupo de clientes identificados por un identificador (en IP existen un grupo de direcciones especiales para identificar estos grupos) de forma común algún dato de su interés.

Este tipo de comunicación es mucho mas efectiva ya que substitu-
ye, para un grupo de n clientes, a n conexiones unicast. En el caso de las comunicaciones Broadcast la comunicación se establece dentro de una subred entre el servidor y todos los computadores de ese dominio.

13. Eficiencia y limitaciones de la red

- P2P (peer to peer). Varias instancias idénticas del programa colaboran intercambiándose información. Un caso típico son los juegos multijugador de los 90, diseñados para ejecutarse en una LAN.

- Cliente-servidor. Muchos jugadores se conectan a un único servidor que controla el juego y tiene la imagen global de lo que ocurre. Esta arquitectura desacopla en muchos casos el desarrollo del juego y las interacciones entre los jugadores simplificando las tareas de la parte cliente.

- Pool de servidores. Cuando la cantidad de jugadores es muy grande (cientos o miles) se utilizan varios servidores coordinados de modo que se pueda balancear la carga. Sin embargo, su sincronización puede ser compleja.


14. Restricciones especificas de los juegos en red

- Capacidad de cómputo
- Ancho de banda
- Latencia

15. Modelo de información

- Centralizado, Es el modelo más sencillo. Un único componente (el servidor)

- Replicado, En este caso, varios (incluso todos) los participantes en el juego tienen una copia del mundo virtual. Eso implica la necesidad de sincronizar esa información entre los participantes.

- Distribuido, Cada participante tiene una parte del estado global del juego, normalmente la que más le afecta, de modo que se reducen los mensajes necesarios para determinar la situación de
cada jugador.

16. Uso de recursos de red

- El número de mensajes transmitidos.
- La cantidad media de destinatarios por mensaje.
- El ancho de banda medio requerido para enviar un mensaje a cada destinatario.
- La urgencia de que el mensaje llegue a cada destinatario.
- La cantidad de procesamiento necesario para procesar cada mensaje entrante.

17. Predicciones y extrapolación

18. MIDDLEWARE DE COMUNICACION

http://www.cursodesarrollovideojuegos.com/

jueves, 18 de julio de 2013

Revistas

http://compuscientia.com

  • Límite para recepción de contribuciones: 25 de Agosto.
  • Notificación de artículos aceptados: 2 de Octubre.
  • Envío de versión final de artículos aceptados: 17 de Octubre.

miércoles, 8 de mayo de 2013



LEAN STARTUP


Business-to-business, B2B
Business-to-consumer, B2C


  • Aún no he hablado con clientes, ya lo haré cuando salga el producto
  • Vender no es nuestra prioridad
  • Crearemos un nuevo mercado
  • Es fácil conseguir y formar un buen equipo
  • La competencia no tiene ni idea
  • El plan de negocio debe ser perfecto
  • El producto será un éxito porque sé exactamente lo que quiere el cliente
  • No puedo hacer nada sin financiación
  • Puedo sacar mi proyecto adelante con ratos libres
  • La idea es la clave, y la mía es perfecta
  • Debemos dedicar tiempo a buscar subvenciones
  • Seguro que triunfamos a la primera
  • Tengo que ir a todos los “saraos”
  • Mejor no contar mi idea a nadie, igual me la roban
  • Hay que crear muchas barreras de entrada
  • El cliente no tiene ni idea de lo que quiere
  • Hasta que el producto no esté perfecto no lo voy a sacar
  • Voy a invertir todo lo que tengo en esta idea
  • Si a la primera no sale, me dedico a otra cosa
  • Preveo que capturaré un x% del mercado
  • En cuanto consiga “pasta” nos mudamos a una oficina elegante
  • Las ventas son aburridas, mejor consigo clientes con twitter sólo
  • Hasta dentro de 2 meses no sabremos si hemos dado en el clavo
  • El equipo son empleados y ya tienen suficiente motivación con su salario
  • No pasa nada aunque no nos llevemos muy bien entre los socios
  • Lo importante es hacer, no hay que planificar absolutamente nada
  • He construido algo genial, alguien vendrá a comprarlo
  • Como este modelo le funcionó a X en USA, a mi también me funcionará
  • Si no lo hago yo, no está bien
  • Cuando tengamos suficientes clientes alguien vendrá y nos comprará

miércoles, 24 de abril de 2013

Startups


Fundación Romero ??
"PARA QUITARSE EL SOMBRERO" 
Promueve las iniciativas empresariales en los jóvenes peruanos.

Bases del concurso

Universidades e Institutos

18 y 35 años.

Nacionalidad Peruana

Matriculado y estudiando en tus respectivas universidades
e institutos superiores.
No podrán participar aquellos jóvenes egresados o aquellos
que hayan decidido postergar sus estudios.

Grupo: 2-5

1 Representante - lider --> coordinaciones y gestiones


Plan de negocio inicial
----------------------

Podrá ser corregido por un asesor o docente,
se puede mejorar, modificar y completar hasta el 31 de mayo.

Después de eso, será inalterable.
En la segunda y tercera etapa deberán ampliar detalles del plan,
según se solicitará en dichas etapas.

Propuesta de negocio
----------------------

Producto o servicio terminado para su demostración ante el
jurado en la feria nacional que se llevará a cabo en Lima.
No es necesario que tenga ventas o que haya sacado RUC para el negocio.


El dinero del premio será utilizado exclusivamente para la
realización de proyecto o idea de negocio ????


ETAPAS
-----------------------

Etapa 1: Inscripción de proyectos en todos los departamentos
-------------------------

Debes confirmar que tu proyecto está terminado al 100%
para enviarlo asegúrate que todo esté bien ya que luego
no podrás hacer ningún cambio.

A cada institución por medio de un coordinador se le otorgará
un código de acceso para a la revisión, evaluación y calificación
de los planes de negocio en la primera etapa del concurso
(jurado interno) siguiendo los criterios preestablecidos.


Etapa 2: Concurso regional
-------------------------

Agregan preguntas para complementar el plan de negocio.
Estas deberán ser completadas para que el plan sea considerado.
En esta fase se contará con un jurado regional (gobierno regional,
municipalidad y cámara de comercio), que calificará el proyecto
y el reto según los criterios establecidos.

El peso de esta calificación corresponde al 80%.

El 20% restante se obtendrá de votación en línea del público a
favor del plan de negocio. Dicha votación se llevará a cabo
en el portal web del concurso.

Luego de todo este proceso se seleccionará los mejores proyectos.

Etapa 3: Final concurso nacional
-------------------------

En esta fase se agregarán preguntas para complementar el
plan de negocio. Estas deberán ser completadas para que el
plan sea considerado.

Se contará con un jurado nacional, que calificará el proyecto
según los criterios establecidos por la Fundación Romero.
El peso de esta calificación corresponde al 80%.

Luego de esto, el proyecto ingresa a la votación en línea
del público en general que corresponde al 20% restante del puntaje.

Feria Nacional - Lima

Se contará con la participación del líder o representante del equipo.
La Fundación corre con los gastos de viaje y estadía.

Luego de todo este proceso se seleccionará a los ganadores nacionales.

El premio se distribuirá por categorías y sustentación financiera.


CRONOGRAMA
-----------------------


PRIMERA ETAPA Del 3 de Abril al 26 de junio
Inscripción de Planes de Negocio Del 12 de abril al 31 de mayo
Evaluación de los proyectos a cargo del jurado Del 01 al 21 de junio
Publicación de Resultados de cada institución Del 24 al 26 de junio
 
SEGUNDA ETAPA Del 28 de junio al 12 de agosto
*Ampliación de los planes de negocio Del 28 de junio al 12 de julio
Evaluación del jurado regional Del 13 al 26 de julio
Votación online en www.paraquitarseelsombrero.pe Del 13 al 26 de julio
Declaración de ganadores 12 de agosto
 
TERCERA ETAPA - CONCURSO NACIONAL Del 13 de agosto al 18 de octubre
*Ampliación de los planes de negocio Del 13 de agosto al 23 de agosto
Evaluación del jurado Del 24 de agosto al 13 de setiembre
Votación online en www.paraquitarseelsombrero.pe Del 14 de setiembre al 17 de octubre
Feria Nacional Del 16 al 17 de octubre
Premiación de ganadores 18 de octubre

---------------------------

Criterios de evaluación...

http://concursopqs.mass.pe/bases-y-cronograma/bases

sábado, 30 de marzo de 2013

Computer Vision - OPENCV GSOC 2013

LineMod - 3D object recognition software

Next important dates:
  • March 18th-29th: Organization Application deadline.
  • April 8th: Announcement of GSoC Mentoring Orgs. (whether we're in or out)
  • April 9th-21st: POTENTIAL INTERNS: Discuss project ideas with us 
  • April 22-May 3rd: Application period
  • May 8th: Slot allocations published
  • May 22nd 12-1PST Dedup meeting
  • May 27th Final project decisions are made
  • June 17th: Let's start coding !!!

Project Idea summary

April 9th-21st: Discuss projects below or other ideas with us 
Students may propose their own projects


- Mobile vision app development
Clear "hello world" type of example to make it easier for the rest to start developing mobile vision applications. ios o android examples

-Computational Photography
SUpport mobile cameras on tablets and phones
  • noise estimation and reduction,
  • tilt-shift images and movies,
  • multi-focal point images,
  • high dynamic range images by composition with different shutter times

Vision Applications:
working functionality.

OpenCL Optmization

Mech Turk Interface
  • Easily label images for train test in OpenCV ???

1D and 2D Barcode readers
- We have a basic datamatrix reader. Expand to other kinds of barcodes (1D, other 2D).

Natural barcodes
OpenCV can read calibration patterns. Calibrate a camera, rectify it's output. Put a picture next to a calibration pattern in a scene. Find 2D interest points with features2D. Measure them in the image using the calibration pattern. Use the pattern of interest points and their measures to turn the picture into a calibration pattern/barcode so that the computer recognizes the picture and knows where it is in relation to the iamge.

  • Stretch goal, embeded and retrieve watermarks in the image.

Python examples

Tutorials
Continue with OpenCV Tutorials

Inverted index
create an inverted index of functionality to functions  ---- FACIL

more Qt integration ----PREGUNTAS


SfM integration:
  • Ceres integration (we need some BA stuff). It depends on Eigen but they just changed their license and that could be a micro-module

Matlab integration:  --- PREGUNTAR
  • we could have somebody writing samples/testing the latest wrapper. Needs: OpenCV knowledge a bit, Python knowledge. Write a script
    that takes output from parser (list of classes/methods/functions) and generates C code that is Matlab wrappers (mex knowledge). Find solution to deal with row-major/col major
multi-camera calibration:
  • that should be its own micro-module

RGBD functions:   ---PREGUNTAR
  • We already have normal, plane finder, ICP, we could have more maybe: octrees, plane-plane ICP, depth cleaner ...
Full LINE-MOD implementation:   ----- NO
  • That would focus on the ACCV paper for pre/post processing

Course-ware:   --- PREGUNTAR
  • We want to start offering vision courses using OpenCV.
    • If you are expert in a topic (say it's your area of graduate research, or you've just finished a project or course in a particular topic and can explain it well)
    • Write up the topic, the math and then develop a step by step example of it using OpenCV.

Generic numerical optimization module:
  • We want to have the package of general purpose optimization methods that can be easily used in computer vision algorithms (ex. downhill simplex method, annealing particle filter).
  • This will require a mathematically inclined student and/or one who has taken course work in the area obviously

PYTHON
Expose OpenCV GPU functionality into Python API 
  • Current Python OpenCV wrappers use cv::Mat <=> Numpy array mapping for passing data between C++ and Python worlds. Aim of this project is to adopt PyCuda GPUArray as a counterpart of GpuMat.
  • This would allow to extend cv2 wrapper generator to expose CUDA-powered OpenCV functions.
  • Project requires good knowledge of C++ and Python and willingness to dive into the internals of OpenCV, Python and PyCuda.
  • Expect all sorts of gotchas, subtle issues and design discussion with mentors.
  • The resulting design decisions can be used to wrap the OpenCV's OpenCL functionality with PyOpenCL

GSOC OPENCV APPLICATION - ORG


MENTORES

Anatoly Baksheev
 Researcher, Vision Algorithms on GPU
 Argus/Itseez
 
Serge J. Belongie
 Professor Computer Science and Engineering 
 University of California, San Diego 
 
Alexander Bovyrin
  PhD, Senior Researcher
  Argus/Itseez founder
  NNU Lecturer
  
Gary Bradski
 Founder, Industrial Perception Inc.
 Consulting Prof. Stanford U.
 OpenCV Founder, Technical Content Owner, GSoC Admin
 Co-author of Learning OpenCV Book
 http://www.willowgarage.com/pages/people/gary-bradski-senior-researcher
 
Victor Eruhimov
 OpenCV founding team/Senior Researcher
 Argus/Itseez founder
 NNU Lecturer
 
Adrian Kaehler
 Principle Engineer, Applied Minds
 Co-author of Learning OpenCV Book.
 
Peter Karasev
 PhD Student, MINERVA Research Group
 Georgia Tech
 
Kurt Konolige
 Founder, Industrial Perception Inc
 Consulting Professor, Stanford CS
 
Caroline Pantofaru 
 Researcher Scientist in perceiving people
 http://www.willowgarage.com/pages/people/caroline-pantofaru-research-scientist
 
Vadim Pisarevsky
 OpenCV founding team/Czar
 
Vincent Rabaud
 Research Engineer/Perception, Willow Garage
 
Ethan Rublee
  Founder, Industrial Perception Inc
 Ported OpenCV to Android
 See Android vision apps under "Robot view" or "the vegan robot" 
 
Eric Christiansen
 PhD Student, UCSD
 

Back up Mentors

Mark Asbach
 Fraunhofer IAIS
 Schloss Birlinghoven
 Sankt Augustin, Germany
 http://mmprec.iais.fraunhofer.de/asbach.html
 
Nicolas Saunier, Ph.D.
 Assistant Professor
 Civil, Geological and Mining Department (CGM)
 École Polytechnique de Montréal
 http://nicolas.saunier.confins.net
 
Alexander Mordvintsev
 Software Engineer
 http://znah.net