El blog de los Ingenieros en TI

Código Fuente, links, tareas, proyectos, exámenes....qué mas le vas a pedir a la vida?

Acerca de:

El espacio para compartir material que necesitas en la carrera de Ingeniería de Sistemas y en tu vida profesional.

El objetivo del blog es ayudarte como estudiante a prepararte mejor para los exámenes, proyectos y demás situaciones que enfrentes durante la carrera. Asi mismo es una herramienta de consulta para los profesionales en TI.

Material y sugerencias: ingenierosTI@gmail.com


Diccionario con cosas típicas que dicen los usuarios, y lo que en realidad quieren decir.




Ahora sí, ya es oficial, felicidades a la Generación 2008 de Ingenieros de la UAM. Tras largos años de estudio, madrugadas, proyectos y demás, diciembre del 2008 es el mes donde se concretó el cierre del plan de estudios para estos estudiantes que dieron lo mejor de sí por un sueño: Ser Ingenieros!

A continuación los nombres de los Ingenieros, así como fotos y videos de las celebraciones....

Ing. Mauricio Araya
Ing. Laura Pérez
Ing. Vanessa Quesada

Ing. Daniel Cordero
Ing. Allan Monge
Ing. Marcelo Parker
Ing. Phillip David
Ing. Juan José Villalobos
Ing. Esteban Vargas
Ing. Carlos Cerdas
Ing. Andy Quesada
Ing. Fernando Pérez



Quién falta??? Que avise para incluirlo!!!

Normalmente redactamos correos electrónicos o escribimos por el messenger asuntos delicados con algún compañero de trabajo o amigo y utilizamos frases como las citadas a continuación. Hay que ponerle mucho cuidado de ahora en adelante pues por un descuido o ignorancia podrías desde perder tu trabajo hasta ser demandado.

1- "Me puedo meter en problemas por decirte esto, pero..."
2- "Borre este correo inmediatamente"
3- "No debería escribir esto"
4- "No le digas a fulanito" o "No le envies esto a fulanito"
5- "Ella/él/ellos nunca lo van a saber"
6- "vamos a hacer esto diferente de lo normal"
7- "No creo que yo debería saber esto, pero…"
8- "No quiero discutir esto por correo. Por favor llamame"
9- "No preguntes, no querrá saber"
10-"Esto es legal?"

Las frases citadas anteriormente llaman la atención al uso que le damos al correo electrónico o la mensajería instantánea de nuestra empresa principalmente. Estas frases son buscadas por investigadores, abogados, y personal de Recursos Humanos para identificar un mal comportamiento corporativo.

Todo el mundo utiliza el e-mail y la IM de una forma descuidada debido a que es muy fácil y conveniente pero te podría meter en problemas. Problemas como perder el empleo si tu empleador sabe que estas compartiendo información confidencial de la empresa. Inclusive, hasta utilizar el correo electrónico corporativo para enviar mensajes que denigren la integridad de algún empleado, acerca de sus tendencias sexuales o religión.

Mucha gente dirá: "Yo no estoy rompiendo las leyes. No estoy haciendo fraude, solo uso el correo como cualquier otro empleado lo hace" Pero la realidad es que de acuerdo a las políticas de cada empresa, podrías ser sancionado por el contenido del correo o la mensajería instantánea.

Leer artículo original completo en inglés

Lo que ahora representan los celulares para mucha gente...


Al principio, los grandes “ladrillos” apenas si servían para hablar, con interferencias, con corte de llamadas cuando cambiabas de célula, con poca duración de batería, en fin, eso fue hace unos 15 años aproximadamente. Hoy, a punto de que termine el 2008, nos damos cuenta que el celular, además de que llegó para quedarse en definitiva, ha venido reemplazando a varios dispositivos y accesorios que simplemente nunca se imaginó se pudieran integrar en un solo aparatito. Veamos algunos de ellos.


Reloj de pulsera. No es que la industria relojera internacional vaya a desaparecer a fin de año, pero sí es un hecho que todos los relojes económicos, esos que sólo están diseñados para dar la hora, verán sus días contados. Por supuesto seguirá la venta de los modelos de moda, los escandalosamente costosos y algunas piezas de precisa ingeniería, pero cada vez más la gente consultará la hora en el celular.


Reloj despertador. Parecido a lo anterior, las funciones de alarma de cualquier celular vienen a reemplazar a los típicos despertadores –de cualquier tipo- que normalmente se colocan junto a la cama. Son más versátiles y nunca, de los nuncas se nos olvidará conectarlos por la noche para recargar la batería.


Cámara. Casi todas las fotografías serán tomadas con el celular. Por supuesto si la ocasión es especial seguiremos usando una cámara en forma, pero para la foto de la reunión, de la ocasión, del amigo o de la amiga, esa que de repente se nos ocurre, el celular con resoluciones de 5 megapixeles cumplirá con el objetivo sin mayor problema.


GPS. Estos aparatos que nos dicen por donde llegar al destino son excelentes. Pero si realmente conocemos la ciudad donde vivimos y pocas veces estamos manejando a direcciones desconocidas, el uso ocasional del GPS del celular nos salvará del problema y, ojo, la información siempre llega en tiempo real, la actualización es en línea, no cada semestre o año como sucede con los GPS tradicionales.


Agenda y directorio. Ni que decir. Hace años que no memorizo ni un solo teléfono. Ya no se usa. Lo de hoy es acordarse por lo menos del nombre del tipo… ya con eso el celular se encarga de lo demás. Igual para las citas…


Reproductor MP3. Controversial, como siempre, pero creo que los millones y millones de iPods no serán renovados por modelos más actuales, sino por celulares con mejores prestaciones para música grabada en MP3 o similares.


Radio tradicional. Además de que el celular tenga sintonizador FM para las estaciones locales, con las redes 3G es seguro que escucharemos estaciones y programas de todo el mundo usando la conexión de Internet del teléfono. Ahora suena una idea un poco descabellada, sin embargo, excepto el radio del automóvil, todos los demás tienden a desaparecer rápidamente. Es increíble la cantidad de estaciones que ya transmiten por Internet y, claro, las opciones de stream que encontramos por miles en diversas páginas.


Mucha gente usa su celular –por muy poderoso que sea- sólo para hablar por teléfono, enviar mensajes de texto y, claro, como directorio telefónico. Sin embargo, con el paso de los años y los avances que veremos, estoy seguro que poco a poco será mucho más natural consultar la hora en la pantalla del teléfono, por ejemplo. Así es que, habrá que dotarlos de un buen sistema de respaldo en línea, automático, constante, ya que perderlo, significará mucho más que sólo no poder hacer llamadas.


A continuación una lista de profesores y materias para abarcar dudas sobre proyectos y demás temas.
PRONTO....


La Escuela de Ingeniería de la Universidad de Stanford, con el aporte de Sequoia Capital, ha creado un programa llamado Stanford Engineering Everywhere (SEE), a través del cual en un principio ha decidido publicar 3 cursos introductorios a las Ciencias de la Computación y 7 cursos avanzados de Inteligencia Artificial e Ingeniería Eléctrica.

Los cursos han sido publicados en video y se pueden ver online desde el mismo sitio de la universidad, aunque también están disponibles en YouTube, iTunes y para ser descargados mediante BitTorrent. Sin embargo, el material no sólo está limitado a videos, también es posible descargar las transcripciones de estos, material de apoyo, tareas para la casa, ejercicios resueltos y exámenes.

Todos estos recursos están bajo licencia Creative Commons, por lo tanto con sólo citar al autor de los mismos es posible utilizarlos y modificarlos sin fines comerciales.

Vale decir que de Stanford salieron personajes como Larry Page y Sergey Brin (Google), Jerry Yang (Yahoo) y Steve Ballmer (Microsoft) por nombrar algunos de los más conocidos hoy en día.

Una propuesta más que interesante para aquellos que gustan de estos temas, y teniendo en cuenta el costo que tiene asistir a una universidad en Estados Unidos, es una oportunidad para no dejar pasar.


A veces queremos ir a "jugar bola" o cualquier otro deporte, el típico "ir a mejenguear" y no tenemos con quién o como casi siempre: nos falta gente....... Pues ahora existe Sportsvite.com es una red social dedicada a reunir gente que practica cualquier deporte y así encontrar compañeros de equipo organizar retos.

La página permite crear un perfil personal con sus preferencias deportivas como posición que juegua, estado físico, nivel de juego, disponibilidad de horario y hasta fotografías y videos.
Sportstive permite anunciarse como si fueran anuncios clasificados para buscar compañeros o rivales.

Tambien se pueden crear eventos deportivos para especificar fecha, hora y lugar de un partido y los jugadores convocados reciben un mensaje del organizador para que confirme su asistencia o rechazarla de manera que se puedan seguir buscando nuevos jugadores.
Inclusive se puede crear un equipo regular, como por ejemplo el de los Ingenieros de la UAM, creado por nosotros para probar el sitio y ver la posible respuesta que tenga esta página en tiquicia ya que es importante aclarar que la página de momento solo esta en inglés.

Links:

http://costarica.sportsvite.com/
http://costarica.sportsvite.com/teams/ingenierosuam


Para el último cuatrimestre aparecieron nuevamente los "Manguinhos FC" con un cuadro de lujo que prometió y cumplió fielmente jugar como nunca y perder como siempre.

La cita fue el viernes 17 de octubre a las 9:00 PM en las instalaciones de DX 5, detrás de la Fabrica de Trofeos en San José.

El encuentro quedó ligeramente en ventaja del equipo que por fin ganó.

Según nos consultó una fuente confiable, existe la posiblidad de un encuentro contra la gente de Terapia Física de la UAM, así que este fue un partido importante para afinar detalles previos al lanzamiento y cosecha de éxitos de los Ingenieros de la UAM.
Si sos Ingeniero o estudiante de Sistemas de la UAM apuntate para la próxima mejenga AQUI. Si querés jugar contra nosotros pide reto AQUI.

Alineación:

1- Edwin "Abubu"
2- Fer
3- Mau Salas
4- Charlie Fallas
5- Allan Monge
6- Johnatan Escobar
7- Daniel "Racsito"
8- Esteban Vargas
9- Jimmy Arias
10- Un compita de forro...

Tercer tiempo? No hubo en esta ocasión... :( Sin embargo hubo un precalentamiento en los pooles de San Pedro donde como jugadores de pool somos excelentes programadores....

Fotografías de la fecha. PRONTO....

No vamos a inventar el agua tibia, gracias a un muy buen tutorial de Web Taller nos muestra paso a paso como lograr montar una red con Windows XP.

La Mayoría de las personas que tienen computadora en su casa precisamente tienen solamente una, para qué más se preguntarán algunos
. Sin embargo, por motivos de trabajo, comodidad o solo por presumir, en ocasiones se cuenta con dos o tres equipos de cómputo en casa ya sean portátiles o de escritorio y es fundamental que estos se comuniquen entre sí.

También para cuando nos salga un "camarón" el fin de semana necesitaremos saber cómo montar toda una red y ganarnos unos coloncillos de más.

Link al tutorial


Si necesitas una fuente de inspiración para diseñar en Flash, o se te metió alguna vez en la cabeza ser diseñador en Flash, te recomiendo que visites The FWA: Favorite Websites Awards donde todos los días se actualizan las mejores páginas con los mejores diseños en entorno Flash.

No me crees? He aqui este ejemplo...seguro que es un Excel....jejeje, o este otro para que cambies de tennis.... las de los pies!, o qué tal este para ver fotos un rato.... Adicionalmente podés encontrar wallpapers para tu máquina y basta decir que debido a que estas son páginas muy pesadas hay que darles tiempo para que carguen, sin embargo, vale la pena esperar para ver tal clase de creatividad al diseñar.


Las más famosas redes sociales que conocemos tal vez sean Hi5, Facebook y Myspace las cuales consisten básicamente en perder el tiempo y subir fotos para hacer amigos o darse a conocer.

Existen otras redes profesionales como Xing o la creciente y recomendada LinkedIn que ayudan a formar redes de profesionales en diversas ramas para compartir entre colegas de todas partes del mundo.

De este último tipo de redes aparece debug_mode=ON una red social dedicada a centrarse en el tipo de personas aficionadas a la programación, el diseño web, las nuevas tecnologías y demás.

Visita la página de
debug_mode=ON, probablemente te saque de un apuro con algun proyecto de la U y hasta conozcas colegas que hablan tu propio idioma.

Esta iniciativa apenas comienza y solo el tiempo dirá si se convierte en un éxito y un recurso imprescindible de los informáticos. Suerte!

Creo en un solo lenguaje de programacion, "C" Todopoderoso.

Creador de Unix y de Linux.

Creo en un solo senor "C++", hijo unico de "C"

Nacido de "C" antes de "Visual C++"

"C" de "C", "C"ompilador de "C"ompilador, "(c)"opyrighted de "(c)"opyrighted

Compilado, no creado, de los mismos programadores que el padre.

Por quien todo es programado.

Y de nuevo vendra mejorado para juzgar a virus y programas Y su dominio no tendra fin.

Creo en el lenguaje binario, señor y base del sistema.

Que precede al padre y al hijo.

Que con el padre y el hijo recibe una misma aplicacion y memoria

Creo en el Procesador Alpha, que es uno, veloz y poderoso.

Amen.


Cortesía de Vanessa!

Tal como lo anunció, Google lanzó su más reciente producto: un navegador de Internet denominado Google Chrome, que promete ser más veloz, seguro y estable que los demás productos que actualmente existen en el mercado. 

La versión Beta de Chrome está disponible en más de cuarenta idioma, incluido el español. 

"El diseño minimalista del navegador Google Chrome permite un uso más rápido, fácil y seguro de la web", afirma Google en su página de presentación que cuenta con información sobre su desarrollo. 

Del mismo modo, destaca sus principales funciones y ventajas: navegación por pestañas, accesos directos a aplicaciones, control de fallas, modo incógnito, seguridad, marcadores instantáneos, importación de configuración, descargas más simples, entre otras. No queda más que probarlo y será cuestión de gustos, seguridad y tiempo si este nuevo producto nos cautiva.

Si por mera casualidad estas formateando/ instalando XP y te aparece el mensaje:
Para instalar windows XP en la partición seleccionada, el programa de instalación debe escribir algunos archivos de inicio en el disco siguiente:

Disco 38163MB en Id. 1 en bus 0 en atapi [MBR]

Sin embargo, este disco no contiene una partición compatible con Windows XP.

Para continuar con la instalación de Windows XP, regrese a la pantalla de selección de la partición y cree una partición compatible con windows XP en el disco anterior. Si no hay espacio disponible en el disco, elimine una partición existente y luego cree una nueva.

Para regresar a la pantalla de selección de la partición, presione ENTRAR" Te recomiendo lo siguiente:

Es muy probable que tengas más de un disco duro conectado a tu PC, inclusive que tengas o hayas tenido instalado algún sabor de Linux también. Si es así prueba desconectando la alimentación a corriente del disco donde NO vas a instalar el XP, reinicia y listo!

Publicado por Fer, Ingeniero de la Uam.

En ocasiones hablamos tan mal de Microsoft que olvidamos lo bien que nos hace a veces. Y la oportunidad que tenés aqui no la podes dejar pasar.

Si querés capacitarte en el Visual Studio 2005 y demostrar lo que aprendiste en la U, matriculate gratis en la certificación online de Microsoft y estudia el material que compone el programa completo como Desarrollador 5 estrellas.

La estrella cero abarca los fundamentos de programación y el nivel se incrementa hasta ansiar la quinta estrella abarcando temas como el desarrollo de aplicaciones ASP. NET AJAX, el Framework 3.0 y demás.

No perdás tiempo y suerte, recordá que la U no lo es todo y cualquier valor agregado que podás darle a tu carrera de Ingenier@ se convertirá en $$$ y satisfacción.


Una variable es un identificador que guarda un valor que puede ser modificado a lo largo del programa, por ejemplo asignarle a la palabra "edad" el valor "39". El concepto de constante, es algo que permanece inalterable a lo largo del programa. Por ejemplo podemos asignarle a la palabra "euro" el valor 166,386.

Las variables son "nombres" que pueden contener un valor, ya sea de tipo numérico como de cualquier otro tipo. Esos nombres son convenciones que nosotros usamos para facilitarnos las cosas, ya que para los ordenadores, una variable es una dirección de memoria en la que se guarda un valor o un objeto.

Existen distintos tipos de valores que se pueden asignar a una variable, por ejemplo, se puede tener un valor numérico o se puede tener un valor de tipo alfanumérico o de cadena, (string), pero en cualquier caso, la forma de hacerlo siempre es de la misma, por ejemplo si queremos guardar el número 10 en una variable, haremos algo como esto:

i = 10

En este caso i es la variable, mientras que 10 sería una constante, (10 siempre vale 10), la cual se asigna a esa "posición" de memoria a la que llamamos i, para facilitarnos las cosas... ya que, realmente no nos interesa saber dónde se guarda ese valor, lo único que nos interesa es saber que se guarda en algún lado para en cualquier ocasión poder volver a usarlo.

Al ser una variable podemos alterar su valor, por ejemplo, si en cualquier ocasión posterior hacemos esto: i = 25, el valor de la variable i cambiará, de forma que el valor anterior se modificará y el que se almacenará será el nuevo.

También podemos aplicar expresiones al asignar una variable, una expresión es un cálculo que queremos hacer, por ejemplo: i = x * 25, en este caso x * 25 se dice que es una expresión, cuyo resultado, (el resultante de multiplicar lo que vale la variable x por la constante 25), se almacenará en la variable i.

Si x vale 3, (es decir el valor de la variable x es tres), el resultado de multiplicarlo por 25, se guardará en la variable i, es decir i valdrá 75.

Cuando se asignan valores de cadenas de caracteres ó alfanuméricos (string) el contenido de la variable debe ponerse entre comillas "". Para asignar una cadena de caracteres a una variable, se haría algo como esto: s = "Hola"

De esta forma, la variable s contiene el valor constante "Hola". Podemos cambiar el valor de s, asignándole un nuevo valor: s = "adiós".


Ver todo el artículo...


Pero no es suficiente saber qué es una variable, lo importante es saber cómo decirle al VB.NET que queremos usar un espacio de memoria para almacenar un valor, ya sea numérico, de cadena o de cualquier otro tipo. Para esto utilizaremos las declaraciones de variables. La declaración de una variable es el proceso por el que le decimos s VB.NET que cree una variable y le indicaremos su nombre y su tipo. Es necesario, aunque no obligatorio, declarar las variables según el tipo de datos que va a almacenar. Esto es una de las cosas que mas nos pueden chocar al principio de VB.NET (en general de VB): las variables podemos declararlas o no.

Ya hablaremos de esto mas adelante pero si no hace falta declararlas... ¿para qué tanta teoría e instrucciones? Bueno pues porque existen las dos posibilidades y la de no declarar variables puede ser muy cómodo al principio pero muy complejo mas adelante. Las normas del buen programador obligan a declarar todas las variables que utilicemos en el programa. Esto puede dar un poco mas de trabajo pero es imprescindible para escribir un buen código.

Para declarar una variable utilizaremos las palabras clave: DIM, PRIVATE, PUBLIC ó STATIC, dependiendo de cómo queremos que se comporte.

Por ejemplo, en el caso anterior, la variable i era de tipo numérico y la variable s era de tipo cadena. Esas variables habría que declararlas de la siguiente forma: (después veremos otras formas de declarar las variables numéricas)

Dim i As Integer
Dim s As String

Con esto le estamos diciendo al vb.NET que reserve espacio en su memoria para guardar un valor de tipo Integer, (numérico), en la variable i y que en la variable s vamos a guardar valores de cadena de caracteres.


Existe un tipo de datos para los valores numéricos y otro para los alfanuméricos... ahora veamos en una tabla todos los tipos existentes y comentaremos cuales debemos utilizar:

Tipos de datos de Visual Basic.NET y su equivalente en el Common Language Runtime (CLR)

Tipo de Visual Basic Tipo en CLR
(Framework)
Espacio de memoria que ocupa Valores que se pueden almacenar
y comentarios
Boolean System.Boolean 2 bytes Un valor verdadero o falso.
Valores: True o False.

En VB se pueden representar por -1 o 0, en CLR serán 1 y 0, aunque no es recomendable usar valores numéricos, es preferible usar siempre True o False.
Dim b As Boolean = True

Byte System.Byte 1 byte Un valor positivo, sin signo, para contener datos binarios.
Valores: de 0 a 255

Puede convertirse a: Short, Integer, Long, Single, Double o Decimal sin recibir overflow
Dim b As Byte = 129

Char System.Char 2 bytes Un carácter Unicode.
Valores: de 0 a 65535 (sin signo).

No se puede convertir directamente a tipo numérico.
Para indicar que una constante de cadena, realmente es un Char, usar la letra C después de la cadena:
Dim c As Char = "N"c

Date System.DateTime 8 bytes Una fecha.
Valores: desde las 0:00:00 del 1 de Enero del 0001 hasta las 23:59:59 del 31 de Diciembre del 9999.

Las fechas deben representarse entre almohadillas # y por lo habitual usando el formato norteamericano: #m-d-yyyy#
Dim d As Date = #10-27-2001#

Decimal System.Decimal 16 bytes Un número decimal.
Valores:
de 0 a +/-79,228,162,514,264,337,593,543,950,335 sin decimales;
de 0 a +/-7.9228162514264337593543950335 con 28 lugares a la derecha del decimal;
el número más pequeño es:
+/-0.0000000000000000000000000001 (+/-1E-28).

En los literales se puede usar la letra D o el signo @ para indicar que el valor es Decimal.
Dim unDecimal As Decimal = 9223372036854775808D
Dim unDecimal2 As Decimal = 987654321.125@

Double System.Double 8 bytes Un número de coma flotante de doble precisión.
Valores:
de -1.79769313486231570E+308 a
-4.94065645841246544E-324 para valores negativos;
de 4.94065645841246544E-324 a 1.79769313486231570E+308 para valores positivos.

Se puede convertir a Decimal sin recibir un overflow.
Se puede usar como sufijo el signo almohadilla # o la letra R para representar un valor de doble precisión:
Dim unDoble As Double = 125897.0235R
Dim unDoble2 As Double = 987456.0125#

Integer System.Int32 4 bytes Un número entero (sin decimales)
Valores:
de -2,147,483,648 a 2,147,483,647.

Se puede convertir a Long, Single, Double o Decimal sin producir overflow.
Se puede usar la letra I o el signo % para indicar que es un número entero:
Dim unEntero As Integer = 250009I
Dim unEntero2 As Integer = 652000%

Long
(entero largo)
System.Int64 8 bytes Un entero largo (o grande)
Valores:
de -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807.

Se puede convertir a Single, Double o Decimal sin producir overflow.
Se puede usar la letra L o el signo & para indicar que es un número Long:
Dim unLong As Long = 12345678L
Dim unLong2 As Long = 1234567890&

Object System.Object (class) 4 bytes Cualquier tipo se puede almacenar en una variable de tipo Object.
Todos los datos que se manejan en .NET están basados en el tipo Object.
Short
(entero corto)
System.Int16 2 bytes Un entero corto (sin decimales)
Valores:
de -32,768 a 32,767.

Se puede convertir a: Integer, Long, Single, Double o Decimal sin producir un overflow.
Se puede usar la letra S para indicar que es un número entero corto:
Dim unShort As Short = 32000S

Single System.Single 4 bytes Número de coma flotante de precisión simple.
Valores:
de -3.4028235E+38 a -1.401298E-45 para valores negativos;
de 1.401298E-45 a 3.4028235E+38 para valores positivos.

Se puede convertir a: Double o Decimal sin producir overflow.
Se pueden usar la letra F y el símbolo ! para indicar que es un número Single:
Dim unSingle As Single = 987.125F
Dim unSingle2 As Single = 65478.6547!

String
(cadenas de longitud variable)
System.String (clase) Depende de la plataforma Una cadena de caracteres Unicode.
Valores:
de 0 to aproximadamente 2 billones (2^31) de caracteres Unicode.

Se puede usar el símbolo $ para indicar que una variable es un String.

Tipos definidos por el usuario
(estructuras)
(heradada de System.ValueType) Depende de la plataforma Cada miembro de la estructura tiene su rango, dependiendo del tipo de dato que representa.

Esta tabla muestra algunos de los mas importantes de ellos y los valores mínimos y máximos que puede contener, así como el tamaño que ocupa en memoria. Tenemos los tipos de datos que podemos usar en vb.NET y por tanto, de los que podemos declarar variables. Por ejemplo, si queremos tener una variable en la que guardaremos números enteros, (sin decimales), los cuales sabemos que no serán mayores de 32767 ni menores de -32768, podemos usar el tipo Short:

Dim variable As Short

Después podemos asignar el valor correspondiente:

variable = 15000

Cuando asignemos valores a las variables podemos hacer esta asignaciones dependiendo del tipo que es, es decir, según el tipo de dato de la variable puede ser necesario el uso de delimitadores para encerrar el valor que vamos a asignar:

  • Tipos numéricos. Las variables no necesitan delimitadores, se asignan directamente. Si es una valor real los decimales se separan con el punto.
  • Tipos alfanuméricos o cadenas de caracteres. Las variables se encierran entre comillas: "pepe", "casado"
  • Fecha. Podemos encerrar la fecha con los signos #. Por ejemplo #01/01/2004#. o con comillas dobles. La diferencia (y muy importante) es que si utilizamos las almohadillas # el formato de la fecha es mes/día/año y si es la comilla el formato es día/mes/año (por el valor de la configuración regional de nuestro equipo).
  • Tipos lógicos (boolean). Las variables de este tipo sólo pueden tener los valores Verdadero (True) o falso (False)

Las variables las podemos declarar en cualquier parte del código pero por norma utilizaremos lo mas lógico que es declararlas al principio de nuestras rutinas o procedimientos. También podemos asignar un valor a la variable en el momento de crearla por ejemplo:

Dim valor as string="mesa"
Dim edad as long="23"

Que sería lo mismo que hacer:

Dim valor as string
Dim edad as long

valor="mesa"
edad=23

Por regla general no haremos esa asignación en la declaración simplemente porque en muchos casos no sabremos su valor predeterminado ya que estamos declarando esas variables para realizar cálculos en el código.

CONTROL PREVENTIVO

1. Evitar problemas antes de que aparezcan.
2. Monitorear tanto las operaciones como las transacciones de entrada.
3. Tratar de predecir problemas potenciales antes de que ocurran y hacer ajustes.
4. Prevenir la ocurrencia de un error, omisión o acto delictivo.

Ejemplos
* Emplear únicamente personal calificado
* Segregar funciones (factor disuasivo)
* Controlar el acceso a las instalaciones físicas
* Usar documentos bien diseñados (previene errores)
* Establecer procedimientos convenientes para la autorizacióñ de transacciones
* Chequeos de validación programados
* Uso de software para el control de acceso que permite únicamente el acceso a archivos sensitivos a personal autorizado

CONTROL DETECTIVO

1. Controles que detectan un error, omisión o acto delictivo que haya ocurrido y reporta la ocurrencia

Ejemplos
* Totales de comprobación
* Puntos de chequeó en trabajos de producción
* Controles de eco en telecomunicaciones
* Mensajes de error sobre las etiquetas internas de las cintas
* Doble verificación de los cálculos
* El reportaje periódico de la ejecución con variacionesReportes de las cuentas atrasadas
* Funciones de auditoría interna

CONTROL CORRECTIVO

1. Reducir el impacto de una amenaza
2. Remediar los problemas descubiertos por los controles detectivos
3. Identificar la causa de un problema
4. Corregir los errores que surjan de un problema
5. Modificar el (los) sistema(s) de procesamiento para reducir las futuras ocurrencias del problema

Ejemplos
* Planificación de contingencia
* Procedimientos de respaldo
* Procedimientos para volver a hacer una corrida

Ideal para despistarse un rato en esas palmadas interminables que sentís que ya no se te ocurre nada...
-Existe un autobús con 7 mujeres
-Cada mujer tiene 7 bolsos
-Adentro de cada bolso hay 7 gatos grandes
-Cada gato grande tiene 7 gatos pequeños
-Todos los gatos tienen 4 piernas cada uno

-Pregunta: ¿Cuántas piernas hay adentro del autobús?

-El número de piernas es el password del archivo a descargar...

-Si logras abrir el archivo escribe tu nombre para dejar evidencia de que lo abriste y enviáselo a alguien para eliminar el estrés.

Descargar el archivo

Todos la usamos, nos da de comer, nos ayuda a encontrar esa tarea que urge o enviar un correo al otro lado del mundo pero....¿Qué es la web? ¿Cómo funciona la web? ¿Qué y cómo buscar en la web?

A estas y muchas otras preguntas le encontramos respuesta en el libro que recientemente el Centro de Investigación de la Web de la Universidad de Chile preparó y esta disponible gratis on line aqui.

Es un libro que, como informáticos, debemos conocer y manejar para ampliar nuestro criterio profesional!

Para los cursos de Bases de datos y Aplicaciones Comerciales (Bases 2) entre otros cursos, es imprescindible manejar el SQL (Structured Query Language), Aqui encontrarás la sintáxis básica que te será de gran ayuda.

Select

SELECT Campos FROM Tabla
--En donde campos es la lista de campos que se deseen recuperar y tabla es el origen. Ejemplo:
SELECT Nombre, Telefono FROM Clientes

Where


SELECT Campos FROM Tabla WHERE Condición
--En donde Condición es la validación. Ejemplos:
SELECT Nombre, Salario FROM Empleados WHERE Salario > 21000
SELECT Nombre, Salario FROM Empleados WHERE Salario Between 2000 And 3000
SELECT Nombre, Salario FROM Empleados WHERE Apellidos Between 'Perez' And 'Castillo'

Ver más Sintáxis...


Group By

SELECT campos FROM Tabla WHERE Criterio GROUP BY Campos del grupo. --Ejemplo:
SELECT Carrera FROM Estudiantes GROUP BY Carrera

AVG (Media Aritmética)

SELECT Avg(Campo) FROM Tabla WHERE Campo > X

Count (Calcula el número de registros devueltos por una consulta)

SELECT Count(Campo) FROM Tabla

Delete

DELETE FROM Tabla WHERE criterio. --Ejemplo:
DELETE * FROM Empleados WHERE Cargo = 'Vendedor'

Insert Into

INSERT INTO Tabla (campo1, campo2) VALUES (valor1, valor2)

Update

UPDATE Tabla SET Campo1= Valor1, Campo2 = Valor2 WHERE Criterio
--Si en un Update suprimimos WHERE todos los registros de la tabla señalada serán actualizados. Ejemplo:
UPDATE Empleados SET Salario = Salario * 1.1

Subconsultas

--Es una instrucción SELECT anidada dentro de una instrucción SELECT,SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta. Ejemplos:

SELECT * FROM Productos WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25)
--Devuelve todos los productos cuyo precio unitario es mayor que el de cualquier producto vendido con un descuento igual o mayor al 25 por ciento.

SELECT Clientes.Compañía, Clientes.Teléfono FROM Clientes WHERE EXISTS
(SELECT FROM Pedidos WHERE Pedidos.IdPedido = Clientes.IdCliente)
--Todos los clientes que hayan realizado al menos un pedido.

SELECT Empleados.Nombre FROM Empleados WHERE Sexo = 'M' AND Edad > ANY
(
SELECT Empleados.Edad FROM Empleados WHERE Sexo = 'H')
--Todas las mujeres cuya edad sea mayor a la de cualquier hombre.



En progra avanzada es común trabajar con capas. Esta guía te muestra cómo incorporar web services a tus proyectos. Suerte y felices trazos!

En su segunda aparición, los "manguinhos" se dieron a la tarea de tocar el balón como debe ser. Las imágenes del artículo se remontan al viernes 8 de agosto del 2008 en DX5 San José. El encuentro futbolístico se vió nutrido de goles, 13 para los chalecos naranja y 11 para los azul, amarillo, blanco....


El tercer tiempo se llevó a cabo en Retro San Pedro, las imágenes de este evento las podés encontrar en la zona VIP.



Alineación

1. Carlos Fallas (Cristiano Ronaldo)
2. Fer (Riquelme)
3. Edwin "Abubu" (Ledezma)

4. Leo Meléndez (Van Nistelrooy)
5. Johnatan Escobar (Del Piero)
6. Mau Salas (Rooney)
vrs
7. Jason Ramírez (Deco)
8. Allan Monge (Ballack)
9. Alex Fonseca (Thierry Henry)
10. Esteban Vargas (Nuno Maniche)
11. Mau Araya (Messi)
12. Carlos Cerdas (Ronaldinho)

(BANCA)13. Daniel "Racsito" Cordero (Figo)
(STAFF)Vanessa Quesada, Cindy Jiménez, novia de Jason y novia de Charlie Fallas...

Algunas cosillas para enterrar esas horas de ocio...

El pasado viernes 25 de julio se llevó a cabo el primer destello de lo mejorcito de la Uam en cuanto a "fútbol" se refiere. El equipo soñado de la U conformado por grandes estrellas del fútbol moderno logró demostrar que no solo de programación vive el hombre.... Algoritmos de pared, procedimientos almacenados en las fuertes piernas de estos astros se dieron gusto haciendo triggers con el esférico esa noche inolvidable.


El resultado: un marcador compartido a 18 goles entre el cuadro de chalecos rojos y los azules, blanco, naranja, rosado, es un resultado que da mucho que esperar para eventuales encuentros pues la lucha esta pareja en el ranking de Leo Meléndez donde nadie quiere dejar ir el liderato.

Agradecimientos especiales a "Migue" que amablemente nos recibió una vez finalizada la jornada y donde departimos un ligero digestivo para terminar la velada futbolística.

Alineación estelar
1. Daniel "Racsito" Cordero (Figo)
2. Fer (Riquelme)
3. Charlie Fallas (Cristiano Ronaldo)
4. Edwin "Abubu" Landero (Eto´o)
5. Johnatan Escobar (Villa)
--vrs--
6. Alex Fonseca (Thierry Henry)
7. Allan Monge (Ballack)
8. Mau Araya (Messi)
9. Carlos (Ronaldinho)
10. Jason Ramírez (Deco)

11. Larry Mayorga (Visor FIFA)


Este video trata sobre la historia de los sistemas Unix y su viabilidad en la computadora de escritorio. Es del año 1985 de un programa titulado "Cronicas de la computación. Interesante notar los términos que se utilizan como futurología que hoy son realidad. Recomendado.

Nudos Temáticos ^

1. Linea ascendente de una investigación cientifica

Para darnos una idea de que es y que no es una investigación cientifica, se debera de hacer clara la diferencia entre diferentes trabajos, entre los que estan son:

* Informe: es un resumen, es un reporte de lectura, no tiene una estructura de investigación cientifica, es un trabajo informal y no tiene sustento teorico.

* Ensayo: es un trabajo que no necesita sustento teorico (argumento propio), no tiene una fuente especializada, no posee estructura, es semi-informal, argumentación personal, se formula una pregunta/problema de estudio.
Ver todo el resumen >>>
* Monografía: mono de a uno grafia grafos escrito, es un escrito de a uno para un curso determinado, tiene una estructura, hojas preliminares (portada, agradecimiento, tabla de contenidos, resumen ejecutivo), capitulos: marco teorico, metologico, los capitulos tienen un sustento teorico de una fuente, conclusión, reconocimiento, bibliografía.

* Tesina: es una monografía, con mayor profundidad, mayor extensión, se realiza para un logro academico: grado bachillerato.

* Tesis: es una tesina/monografía, pero con mucha mayor profundidad, mayor extensión que las anteriores, requiere de una evaluacion mas especializada, para grados de licenciatura o post grados, utiliza un metodo cientifico.

Nota: met/odo: met: lo que quiero alcanzar, odos: pasos para alcanzarlo
Cient/ifico: ciente: sciens: persona q sabe, esciente: persona que quiere saber.

2. Como surge una investigación cientifica.

Toda investigación cientifica surge de una idea, de algo que se nos viene a la mente, la idea es algo informal, sin sentido, sin estructura, pero se debe de realizar de un “ver” cientifico, estas ideas surgen, nacen de nuestro entorno, en nuestro trabajo, casa, universidad, lecturas, en todo aquel lugar donde nos pueda nacer esa idea.

3. Como se estructura una idea para que se convierta en objeto de estudio

Para hablar de una estructura de esta idea que tenemos, deberiamos de:
* Primero conocer los antecedentes = estado de la cuestion, que llamaremos asi a un acercamiento de la producción literaria de otros, osea fuentes primarias lo mas relevantes no asuntos secundarios.
* Pensar/ Reflexionar y asi ubicar esta idea en nuestra carrera.
* Ordenar o crear un esqueleto tematico tentativo muy general, indice tematico.
* Ubicarlo en nuetra norma UAM para hacerlo definitivo.

4. Caracteristicas de una investigación cientifica

En nuestro trabajo de investigación debemos conocer que caracteristicas debera de tener, por lo que anotaremos que:
* Escrito ordenado, poner ese escrito de un orden correcto, respetando signos de puntuación, ortografia, gramatica, morfologica y usando la sintaxis.
Nota: morfo= forma logia= palabra, osea una formación de palabras
Sintaxis= coordinación de palabras

* Metodo con claridad
* Estructura a manera de arquitectura
* Critica: planteo personal, ya que debera de ser sustentado, analizado, reflexionado para asi procesar esa información.

* Sentido literario: tiene una trilogía conceptual, esto quiere decir que debera de estar en funcion de parrafos: introductoria, de contenido y transición.
1. Introductoria: desarrolla o señala una generalidad, lo que se va a tratar en esta gran seccion.
2. Contenido: es el desarrollo de lo que se esta señalando o enunciando en el parrafo introductoria
3. Transición: es lo que va tejiendo, hilando las grandes secciones.

* Norma UAM: son aspectos que dicta la universidad y deben de ser acatados.
* Asuntos esteticos: referencia proporcion de espacios, margenes, espacios adicionales, tipografia (tipo de letra) numeración de paginas.
* Especificidad: desarrollar un trabajo claro, debe de ser demarcado, delimitar, no usar NUNCA generalidades.

5. Estilos de citar y metodos de citar un a fuente

Dentro de la invetigacion cientifica, se debera de inluir formas de citar:
La citación textual y no textual.
* Cita corta: hasta 3 lineas, va en el mismo parrafo que ibamos desarrollando, va entre comillas, no tiene que destacar con negrita ni subrayado.
* Cita larga: es de mas de 3 lineas, va separado del parrafo que se viene desarrollando, se debe escribir en un espacio adicional a espacio y medio, todo san grado y justificado.
Nota: ambas citas deben de ir antecedas por dos puntos, ademas que en una investigación NUNCA debe de existir 2 citas textuales continuas, sin que medie la opinión de quien ejecuta la investigación.

* Parafraseo: es cuando se coloca al lado de un frase u opinión, mi opinión propia con mis palabras, pero siempre se debe de indicar que se va a parafrasear algo.

Metodos para citar una fuente

* Parentetico: es un nombre que proviene de la palabra paréntesis, es decir se denomina parentetico es porque para citar una fuente hace uno del paréntesis.
Ej. (Allende, 2002, p. 33) pagina… (Allende, 2002, pp.33-34) paginas…

* Tradicional: hace uso al pie de pagina y primera vez que se cita una fuente debe de venir todos los datos de la bibligrafia al final mas el numero de pagina donde se tomo la cita, si se repite una cita textual inmediatamente sin que se interponga otra fuente se usa Ibid * y si se vuelve a tomar una cita de una fuente ya citada pero que no es inmediatamente y se interponen otras fuentes se usa Op., Cit.,
Ej. Isabel Allende (2002). El portal del amor
Santiago, Paisdos, p. 33

Nota: Ibid: ibidem= en el mismo lugar anterior
Op., Cit., = opus citatus obra citada.

6. Titulados mayores, subtitulados mayores y menores, escalera del indice.

* Titulados mayores: centrado, 14, negrita, inicio de pagina siempre y mayuscula, va a ser
utilizado en la introducción, capitulos I, II, III, conclusión, recomendación, bibliografía y anexos.
Nota: Capitulo I: marco teorico, II: metologico, III analisis o aportes.

* Subtitulados mayores: son aquellos a los que se le asigna la escalera del indice, van al margen, no. 14, negrita y solo la 1era en mayuscula.
1. Xxxx
2. Xxxx
3. Xxxx

* Subtitulados menores: van al margen, negrita, 12 y solo la 1era en mayuscula
Nota: si existe la division hacia abajo debera tener el # o letra que le sigue (1,2,3… ; 1.1, 1.2, 1.3….; a,b,c….) Las letras apareceran hasta la 4ta escalera.

* Sangrar: va a cada inicio de un parrafo, luego de un punto aparte de los titulados mayores, subtitulados, notas al pie la 1era letra. En la bibliografía si solo hay linea se sangra la 1era letra, pero si hay 2 lineas la 1era linea no se sangra pero la 2da linea si.

7. Fuentes de información.

Toda investigación cientifica tiene fuentes de informacion que son:

* Tipos: primaria, secundaria y terciaria estas iran en funcion x el objeto de la investigación
* Clasificacion: Bibliografica libros, revistas, periodico, Internet, enciclopedia, Iconografica proyectable, video, película, power point, No proyectable fotos planos mapas.
* Fonografica: todo lo que se registra para ser escuchado.

^Resumen cortesía de Poncho

Ejemplo de redacción de Hallazgos:

Título: Equipo inadecuado para hacer partes
Descripción: La máquina (handheld) no permite leer código de barras ni banda magnética, tampoco imprime el comprobante en el tiempo adecuado además de que se descarga rápidamente.
Riesgo: Que sistemas futuros sean igual de ineficientes.
Recomendación: Realizar todo el ciclo de vida del software para futuros sistemas.

Ver todo el resumen >>>

Etapas de la Auditoría de Sistemas
1- Planeación
2- Ejecución
3- Informe final

1- Planeación
P1. Origen. (Interno, externo, programa integral de auditoría)
P2. Visita preliminar.
P3. Objetivos.(Los define el auditor general)
P4. Puntos a evaluar.
P5. Planes, programas y presupuestos.
P6. Métodos, procedimientos, instrumentos y herramientas.
P7. Asignar recursos y sistemas computacionales.

2- Ejecución.
E1. Realizar las acciones programadas.
E2. Aplicar los instrumentos y herramientas.
E3. Identificar y elaborar los documentos de hallazgos.
E4. Elaborar el dictamen preliminar y presentarlo a discusión.

3- Informe final
D1. Analizar la información y elaborar un informe de situaciones detectadas.
D2. Analizar los papeles de trabajo.
D3. Señalar las situaciones encontradas.
D4. Comentar las situaciones encontradas con el personal de cada área.
D5. Realizar las modificaciones necesarias.
D6. Elaborar un documento de situaciones relevantes.
D7. Elaborar el dictamen final.

Tipos de Control: Detectivo- Correctivo- Preventivo- Persuasivo.

Riesgo: Mitigarlo- Afrontarlo- Trasladarlo.

Compilación: Proceso de traducir un programa en un lenguaje de alto nivel a otro de bajo nivel.

Fases del Compilador

Análisis Sintático: Scanning Parsing AST

Análisis Contextual: Identificación Verificación de tipos Generación del DAST

Identificación Es la primera tarea del contextual analyzer.
* Asocia applied ocurrence con la declaración correspondiente.

println (c);
a= a + 3

* Debe verificar en que parte del programa se puede utilizar una variable de acuerdo a las reglas de alcance o reglas de tipo.

Ver todo el resumen >>>
Reglas de alcance

* Cada declaración tiene un alcance que indica el área donde un identificador puede ser usado.
* Un bloque es cualquier área de un programa que delimita el alcance de una declaración. (llaves, paréntesis, corchetes, etc.).

Estructura de bloques
Indican si los bloques pueden ser:

* Monolíticos todas las declaraciones son globales.
* Plano no pueden haber bloques dentro de otros.
* Anidados pueden haber bloques dentro de otros.
* Ningún identificador puede ser declarado más de una vez en el mismo bloque. Puede ser declarado en diferentes bloques.
* Se utiliza el scope o el nivel de mayor.
* Nivel 0, Nivel 1 y Nivel 2

Tabla de identificación:
Estructura de datos (en memoria) que contiene los identificadores del programa con su respectivo número de alcance.

* Operaciones básicas:
* Crea tabla vacía
* Agrega un identificador nuevo
* Asocia cada identificador con el número de alcance.
* Es parte del AST decorado.
* Método enter agrega nuevo identificador
* Método retrieve la declaración de un identificar.
* Método openScope inicializa el bloque.
* Método closeScope finaliza un bloque

Implementación

Key = índice >Tiene un índice
Value = valor >Comienza en el nivel 0
La llave es el nombre del identificador

Verificación de tipos (Hash – vector)

o Type checking: verifica que no hayan errores de tipo.
o Statically typed: propiedad básica de un lenguaje, detecta errores de tipo sin ejecutar el programa (estática).
o Sólo aplica a expresiones y operaciones que involucran expresiones.

Clase type
o Se utiliza para representar los tipos de una expresión.
o Implementa el método para determinar si dos instancias son equivalentes (boolean o int).

Algoritmo

o Id entifica mediante una liga o puntero en cada applied ocurrence y hace la declaración de las variables.
o Verifica el tipo que representa un objeto de la clase type.
o Modifica el AST Decorado.

Generación del AST Decorado

o Genera la tabla de identificadores.
o Verifica los tipos de expresiones.
o Valida las expresiones y subexpresiones

Análisis Contextual

Implementación
* La clase Checker será el encargada de realizar el análisis contextual
* Debe recibir el árbol AST generado por el parser.
* El árbol debe ser recorrido para validar identificadores.
* Interactúan el scanner y parser.

Cambios requeridos en los nodos del árbol
* Los nodos representan expresiones.
* El nodo VNames contiene el tipo de la variable y indicador para saber si es variable o constante.
* El nodo del AST que representa identificadores (puntero).

Recorrido del árbol para decorarlo
1. El checker (visitante) pasa primero por el nodo Program.
2. El nodo Program llama un método y se pasa a si mismo como parámetro.
3. Dentro el método visitProgram, el visitante puede realizar operaciones.
4. La Operación que realiza el método visitProgram es pasar el visitante a sus nodos hijos.
5. LetCommand llama el método y se pasa a si mismo como parámetro.
6. Dentro el método VisitLetCommand, el visitante puede realizar operaciones.
7. La Operación que realiza el método VisitLetCommand, es pasar el visitante a sus nodos hijos.

Patrón es un diseño utilizado para separar los algoritmos de la estructura que se utiliza.

Lenguaje de programación
Notación formal para expresar algoritmos.

Compilador
Herramienta que permite construir programas.
Facilidades:
Edit (digitar programas)
Compile (traducir)
Interprete
Debuging (depurar)

Código máquina
Instrucciones en formato de 1 y 0.

Lenguaje ensamblador
Notación para representar programas en lenguaje máquina.

Lenguaje de bajo nivel
Instrucciones en lenguaje máquina (1/ 0)

Lenguaje de alto nivel
Instrucciones similares para expresar algoritmos.
Soporta expresiones, tipos de datos, declaraciones, abstracciones, etc.

Ver todo el resumen >>>

Syntax
Reglas para construir programas, define los símbolos.
Contextual constraints: Lo que se puede o no hacer.
: Reglas que indican si las frases están bien construidas.
Scope rules: Si la variable puede ser usada en un lugar determinado.
Binding ocurrence: momento en que se declara una variable.
Static binding: tipo debe ser declarado antes de usarse.
Dynamic binding: usa la variable en cualquier momento.
Aplied ocurrence: momento en que se utiliza una variable.
Typed rules: Si una expresión esta utilizando los tipos correctos.
Static typed: variable puede definirse sin ejecutar el programa.
Dynamic typed: variable se define al ejecutar el programa.

Semantics
Significado de las instrucciones, programas.

Context- free grammar
Especifica formalmente la sintaxis de un programa
Terminal symbols (reservados)
Símbolos usados para construir el programa (“<”, “while”, “(”, “void”) Non terminal symbols Clase particular de frases en un lenguaje Programa, comandos, expresiones, declaraciones. Start symbol Non terminal symbol que representa la clase principal en un lenguaje. Production rules Define cómo las frases se componen utilizando terminal symbols y subfrases.

Notación BNF (Backus- Naur Form)

Se utiliza para expresar production rules (N:=a)

Syntax trees
Muestran cómo se construyen las frases en un lenguaje.
Concrete Syntax tree
Especifica la sintaxis de una frase sin preocuparse por la semántica.
Termina en: 1- Terminal nodes, 2- Identificador, 3- Integer literal.
Abstract Syntax tree
Para entender más fácilmente la semántica, simplifica el árbol.

Compilación
Proceso de traducir un lenguaje de alto nivel a uno de bajo nivel.
1- Análisis sintáctico
Código fuente se analiza para determinar si se ajusta a la sintaxis del lenguaje.
Resultado= AST.
Scanning: El programa se transforma en tokens.
Parsing: El programa se analiza para determinar la estructura de las frases.
Representación: Montaje del árbol.
2- Análisis contextual
Revisa las restricciones de contexto.
Resultado= Decorated AST.
3- Generación de código
La parte más complicada es la declaración y uso de los identificadores

Compilador de 1 fase
Las tres fases anteriores se realizan al mismo tiempo.
Son rápidos pero más complejos.

Compilador multifase
Las tres fases anteriores se realizan por aparte.
Son más lentos pero de fácil mantenimiento.


Mini triángulo
Clase Compilador
Lleva a cabo todo el proceso, internamente usa una clase diferente para cada fase.

Clase Program
Representa el AST del programa, el resultado de cada fase se almacena en este objeto.

Clase Parser
Realiza el análisis sintáctico, internamente produce el AST.

Clase Checker
Toma el AST y revisa los contextual constraints.
Modifica el AST para agregar datos adicionales.
Produce el Decorated AST.

Clase Encoder
Genera el código una vez que ha sido verificado.

Tokens
Cada uno de los símbolos del código fuente.
Kind: Tipo (int type, left paren, op-less than, etc)
Spelling: “<”, “(”. Expresiones regulares
Reglas de cómo generar ciertas reglas de caracteres.
Se usa para simplificar la gramática de un lenguaje.

Estas son algunas subconsultas que te pueden servir en bases 1 y 2 para orientarte en la materia.

Todos los productos cuyo precio unitario es mayor que el de cualquier
producto vendido con un descuento igual o mayor al 25 por ciento:
SELECT * FROM Productos WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25)

Ver Más subconsultas
Todos los productos vendidos con un descuento igual o mayor al 25 por ciento:
SELECT * FROM Productos WHERE IDProducto IN
(SELECT IDProducto FROM DetallePedido WHERE Descuento >= 0.25)

Todos los clientes que hayan realizado al menos un pedido:
SELECT Clientes.Compañía, Clientes.Teléfono FROM Clientes WHERE EXISTS
(SELECT FROM Pedidos WHERE Pedidos.IdPedido = Clientes.IdCliente)

Nombres de los empleados cuyo salario es igual o mayor que el salario medio de
todos los empleados con el mismo título. A la tabla Empleados se le ha dado el
alias T1:
SELECT Apellido, Nombre, Titulo, Salario FROM Empleados AS T1
WHERE Salario >= (SELECT Avg(Salario) FROM Empleados
WHERE T1.Titulo = Empleados.Titulo) ORDER BY Titulo

Lista con el nombre, cargo y salario de todos los agentes de ventas cuyo
salario es mayor que el de todos los jefes y directores.
SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados
WHERE Cargo LIKE "Agente Ven*" AND Salario > ALL (SELECT Salario FROM
Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE "*Director*"))

Lista de las compañías y los contactos de todos los clientes que han
realizado un pedido en el segundo trimestre de 1993.
SELECT DISTINCTROW Nombre_Contacto, Nombre_Compañia, Cargo_Contacto,
Telefono FROM Clientes WHERE (ID_Cliente IN (SELECT DISTINCTROW
ID_Cliente FROM Pedidos WHERE Fecha_Pedido >= #04/1/93# <#07/1/93#)

Selecciona el nombre de todos los empleados que han reservado al menos un pedido. SELECT Nombre, Apellidos FROM Empleados AS E WHERE EXISTS (SELECT * FROM Pedidos AS O WHERE O.ID_Empleado = E.ID_Empleado)

Todas las mujeres cuya edad sea mayor a la de cualquier hombre: SELECT Empleados.Nombre FROM Empleados WHERE Sexo = 'M' AND Edad > ANY
(SELECT Empleados.Edad FROM Empleados WHERE Sexo ='H')

Para utilizar los messagebox es neceasario descargar un DLL. Este es un javascript que permite crear un msgbox con un botón de aceptar o un msgbox de aceptar o cancelar.

Para usar la DLL hay que agregarla en las referencias de la solución y agregar el control en la barra de controles web, y arrastrarlo hasta la página que lo queras usar. Por ejemplo:

MsgBox.ShowMessage("Hola Manguinho")

msgbox.ShowConfirmation("..")

Suscribirse a: Entradas (Atom)