viernes, 31 de agosto de 2012

Algoritmo:Calcular la raiz cuadradada en C/C++

Aqui les comparto un codigo que calcula la raiz cuadrada de un numero ingresado por el usuario. En este ejemplo utilizamos la libreria para llamar a la funcion sqrt
Codigo Fuente en C

#include<math.h>
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
float num,sq;
printf("Ingrese un numero para calcular la raiz cuadrada: ");
scanf("%f", &num);
while(getchar() != '\n');
sq=sqrt(num);
printf("\n\nLa raiz cuadrada de %.1f es %.2f", num, sq);
getch();
return 0;
}
Codigo Fuente en C++

#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <math.h>
using namespace std;

int main()
{
    float num, sq;
    cout<<"Ingrese un numero: ";
    cin>>num;
    sq=sqrt(num);
    cout<<endl<<endl<<"La raiz cuadrada de "<<num<<" es "<<sq<<endl;    
    system("Pause");    
    return 0;           
}
Resultado

jueves, 30 de agosto de 2012

Algoritmo en C:Calcular el perimetro de un cuadrilatero con punteros

Este ejercicio calcula elperimetro de un cuadrilatero indicando sus coordenadas en x y y. Como ven en el codigo utilize la liibreria math.h para las funciones sqrt y pow y utilize punteros para hacer referencias a memoria y asi evitar implementar 4 procedimientos. El codigo lo tiene abajo espero les sirva =D

#include <stdio.h>
#include <conio.h>
#include <math.h>
typedef float Coordenada;
typedef struct{
 Coordenada x;
 Coordenada y;
 } Punto;
Punto p1, p2, p3, p4;
Punto po, pd;
float dist, perimetro;
void Distancia()
{
dist=sqrt(pow(pd.x-po.x,2)+pow(pd.y-po.y,2));
}
void LeerPunto(float *x, float *y,short int n)
{
printf("Coordenada x del punto %d: ", n);
scanf("%f", x);
while(getchar() != '\n');
printf("Coordenada y del punto %d: ", n);
scanf("%f", y);
while(getchar() != '\n');
printf("\n");
}
int main()
{
clrscr();
printf("\n");
printf("****\n");
printf("Calcular el perimetro de un \n");
printf("cuadrilatero irregular");
printf("****\n");
printf("\n");
printf("Introduzca los puntos del cuadrilatero (en orden de adyacencia): \n\n");
LeerPunto(&p1.x, &p1.y, 1);
LeerPunto(&p2.x, &p2.y, 2);
LeerPunto(&p3.x, &p3.y, 3);
LeerPunto(&p4.x, &p4.y, 4);
perimetro=0.0;
po=p1;
pd=p2;
Distancia();
perimetro=dist;
//E1: perimetro=Distancia(p1, p2)
po=p2;
pd=p3;
Distancia();
perimetro=perimetro+dist;
//E2:perimetro=E1 + Distancia(p2,p3)
po=p3;
pd=p4;
Distancia();
perimetro=perimetro+dist;
//E3:perimetro=E2 + Distancia(p3, p4)
po=p4;
pd=p1;
Distancia();
perimetro=perimetro+dist;
//E4:perimetro=E3 + Distancia(p4, p1)
printf("El perimetro del cuadrilatero irregular es: %.2f\n", perimetro);
printf("\nPulse enter para continuar");
getchar();
return 0;
}

Como convertir un float a un int en C++

Para convertir un int a float utilizamos static_cast de la siguiente manera:

#include <iostream>
using namespace std;
int main()
  {
     float x;
     int y;
     cout << "Ingrese un numero decimal: " << endl;
     cin >> x;
     y=static_cast<int>(x);
     cout << "El valor entero es " << y << endl;
     system("Pause");
     return 0;        
}
El operador static_cast es utilizado para convertir una expresion dada a un tipo especificado. Para este ejemplo ingrese un numero decimal y me retorno su valor entero. Espero les haya servido el ejemplo :)

miércoles, 29 de agosto de 2012

Algoritmo en C:Comprobar si una fecha es correcta

En este ejemplo ingresaremos el dia, el mes y el año y con switch case analizamos el mes ingresado para validar si el dia es correcto para ese mes ya que algunos meses como Enero, Marzo, Agosto ... son maximo 31 dias y otros meses como Abril, Junio admiten 30 y tenemos el particular caso de febrero 29 en bisiesto y 28 en años no bisiestos. Para el caso de bisiesto cree un procedimiento el cual valida el año y devuelve un valor booleano
#include <stdio.h>
#include <conio.h>
#define Booleano int
#define Verdadero 1
#define Falso 0
unsigned int dia;
unsigned int mes;
long int anio;
Booleano esBisiesto;//indicador de anio bisiesto
Booleano fechaValida;//indicador de fecha valida
void AnioBisiesto()
{
esBisiesto=(anio%4==0)&&(anio%100!=0)||
    (anio%400)&&(anio!=3600);
}
int main()
{
 clrscr();
 printf("\n");
 printf("****\n");
 printf("**** Algoritmo: Comprobar si una fecha es correcta ****\n");
 printf("****\n");
 printf("\n");
 printf("Introduzca el dia: ");
 scanf("%u", &dia);
 while(getchar() != '\n');
 printf("Introduzca el mes: ");
 scanf("%u", &mes);
 while(getchar() != '\n');
 printf("Introduzca el anio: ");
 scanf("%ld",&anio);
 while(getchar() != '\n');
 fechaValida=Verdadero;
 if(dia<1) fechaValida=Falso;
 else
 switch(mes)
 {
 case 1:
 case 3:
 case 5:
 case 7:
 case 8:
 case 10:
 case 12: //meses de 31 dias
      if(dia>31)
      fechaValida=Falso; break;
 case 4:
 case 6:
 case 9:
 case 11://meses de 30 dias
      if(dia>30)
      fechaValida=Falso; break;
 case 2://mes de febrero
      AnioBisiesto();
      if((dia>29)||(!esBisiesto && (dia>28)))
      fechaValida=Falso; break;
 default: fechaValida=Falso; break;
 }
 printf("%u/ %u/ %ld", dia, mes, anio);
 if(fechaValida) printf(" es una fecha valida\n");
 else printf("no es una fecha valida\n");
 printf("\nPulse enter para continuar");
 getchar();
 return 0;
}

Algoritmo en C:Obtener el mayor de 2 numeros

En este ejemplo ingresamos 2 enteros, le damos formato con %d y con if else analizamos los numeros ingresados el cual lo almacenamos en una tercera variable la cual se le muestra al usuario. Aqui tienen el codigo.
#include 
#include 
int x, y;
int mayor;
int main()
{
 clrscr();
 printf("\n");
 printf("****\n");
 printf("**** Algoritmo: Obtener el mayor de 2 enteros ****\n");
 printf("****\n");
 printf("\n");
 printf("Introduzca el primer entero: ");
 scanf("%d", &x);
 while(getchar() != '\n');
 printf("Introduzca el segundo entero: ");
 scanf("%d", &y);
 while(getchar() != '\n');
 if(x>=y) mayor=x;
 else mayor=y;
 printf("El numero mayor es: %d\n", mayor);
 printf("\nPulse enter para continuar");
 getchar();
 return 0;
}

Algoritmo en C:Simulacion de una calculadora simple

En este ejemplo haremos una calculadora simple en C++ utilizando la instruccion switch case para el operador que deseemos ya sea suma,resta,multiplicacion o division. Los numeros que ingresamos seran enteros y les daremos formato con %d el cual lee un entero decimal. El caracter que ingresamos para la operacion(+,-,*,/) le damos formato con %c. Espero les sirva el codigo =)
#include 
#include 
int operando1, operando2;
char operador;
int main()
{
 clrscr();
 printf("\n");
 printf("****\n");
 printf("**** Simulacion de una calculadora simple ****\n");
 printf("****\n");
 printf("\n");
 printf("Introduzca el primer operando: ");
 scanf("%d", &operando1);
 while(getchar() != '\n');
 printf("Introduzca el segundo operando: ");
 scanf("%d", &operando2);
 while(getchar() != '\n');
 printf("Introduzca el operador (+, -, *, /): ");
 scanf("%c", &operador);
 while(getchar() != '\n');
 printf("El resultado es: ");
 switch(operador)
 {
 case '+':printf("%d", operando1+operando2);break;
 case '-':printf("%d", operando1-operando2);break;
 case '*':printf("%d", operando1*operando2);break;
 case '/':printf("%d", operando1/operando2);break;
 default:printf("operador incorrecto");break;
 }
 printf("\n");
 printf("\nPulse enter para continuar");
 getchar();
 return 0;
}

Algoritmo en C:Correspondencia entre calificaciones

En este ejemplo ingresaremos una nota y con una instruccion switch case nos mostrara si esta nota pertenece a una matricula de honor(en este caso solo sera con 20), sobresaliente, notable, aprobado o suspenso.
#include <stdio.h>
#include <conio.h>
int nota;//0..20, nota en la universidad extranjera,0<=nota <=20
int main()
{
 clrscr();
 printf("\n");
 printf("****\n");
 printf("**** Algoritmo: Correspondencia entre calificaciones ****\n");
 printf("****\n");
 printf("\n");
 printf("Introduzca la nota (entre 0 y 20): ");
 scanf("%d", ¬a);
 while(getchar() != '\n');
 printf("La calificacion es: ");
 switch(nota)
 {
 case 20:printf("matricula de honor");break;
 case 19:
 case 18:printf("sobresaliente");break;
 case 17:
 case 16:printf("notable");break;
 case 15:
 case 14:printf("aprobado");break;
 default:if(nota<14)printf("suspenso");break;
 }
 printf("\n");
 printf("\nPulse enter para continuar");
 getchar();
 return 0;

Algoritmo en C para calcular salario neto

Aqui tienen otro ejemplo en C++, aqui calcula el salario neto de un trabajador, este ejemplo contiene constantes las cuales se definen con #define y tenemos variables globales las cuales las ponemos fuera del main y de cualquier funcion que implementemos. En este ejemplo veran 3 funciones de tipo void los cuales no son una funcion ya que no recibe parametros ni devuelve valores, podriamos decir que es un procedimiento. El codigo lo tienen abajo y espero les sirva para practicar mas C++ =D

#include <stdio.h>
#include <conio.h>
#define IMPUESTO 0.20
#define SEGURO_MEDICO 0.05
#define COMPLEMENTO_QUINQUENIO 60
#define COMPLEMENTO_ANYO 6

long int salarioBase;//dato, sueldo base del trabajador
long int antiguedad;//dato, anyos en la empresa
double salarioNeto;//resultado, salario percibido por el trabajador
long int salarioBruto;//salario bruto del trabajador
double descuentos;//descuentos aplicados

void CalcularSalarioBruto()
//PRE salarioBase y antiguedad tienen un valor valido
//POST salarioBruto contiene el salario bruto del trabajador
{
long int numeroQuinquenios;
long int numeroAyos;
long int pagoQuinquenios;
long int pagoAyos;
numeroQuinquenios=antiguedad/5;
numeroAyos=antiguedad%5;
pagoQuinquenios=numeroQuinquenios*COMPLEMENTO_QUINQUENIO;
pagoAyos=numeroAyos*COMPLEMENTO_ANYO;
salarioBruto=salarioBase+pagoQuinquenios+pagoAyos;
}
void CalcularDescuentos()
//PRE se ha calculado el salario bruto y se ha asignado a salarioBruto
//POST descuentos almacena el valor total de los descuentos sobre el salario bruto
{
descuentos=salarioBruto*(IMPUESTO+SEGURO_MEDICO);
}
void CalcularSalarioNeto()
{
/*PRE salarioBruto y descuentos almacenan, respectivamente, el salario bruto
y el descuento que le corresponde*/
salarioNeto=salarioBruto-descuentos;
}
int main()
{
 clrscr();
 printf("\n");
 printf("****\n");
 printf("**** Algoritmo: Calculo del salario neto de un ****\n");
 printf("**** trabajador *****\n");
 printf("****\n");
 printf("\n");
 printf("Introduzca el salario base: ");
 scanf("%d", &salarioBase);
 while(getchar() != '\n');
 printf("\n");
 printf("Introduzca la antiguedad: ");
 scanf("%ld", &antiguedad);
 while(getchar() != '\n');
 CalcularSalarioBruto();
 CalcularDescuentos();
 CalcularSalarioNeto();
 printf("El sueldo final es: %.2lf\n", salarioNeto);
 printf("\nPulse enter para continuar");
 getchar();

 return 0;
}

Algoritmo en C:Calcular la nota final de una asignatura


hola aqui les traigo un ejemplo de programacion el cual a partir de 2 notas: una de teoria y una de practica, calcula la nota final por pesos lo probe con notas del a al 10 que es como califican aqui en mi pais, el codigo esta en C++ y utilize el Turbo C++ ya que queria recordar la clasica pantalla color azul =D, les explicare brevemente el codigo para los que recien inician en C++: aqui utilize las librerias stdio.h y conio.h, la libreria stdio.h me permite utilizar la funcion printf y getchar, esta ultima funcion retorna ya sea el caracter ingresado o EOF(), mientras que la libreria conio me permite usar la funcion clrscr() la cual se utiliza para limpiar la pantalla de salida, por ejemplo si ejecutamos un programa, lo modificamos y lo ejecutamos otra vez la salida previa podria seguir en memoria, clrscr() limpia la pantalla previa. Tambien utilize la funcion scanf la cual lee la data ingresada pero dando un formato, dado que ingresamos notas el formato que le daremos sera de tipo float por lo que utilizamos %f. Aqui tienen el codigo espero les sea util =D
#include <stdio.h>
#include <conio.h>
int main()
{
 float notaTeoria;
 float notaPractica;
 float notaFinal;
 clrscr();
 printf("\n");
 printf("****\n");
 printf("**** Algoritmo: Calculo de la nota final de una asignatura ****\n");
 printf("****\n");
 printf("\n");
 printf("Nota de teoria: ");
 scanf("%f", ¬aTeoria);
 while(getchar() != '\n');
 printf("\n");
 printf("Nota de practicas: ");
 scanf("%f", ¬aPractica);
 while(getchar() != '\n');
 printf("\n");
 notaFinal=notaTeoria*0.7+notaPractica*0.3;
 printf("La nota final es: %.2f\n", notaFinal);
 printf("\nPulse enter para continuar");
 getchar();
 return 0;
}

martes, 28 de agosto de 2012

Truco:Como descargar todos los libros de Scribd

Bueno este truco lo encontre en el blog de Marleo y todos los creditos son para el, aqui lo comparto porque me funciono y espero que a ustedes les sirva como a mi aprovechenlo ya que no sabemos por cuanto tiempo servira este truquito.
1. Descargue e instale el Mozilla FireFox (Trabajaremos todo con este navegador).
2. Instala el siguiente complemento (User Agent Switcher)
Descargar

ACTUALIZACIÓN
Ten en cuenta estos NUEVOS PROCEDIMIENTOS:

3. Por favor utilice otro navegador distinto a Mozilla Firefox (este ya debe tener instalado el complemento). En mi caso utilizaré Google Chrome e ingresamos desde este navegador a SCRIBD y buscamos nuestro archivo digital (por ejemplo yo encontre este practica de Arreglos y Estructuras). Cuando lo hallemos nos limitamos a copiar solo el ID (formado por 8 números)
Copie solo el ID formado por 8 dígitos. Utilice otro navegador distinto a Mozilla Firefox
4. Recién en este paso ingresamos a Mozilla FireFox y pulsamos la tecla ALT para habilitar la barra de menú. Ahora seleccionamos del menú Herramientas > Default User Agent > Search Robots > Yahoo Slurp
5. Coloque en la barra de dirección de Mozilla Firefox la siguiente ruta añadiendo los 8 dígitos correspondientes al ID del libro a descargar (obtenido en el paso 3) y pulse ENTER.
http://es.scribd.com/mobile/doc/########
Cambia el valor # por el código que copiaste en el paso 3:
ahora dan enter y les aparecera una ventana asi con el boton Download
Como puedes ver aparece el boton DOWNLOAD NOW pero no lo pulses
Antes de pulsarlo anda a HERRAMIENTAS > Default User Agent... iPhone 3.0
7. Ahora si pulsa en DOWNLOAD y podrás descargar todos los manuales que necesites NUEVAMENTE!!!.

lunes, 27 de agosto de 2012

Datagridview desplegable en Visual Basic.NET

en este ejemplo vamos a utilizar 2 combobox, 2 datagridviews, lo que haremos sera al dar click en el combo se despliegue una lista como en la figura
primero declaramos 2 variables
Private WithEvents mClass1 As Class1
Private WithEvents mClass2 As Class1
en el evento Load del formulario escribimos este codigo
        With DataGridView1
            .Columns.Add("id", "Id")
            .Columns.Add("Producto", "Producto")
            .Columns.Add("Precio", "Precio")
            .Columns.Add("stock", "Stock actual")
            .Columns.Add("Proveedor", "Contacto Proveedor")

            .RowCount = 100

            For i As Integer = 0 To .RowCount - 1
                .Item(0, i).Value = i.ToString
                .Item(1, i).Value = "Producto " & i.ToString
                .Item(2, i).Value = Format(225 + i, "c")
                .Item(3, i).Value = CInt(Rnd() * 100)
                .Item(4, i).Value = "Proveedor: " & i.ToString
            Next
        End With

        With DataGridView2
            .Columns.Add("id Cliente", "id Cliente")
            .Columns.Add("Nombre", "Nombre")
            .Columns.Add("Apellido", "Apellido")

            .RowCount = 100

            For i As Integer = 0 To .RowCount - 1
                .Item(0, i).Value = i.ToString
                .Item(1, i).Value = "Nombre  " & i.ToString
                .Item(2, i).Value = "Apellido" & i.ToString

            Next

        End With

        With mClass1
            ' indicar el combo y el datagridview
            .Iniciar(ComboBox1, DataGridView1)

            .AltoLista = 400 ' alto
            .ColumnaDefault = 1 ' columna que se va a mostrar
            .ShowToolTip = True ' mostrar o no el toolTiptext
            .ShowDialog = False  ' modal o normal

        End With

        mClass2 = New Class1

        With mClass2
            .Iniciar(ComboBox2, DataGridView2)
            .AltoLista = 120
            .AnchoLista = 350
            .ColumnaDefault = 0
            .ShowDialog = True

            .ShowToolTip = True
        End With

        ComboBox1.Items.Add(DataGridView1.Item(1, 0).Value.ToString)
        ComboBox1.SelectedIndex = 0

        ComboBox2.Items.Add(DataGridView1.Item(0, 0).Value.ToString)
        ComboBox2.SelectedIndex = 0
y finalmente tenemos este codigo que crea el boton cerrar en la esquina del grid
    Private Sub mClass1_ButtonClose() Handles mClass1.onButtonClose
        mClass1.closeList()
    End Sub
    Private Sub mClass2_ButtonClose() Handles mClass2.onButtonClose
        mClass2.closeList()
    End Sub
aqui pueden descargar el codigo completo
Descargar

jueves, 23 de agosto de 2012

Truco en Windows:Crear carpetas que no puedan ser eliminadas ni renombradas

Alguna vez haz querido tener una carpeta que no pueda ser eliminada ni renombrada. Si es asi. haz venido al lugar correcto. Con este truco, seras capaz de crear carpetas en Windows las cuales no pueden ser renombradas ni eliminadas.

Conceptos Basicos
El concepto basico detras de este truco es el uso de keywords. Las keywords son palabras reservadas en cualquier lenguaje de programacion las cuales no pueden ser usadas como variables. Windows tambien utiliza ciertas keywords en su programacion. Algunas de ellas son con, aux, lpt1, lpt2, lpt3, lpt4, lpt5, lpt6, lpt7, lpt8 and lpt9.

Un Test
Para probar este concepto, creamos una nueva carpeta en Windows e intentamos darle el nombre de una de las keywords que mencione arriba.

Resultado
Windows no te permitira renombrar tu carpeta con las keywords señaladas.

Truco
Entonces surge la pregunta, ¿como podemos crear una carpeta y nombrarla con una de las keywords?. La solucion a este problema esta en el mismo Windows. Como sabemos, Windows ha evolucionado desde el DOS, estos comandos pueden ser usados en Windows. Tu puedes utilizar Programacion DOS en Windows para crear una carpeta con una keyword de nombre con los siguientes pasos:
  1. Click en Inicio.
  2. Click en Ejecutar. Escribimos "cmd" sin las comillas.
  3. En la ventana de comandos de Windows, escribe el nombre del disco en el cual vas a crear la carpeta en el formato : y presionas Enter. Por ejemplo, si deseas crear una carpeta imborrable en el Disco D, escribes "D:" sin las comillas. OJO que la carpeta no puede ser creada en la raiz del Disco C.
  4. A continuacion escribimos este comando "md con\" o "md lpt1\" sin las comillas y presionamos Enter. Puedes escoger estas keywords que puse o las de arriba para crear la carpeta.
Ahora windows creo una carpeta imborrable e innombrable en el disco que tu ingresaste en el Paso 3. Sin embargo esta carpeta puede ser renombrada a otra keyword usando Windows Explorer.

Eliminando la carpeta
Aunque no es posible eliminar manualmente la carpeta, si se puede eliminar escribiendo los comandos "rd con\" o "rd lpt1\" en el paso 4 en vez de "md con\" o "md lpt1\".
Intenta crear una carpeta con las keywords de arriba y veras que funciona =)

martes, 21 de agosto de 2012

Truco:Hacer que tu PC te de la bienvenida en Windows

Ves peliculas? Siempre te ha gustado el modo en que las computadoras en las peliculas dan la bienvenida a sus usuarios llamandolos por sus nombres? Te apuesto que tambien te gustaria lograr lo mismo en tu PC haciendo que te de la bienvenida.
Con este truco, puedes hacer que la PC te de la bienvenida con la voz computarizada. Puedes hacer que tu windows te diga "Bienvenido a su PC, usuario"
Haz que windows te de la bienvenido con un mensaje de voz personalizado al arrancar la PC.
Para lograr este truco, sigue las instrucciones de abajo:
  1. Click en Inicio. Anda a Todos los programas, Accesorios y Notepad.
  2. Copia y pega exactamente el codigo de abajo.
  3. Dim speaks, speech
    speaks="Welcome to your PC, Username"
    Set speech=CreateObject("sapi.spvoice")
    speech.Speak speaks
  4. Reemplaza username con tu nombre
  5. Click en el archivo Menu, Guardar como, Seeleccionamos todos los tipos en la opcion Tipo y guardamos el archivo como welcome.vbs o *.vbs
  6. Copiamos el archivo guardado.
  7. Vamos hasta C:\Documents and Settings\All Users\Start Menu\Programs\Startup (in Windows XP) o a C:\Users\ User-Name\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup (in Windows 7 and Windows Vista si C: es nuestro driver del sistema.
  8. Pegamos el archivo
Ahora la proxima vez que inicies tu PC, Windows te dara la bienvenida con su voz computarizada.
Para mejores resultados, es recomendable cambiar el tema de sonidos a Sin Sonidos.
Tu puedes cambiar el tema de sonidos a Sin Sonidos siguiendo los siguientes pasos de abajo:
  1. Ir a Panel de Control
  2. Luego click en cambiar a vista clasica.
  3. Luego click en Sonidos y dispositivos de audio.
  4. Luego click en la pestaña sonidos
  5. Seleccionamos Sin Sonidos de la opcion temas de sonido
  6. Si deseas guardar tu version previa de temas de sonido, puedes guardarlo clickeando Yes en el menu popup.
  7. Click en OK

Convierte tu USB un Hacker de Passwords en segundos con Password Sniffer

Ahora hackea a tus amigos con USB
Pasos
  1. Descarga esta pequeña herramienta de cualquiera de los links de abajo
  2. Luego extrae el archivo
  3. Ahora abre las instrucciones
  4. Sigue las instrucciones de ahi y podras hackear =)
Descarga aqui.
RapidShare - https://www.rapidshare.com/files/2156770485/PenDriveHack.zip

Load.to - http://www.load.to/qyxuHiusOS/PenDriveHack.zip

2Shared - http://www.2shared.com/file/Mk55D-fN/PenDriveHack.html

ifile.it - http://ifile.it/0cw315d/PenDriveHack.zip

FileKeen - http://filekeen.com/5gn97vn17r60/PenDriveHack.zip.html

FileJungle - http://www.filejungle.com/f/mXvF7A

Crocko - http://bit.ly/CrockoPenDrive

Jumbo Files - http://jumbofiles.com/ziaopzf12ham/PenDriveHack.zip.html

SendMyWay - http://www.sendmyway.com//PenDriveHack.zip.html

FileServe - http://www.fileserve.com/file/NUqVFKa/PenDriveHack.zip

WUpload - http://www.wupload.in/file/2660871701

HotFile - http://hotfile.com/dl/145735411/792a1e9/PenDriveHack.zip.html

Deposit Files - http://multimirrorupload.com/redirect/FE6QUAFX/4

Oron - http://www.oron.com/gly69ntr79bo/PenDriveHack.zip.html

zShare - http://www.zshare.net/download/99022354d9bca6bd/

SendSpace - http://www.sendspace.com/file/cpc4dc

Ziddu - http://www.ziddu.com/download/18539560/PenDriveHack.zip.html

2Shared - http://www.2shared.com/file/FtdY_aKp/PenDriveHack.html

FileServe - http://www.fileserve.com/file/sHaMKew/PenDriveHack.zip

MediaFire - http://www.mediafire.com/?85ks4hc55hz200n

ZippyShare - http://www18.zippyshare.com/v/25801427/file.html

FreakShare- http://freakshare.com/files/u25o3jlj/PenDriveHack.zip.html

VerZend.be - http://www.verzend.be/gxzwen6mqsvh/PenDriveHack.zip.html

EasyUpload - http://easyupload.net/files/get/yR643jgTu_/pendrivehack.zip

Crime vocabulary & Crime Idioms

Murder: Matar a un ser humano de manera voluntaria y no por negligencia.
Robbery: Tomar o intentar tomar cualquier cosa de valor de una persona por la fuerza o amenaza.
Crime (noun) es cualquier accion ilegal. Por ejemplo, matar a tu jefe es un crimen(aun si el fuera una persona terrible)
Crime nunca es usado como verbo. Para este caso decimos 'commit a crime'. Commit es el verbo que colocamos con 'crime': y basicamene significa 'do'.
'He was sent to prison for a crime that he didn't commit.'
A person who commits a crime is a criminal:
'A dangerous criminal escaped from prison.'
Criminal is also used as an adjective:
'There is a lot of criminal activity in this area.'
Cual es la diferencia entre rob y steal?
Rob (verb) significa tomar algo de un lugar o persona.
'Rob a bank.' El dinero es tomado del del banco, no el banco en si.
'Rob and old man.' Se toman las cosas de valor, no la persona en si.

Steal (verb) significa tomar algo.

'I stole candy when I was a child.'
'My bag was stolen at the party.'

Steal = present tense / stole = past simple / stolen = past participle

Theft es la forma sustantiva del verbo steal.

A thief es el nombre general que damos a alguien que roba algo.

Types of crime and types of criminal

Arson - es el crimen de incendiar parra destruir algo, en especial una construccion.
Arsonist – es la persona quien empieza a incendiar para dañar o destruir algo.

Bank robbery (noun) – es el acto o crimen de robar dinero de un banco.
Bank robber – es la persona que roba de un banco.
Rob – verbo

Burglary (noun) – es el crimen de robar de un edificio.
Burglar – una persona que roba de un edificio
Burgle -verbo

Manslaughter (noun) - el crimen de matar a una persona por alguien que no queria hacerlo.

Murder (noun) – el crimen de matar a alguien.
Murderer – una persona que mata.
Murder – verbo

Mugging (noun) – el acto de atacar a alguien y robarle su dinero.
Mugger – la persona que ataca a alguien para robar su dinero.
Mug – verbo

Shoplifting (noun) – tomar algo de una tienda sin pagar.
Shoplifter – una persona que roba de las tiendas.
Shoplift - verbo

Smuggling (noun) - el acto de tomar cosas o personas de un lugar de forma secreta e ilegal.
Smuggler – la persona que toma cosas o personas de un lugar secreta e ilegalmente.
Smuggle - verbo

Pickpocketing (noun) – el acto de robar cosas fuera del bosillo o carteras secretamente.
Pickpocket - una persona que roba cosas fuera del bolsillo o carteras en secreto.
Pickpocket - verbo

Otras personas lo asocian con crimen
Victim – la persona que realiza el crimen.
'The criminal stole the victim's car.'

Witness – son las personas que vieron pasar el crimen.
'Many witnesses saw the bank robber leaving the bank.'

lunes, 20 de agosto de 2012

Who, Whom, Whose

El siguiente articulo es un mini-tutorial en los usos de "who","whom" y "whose".
Sujetos, Objetos y Formas Posesivas
Para comprender como usar "who","whom" y "whose", primero tienes que comprender la diferencia entre sujeto, objeto y formas posesivas.
Sujetos hacen una accion
  • He loves movies
  • She goes to school.
  • We enjoy Chinese food
Los objetos reciben la accion
  • The teachers like him
  • Thomas knows her.
  • The actor smiled at us
Formas posesivas nos dicen la persona a la que algo pertenece.
  • His bike is broken
  • I like her new book
  • The teacher graded our homework
"Who" es un sujeto pronominal
"Who" es un sujeto pronominal como "he","she" y "we" en los ejemplos de arriba. Nosotros usamos "who" para preguntar que persona hace la accion o que personas lo realizan de cierto modo.
Ejemplo
  • Who made the brithday cake?
  • Who is in the kitchen?
  • Who is going to do the dishes?
"Whom" es un objeto pronominal
"Whom" es un objeto pronominal como "him","her" y "us". Usamos "whom" para preguntar que persona recibe una accion.
Ejemplo
  • Whom are you going to invite?
  • Whom did he blame for the accident?
  • Whom did he hire to do the job?
"Whose" es un pronombre posesivo
"Whose" es un pronombre posesivo como "his","her" y "our". Usamos "whose" para averiguar a que persona le pertenece algo.
Ejemplo
  • Whose camera is this?
  • Whose dog is barking outside?
  • Whose cellphone keeps ringing?
"Who", "Whom" y "Whose" en preguntas indirectas
Las oraciones de arriba contienen un ejemplo de pregunta indirecta.
  • I don't know whom he invited
Tales oraciones usualmente comienzan con una frase tal como "I am not sure" o "He doesn't know" or "We don't care". Solo ignoramos la primera parte de la oracion y miramos la pregunta indirecta para decidir si usamosm "who","whom" o "whose". Preguntate a ti mismo si la pregunta indirecta requiere un sujeto, objeto o forma posesiva.
Ejemplos.
  • He doesn't know who the boss of the company is. SUBJECT OF THE INDIRECT QUESTION
  • I don't care whom you invite.OBJECT OF THE INDIRECT QUESTION
  • She isn't sure whose car that is. "WHOSE" SHOWS POSSESSION OF CAR
"Who","Whom" y "Whose" en clausulas de adjetivo.
  • I know the man who won the contest
Las clausulas de adjetivo son usadas para describir un sustantivo en la oracion principal. En el ejemplo de arriba, la clausula de adjetivo nos dice acerca de "el hombre". Solo ignora la oracion principal y mira la clausula de adjetivo al decidir ya sea usar "who","whom" or "whose". Preguntate a ti mismo si la clausula de adjetivo requiere un sujeto, objeto o forma posesiva.
Ejemplos
  • We knew the actress who starred in the movie.SUBJECT OF ADJECTIVE CLAUSE
  • They hired the man whom we interviewed last week.OBJECT OF ADJECTIVE CLAUSE
  • She knew the family whose house we bought."WHOSE" SHOWS POSSESSION OF HOUSE
"Whom" es menos comun
La forma "whom" se esta convirtiendo menos comun en ingles. Muchos nativos hablantes de ingles piensas que "whom" suena extraño. Esta tendencia es particularmente comun en Estados Unidos. Especialmente cuando se combina con preposiciones, la mayoria de personas prefieren usar "who" como el objeto pronominal. Para la mayoria de nativos hablantes de ingles, los ejemplos de abajo suenan bastante natural.
Ejemplos
  • Who did you come to the party with?
  • I don't know who he gave the book to.
  • That is the woman who I was talking to.
  • Who did you get that from?
  • Do you have any idea who he sold his car to?
  • That is the person who I got the information from.

viernes, 17 de agosto de 2012

Actividades para aprender inglés (niños)


Se acaba de poner en marcha en el día de hoy, la sección GrammarZone de la web EnglishZone, un portal de inglés para niños que también ofrece una sección de fonética y de juegos de vocabulario.
EnglishZone es una magnifica web para niños en la que podrás encontrar gran cantidad de juegos, historias, canciones e imprimibles. Además, las actividade en flash de EnglishZone están diseñadas para poder usarse en pizarras interactivas.
GrammarZone se irá ampliando sucesivamente. De momento tenemos ya algunas actividades básicas de gramática del nivel "words" (palabras). Más adelante se irán añadiendo actividades a nivel oración y a nivel texto.

Trabalenguas (tongue-twisters) para practicar la pronunciación

Un aspecto cultural de la mayoría, por no decir todos, los idiomas, son los trabalenguas. En inglés trabalenguas se dice "tongue twisters" y tiene exactamente las mismas connotaciones que en español, es decir, son unas líneas cuyos objetivos es que se te trabe (o se te gire) la lengua.
Didácticamente hablando, los trabalenguas son una buena forma de pronunciar la pronunciación. ¿Qué sonidos son los que más difíciles te resultan pronunciar? Seguro que existen trabalenguas que los trabaje.
Para ello te recomendamos que eches un ojo a los siguientes. Practica y leelos de corrido. Recuerdas que la experiencia es la madre de la ciencia y que repitidiendo y repitiendo sonarás como un hablante nativo.
Tongue Twisters

Audio books, mejora tu inglés escuchando libros

Los audiobooks existen en los países anglosajones desde hace mucho tiempo. Con las nuevas tecnlologías, los audiobooks han pasado de venderse en cassette o cd, a editarse en formato MP3 o MP4 y poder ser bajados de numerosas páginas webs que se dedican a esto.
Como sabéis, el objetivo de nuestro blog, es ofrecer recursos gratuitos para el autoaprendizaje de la lengua inglesa, y por tanto, aunque recomendamos el uso de los audiobooks, nuestro compromiso es ofrecerlos de forma gratuita.
Aquí encontrarás una sección donde poder descargarlos. Algunos websites son de pago, pero si están listados a continuación es porque tienen una sección de audiobooks gratuitos.
Audio Libra
- Audiobooks for free
- Free Classic Audiobooks
- LibriVox
- Literal Systems
- Open Culture

Videos para aprender inglés en YouTube

Todos conocemos YouTube, el mayor portal de vídeos existentes en la web. YouTube se ha convertido también en un buen recurso para aprender o mejorar inglés online, habida cuenta de que ofrece videos reales, o producidos especialmente para enseñar inglés, de corta duración, ideales para el autoestudio o para ser utilizados en clases.
Hoy queremos proponerles los siguientes canales:
- Curso de inglés de Crispy
- Aprender inglés blog
- Aprender inglés gratis

Ejercicios de gramática y vocabulario de ingles listos para imprimir

Se trata de ESLPDF.com, una web repleta de actividades en pdf para visualizar o imprimir. El contenido ha sido creado por profesores de inglés con gran experiencia, por lo que el nivel de calidad es supremo.
Dividida en secciones de gramática y vocabulario, sus ejercicios están secuenciados según el nivel al que corresponden. Las hojas en pdf contienen las soluciones al final de la página, por lo que también puede servir de autoestudio.
Para visualizar los archivos pdf necesitarás tener instalado un lector de pdf como Adobe Acrobat Reader.
Si conoces más recursos de este tipo, no dudes en comentarlo.

miércoles, 15 de agosto de 2012

La marca esta por encima de la calidad

Extraido de La Industria-Marzo 2012
Estudio revela que los consumidores, a la hora de comprar, prefieren productos de renombre.
Esta demas decir que las prendas de vestir hechas en el Peru son de alta calidad; sin embargo, al momento de comprar, los consumidores valoras mas los costos, los modelos exclusivos y las marcas por encima del producto, sin importar que sean chinas, indias o colombianas. Entonces, ¿que pueden hacer los productores nacionales para obtener para obtener la preferencia del publico consumidor?. La respuesta es sencilla: identificar al cliente, trabajar en sus gustos y construir una marca.
Solo conociendo al consumidor, se augura el exito en las ventas. Las Pymes confeccionistas deben de romper sus actuales paradigmas, innovando sus procesos tanto de produccion como de gestion, para satisfacer las demandas de los nuevos y exigentes mercados, segun revelo un reciente estudio de mercado "Tendencias de consumo de la moda en el Peru", realizado por la empresa Directo Peru y por el Ministerio de la Produccion.
"Los confeccionistas de prendas de vestir deben de informarse sobre los tipos de prenda que usa la gente, si usa polos con cuello o sin cuello, si prefieren un pantalon jean o de vestir, si lo compra en un centro comercial o en un campo ferial. Los empresarios, ya sean pequeños o medianos, tienen que tomar decisiones basadas en informacion y no en la intuicion para que logren entrar en el mercado nacional de forma exitosa", afirmo Omar Yrala Bustamante, director de estudios de Directo Peru.
Dicho informe recoje el sentir de los consumidores y vendedores de prendas de vestir de las ciudades que concentrar el mayor numero de poblacion en el Peru: Lima, Arequipa, Cusco, Puno, Trujillo, Chiclayo, Iquitos y Ayacucho, tomando como base 2 productos bandera del pais, como el algodon y la fibra de alpaca.
Otra de las caracteristicas del comprador textil peruano es su gusto de comprar en los grandes almacenes y llevar 'muy orgulloso' sus bolsas para que los demas lo vean.
Marca vs Calidad
Tras analizar las respuestas de los mas de 1600 encuestados, entre consumidores y comerciantes, el estudio demostro que el Peru necesita, mas que promocionar la calidad de sus productos, desarrollar marcas textiles que compitan con los productos chinos que ingresan al pais en gran cantidad y a bajo precio(y por consiguiente, de baja calidad).
"El problema es que el peruano promedio no conoce de calidades. La mayoria asocia la calidad con la marca y no le importa pagar mas para satisfacer una necesidad social y de ego, de demostrar a los demas que usa prendas de buena marca, sin importar si sea original o no, por ejemplo. En el Peru estamos desarrollando productos de buena calidad, pero no nos estamos esforzando en decirles a la gente 'esta es mi marca, esto soy yo y valorame'", preciso el ejecutivo.
Otra de las caracteristicas del comprador textil peruano es su gusto de comprar en los grandes almacenes y llevar 'muy orgulloso' sus bolsas para que los demas vean que compro en esas tiendas y no en el mercado. "Y ese el exito de los grandes centros comerciales ubicados en los sectores C y D, cuya gente se esfuerza mas para obtener un estatus y asume que los productos que se venden alli son de calidad y en realidad, seamos sinceros, la mayoria no lo es", preciso Yrala Bustamante.

Mercado Regional
Si hablamos de pollo a la brasa, la mayoria piensa en Pardo's, Norky's o Rocky's., restaurantes peruanos que lo podemos encontrar en Estados Unidos o en Chile. Y asi como en este sector de la gastronomia se esta desarrollando marcas y franquicias, debemos de hacerlo en el sector textil y enfocarnos, primero, en el mercado regional.
"Trujillo es un mercado muy dinamico por la explotacion del turismo. Ademas, es la ciudad mas importante de la region norte y los empresarios textiles deben de explotar eso, empezando primero con una campaña que se focalice en toda la zona norte e identificando a un cliente especifico, por ejemplo creando una marca de moda juvenil, pero sin dejar de producir ropa para adultos. La tendencia actual es enfocarse en segmentos y dejar la produccion a volumen", comento Omar Yrala Bustamante.
El director de estudios de Directo Peru nos comento un hecho anecdotico en los gustos del consumidor trujillano. Indico que el estudio detecto que 49% de las familias tiene una prenda de alpaca que lo adquirio en viajes al interior del pais. "El trujillano es un turista que compra para el y para su familia. Y eso ha hecho que la adquisicion de prendas de alpaca como chalinas, chullos y chompas, sea mayor que los habitantes de otras ciudades de la costa, por ejemplo supera a Lima (35%)", informo. A decir del ejecutivo, el mercado de las prendas de alpaca es "un buen segmento a explotar"."Muchos adquieren estas prendas en ferias artesanales con diseños tipicos incaicos, que no lo usan cotidianamente. Entonces, el cambio seria hacerlas mas delgadas y de colores enteros, con diseños sencillos que se puedan usar para ir al trabajo, por ejemplo. Hay que reorientar la produccion y atacar al mercado femenino, que aprecia esta fibra natural y que es considerada exclusiva", recomendo.
El Peru necesita, mas que promocionar la calidad de sus productos, desarrollar marcas textiles que compitan con los productos chinos que ingresan al pais
Publicidad y marketing
Entonces, conociendo el esquema mental con lo que se mueve el consumidor, lo que le queda al empresario es adaptarse para poder vender mas. "Si yo se que se valora la marca por encima de la calidad, entonces no voy a gastar enseñandole a mi comprador a reconocer una buena prenda, seria muy absurdo y un trabajo muy largo. Lo mejor es desarrollar una marca a traves de una campaña de publicidad y de marketing", considero el director de proyectos de Directo Peru.
A modo de ejemplo, Omar Yrala recordo la campaña de un desodorante que "vende sexo seguro"."En la campaña de este producto no te dice:'Soy el mejor desodorante o soy el mas barato', sino garantiza a los muchachos que van a tener sexo y lo compran. El empresario peruano tradicional aun piensa que si su producto es de mejor calidad, entonces deben preferirlo y no es asi. Ahora, el producto de mejor calidad en el mundo no funciona si no se hace un trabajo sobre la marca", preciso.

lunes, 13 de agosto de 2012

SEO Tools-Review of ArticleSender.com

I recently was invited to try out a new free article service at http://www.ArticleSender.com. For those of you who aren’t familiar with the world of article writing, there’s a lot your missing out on. More to come on that later.

ArticleSender.com submits your site to various article directories and Google/Yahoo groups. They claim they “drop your article in 30,000 webmaster faces.” Which is true to a degree since they are probably counting the number of members in each Google and Topica group, but it is a little misleading. I actually counted about 42 actual sites/groups it submits to.

For those of you interested in the list

Topica Groups: Free Ezine Content

Topica Groups: Click for Content

Topica Groups: Free Reprint Articles

Topica Groups: Article Review

Topica Groups: Free Articles

Topica Groups: Best Writers

Topica Groups: Article Depot

Your Personal Writer

Seniority

Jorbins

Marcomm Wise

Webhosts Online

Web Pro News

Promote Newz

RL Rouse

The Free Paper

Emoney Monthly

Glossary of Terms

TF Links

Star Developer

Cyber Indian
Big Thicket Directory

Megri Soft

Alternative Finance

AdsWise

What U Seek

AddTo

SearchMom

Business Toolchest

Link Snoop

Website Promotion Ranking Ser

Articles 4 Content

The Ezine

How To Advice

Blog Widow

Article Point

Free Ezine Site

Free Ezine Articles

UniTerra

Article Depot

BPubs Main Site URL

Article-Dir

For those of you who think this is going to be a negative review of their service you are going to be disappointed. For how new their service is I actually found it VERY good and best of all it’s FREE. The sign up and Authors Panel is very easy to use and best of all quick(for those of you who are familiar with article submission software you will definitely appreciate this). It doesn’t make you repeat information. It fills in the blanks with everything it already knows. The process of getting your first article submitted is very quick and easy, and each one after takes less than a minute if you already have the article written.

The submission time for each article from the time I hit the button took about 4-5 days. Which is good since your girlfriend is probably starting to miss you since my last article. I assume this is dependant upon the current load on the server. This is too bad because I predict this service will become too popular too quick. I have a feeling the owners are going to have a complete panic attack the day a major site decides to spill the beans about their site to their thousands of visitors. From what I understand ArticleSender.com offers quicker submissions if you make a donation to their site. This seems very reasonable and to me personally well worth it since we’d all hate to lose a great service like this to under funding, but like with everything else, try before you buy.

From my quick lazy scan of the forums I heard talk of them adding the many hundreds of sites that use ArticleDashboard software. This gets me excited because this is the first step in making article submiting truely worth the hassle since this is what will gain you the most static in-content-links. I predict the moment they add those article sites they will quickly become the unstoppable standard in article submission services. Then we can look forward to weeding through the hundreds of cheap rip offs that will follow.

domingo, 12 de agosto de 2012

Exportar a Excel DatagridView en C#.NET 2008, SQL y BD AdventureWorks

Bueno aqui lo que haremos sera exportar una grilla cargada del formulario a Excel:



bueno para eso cargamos la grilla con alguna BD la que deseen yo lo que hice para este ejemplo fue poner este codigo en el evento Load del Form

            string constr = @"Data Source=XSaint;Initial Catalog=AdventureWorks;Integrated Security=True";
            SqlConnection con = new SqlConnection(constr);
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Production.Culture", con);
            DataSet ds = new DataSet();
            da.Fill(ds, "Categories");
            dataGridView1.DataSource = ds.Tables[0];
            for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;

            }
Ahora cargamos la referencia:
Pulsamos Aceptar. Ahora escribimos(o copian :D) esta linea
using nmExcel = Microsoft.Office.Interop.Excel;
lo colocan debajo de la llave de namespace WindowsFormsApplication1. y en el evento click del Boton Exportar a Excel ponen este codigo:
nmExcel.ApplicationClass ExcelApp = new nmExcel.ApplicationClass();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Columns.ColumnWidth = 12;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
DataGridViewRow Fila = dataGridView1.Rows[i];
for (int j = 0; j < Fila.Cells.Count; j++)
{
ExcelApp.Cells[i + 1, j + 1] = Fila.Cells[j].Value;
}
}
// ---------- cuadro de dialogo para Guardar
SaveFileDialog CuadroDialogo = new SaveFileDialog();
CuadroDialogo.DefaultExt = "xls";
CuadroDialogo.Filter = "xls file(*.xls)|*.xls";
CuadroDialogo.AddExtension = true;
CuadroDialogo.RestoreDirectory = true;
CuadroDialogo.Title = "Guardar";
CuadroDialogo.InitialDirectory = @"c:\";
if (CuadroDialogo.ShowDialog() == DialogResult.OK)
{
ExcelApp.ActiveWorkbook.SaveCopyAs(CuadroDialogo.FileName);
ExcelApp.ActiveWorkbook.Saved = true;
CuadroDialogo.Dispose();
CuadroDialogo = null;
ExcelApp.Quit();
}
else
{
MessageBox.Show("No se pudo guardar Datos .. ");
}
ahora al presionar el boton les saldra una ventana para que escriban el nombre del archivo Excel.
y cuando abran el documento les saldra como la tabla:

Optimizador de Consultas SQL Server

En este ejemplo, queremos extraer los datos de las líneas de pedido que más dinero han proporcionado al negocio. Extrapolando este ejemplo a la base de datos AdventureWorks, podríamos escribirlo así:

select od.*
from
(
select SalesOrderID,
MAX(LineTotal)
as max_Total
from Sales.SalesOrderDetail
group by SalesOrderID
)
mx INNER JOIN
Sales.SalesOrderDetail od on
mx.SalesOrderID=od.SalesOrderID and
mx.max_Total=od.LineTotal

Quisiera hacer un inciso en este punto para comentar que en muchas ocasiones hemos visto en clientes que para resolver esta consulta primeramente creaban una tabla temporal (variable o no, eso da igual), insertaban los datos en dicha tabla y posteriormente hacían el join con la tabla final para obtener los datos. Como podréis imaginar, esa opción es muy ineficiente, implicando la necesidad de unos recursos de más que pueden ser perfectamente evitables reescribiendo la instrucción al estilo que el ejemplo muestra.
Una vez hecha la puntualización, si queremos que la consulta se resuelva de forma eficiente, nos hace falta un índice sobre las columnas SalesOrderId y LineTotal, algo que hace la siguiente instrucción:

CREATE
NONCLUSTERED
INDEX nci_Total ON [Sales].[SalesOrderDetail](SalesOrderID, LineTotal)

Si mostramos el plan de ejecución, veremos que usa el índice que acabamos de crear:

Hasta aquí nada extraño ni fuera de lo común: SQL Server ha creído oportuno usar el índice nci_Total para agrupar los resultados en base a una columna y extraer el valor máximo de la otra columna. Luego tan sólo tiene que hacer un hash match para mostrar los datos solicitados (en este caso, todas las columnas de la tabla).
Sin embargo, ahora viene uno de los jefes que nos pide una serie de modificaciones en la consulta en un momento dado, ya que ahora nos pide sacar los datos de las últimas líneas de pedido de cada uno de los pedidos (campo ModifiedDate). Y como nos lo pide para ayer, nosotros, para cumplir con las exigencias, dejamos la instrucción así:

SELECT od.* 

FROM
( 

    SELECT SalesOrderID,
MAX(LineTotal)
AS max_Total, MAX(ModifiedDate)
AS max_Date 

    FROM [Sales].[SalesOrderDetail] 

    GROUP
BY SalesOrderID 

    ) mx INNER
JOIN [Sales].[SalesOrderDetail] od ON mx.SalesOrderID=od.SalesOrderID AND mx.max_Date=od.ModifiedDate
Si vemos el plan de ejecución de esta consulta, vemos que es muy pesada porque no hay un índice útil para agrupar los datos de la forma en la que se solicitan, por lo que se tiene que recorrer dos veces la tabla (Clustered Index Scan) para resolverla. Pero como era una petición puntual, no creemos conveniente (con toda la razón del mundo) crear un índice.
Una vez pasado el momento de crisis, volvemos a modificar la consulta, pero con las prisas del día a día la dejamos así:
SELECT od.* 

FROM
( 

    SELECT SalesOrderID,
MAX(LineTotal)
AS max_Total, MAX(ModifiedDate)
AS max_Date 

    FROM [Sales].[SalesOrderDetail] 

    GROUP
BY SalesOrderID 

    ) mx INNER
JOIN [Sales].[SalesOrderDetail] od ON mx.SalesOrderID=od.SalesOrderID AND mx.max_Total=od.LineTotal
El problema está en que se nos olvidó quitar el campo max_Date de la consulta interna, con lo que el índice nci_Total no va a ser suficiente para resolver eficientemente la instrucción… ¿Seguro? Analicemos el plan de ejecución:
No, no he vuelto a copiar el plan de ejecución anterior, la instrucción es diferente (aparece MAX(ModifiedDate)). Sin embargo, como SQL Server sabe que ese campo no va a ser accedido en ninguna otra parte de la consulta, directamente lo obvia: ha conseguido que un olvido por culpa del día a día no tenga implicaciones en el rendimiento del servidor.
Con lo cual volvemos al párrafo inicial: cuando me encontré con la situación parecida a la que muestro en el ejemplo, por un lado me sorprendió al ver que usaba el índice para resolver la consulta y que no tenía en cuenta el resto de las columnas sobre las que se aplicaban funciones de agregado, pero por otro lado no me sorprendió porque realmente es lo mismo que hace cuando diariamente combinamos dos tablas: al procesar la instrucción, una de las fases es ver qué es lo que necesita y qué no para resolver la consulta, no cogiendo nada más que lo imprescindiblemente necesario.
Además, de este modo podemos comprobar lo importante que es pedir sólo lo que se va a usar. En muchas ocasiones hemos escuchado decir también que solicitan todos los campos de la tabla “por si acaso más adelante se necesitan”. Como si eso no implicara nada, ¿verdad?

[PC GAME] Dragon Ball Z Budokai 3 - Actualizado


Descripcion

Budokai Tenkaichi 3 cuenta con 100 personajes (161 con transformaciones), la mayor lista de personajes en cualquier juego de Dragon Ball Z, así como una de las más grandes en cualquier juego de lucha. Ryo Mito afirmó una vez que el juego iba a presentar personajes nunca antes vistos exclusivamente para el juego, resultando al final personajes tan dispares como Neo Shenron y Hatchan. Gamestop ofrece una versión exclusiva con un DVD bonus con los 10 mejores batallas de la series de televisión votado por los aficionados en la fecha de publicación.

Varios de los nuevos rasgos notables incluyen: repetición de batallas, escenarios de noche y día, la capacidad en línea de Wii y los discos de fusión de PS2. La repetición de batalla permite a los jugadores captar sus peleas favoritas y guardarlas en el disco duro para verlas más adelante. Los escenarios de noche y día permiten batallas más precisas en la historia de Dragon Ball, así como la capacidad de transformarse en Ozaru mediante el uso de la Luna. También hay varias diferencias de tiempo, como el amanecer y la tarde, no todos los escenarios proporcionan diferentes etapas del día. La versión de Wii tiene capacidad para jugar en online, el primer juego de la serie de tener tal característica. Los jugadores pueden luchar contra cualquier persona de todo el mundo con un sistema de ranking que muestra la posición actual del jugador en comparación con cualquier otra persona. Como compensación por la falta de esta característica, Spike ha añadido un nuevo “Sistema de Disco Fusión” a la versión de PlayStation 2, insertando una copia de Budokai Tenkaichi o Budokai Tenkaichi 2, lo cual desbloquea Batalla definitiva y Batalla definitiva Z, modos que aparecen en los respectivos juegos necesarios para desbloquear.

Descargar

sábado, 11 de agosto de 2012

Dragon Ball Z Mugen 2007 - PC!!!!! DESCARGAR LIBRE SIN PROBLEMAS


Dragon Ball Z MUGEN Edition 2
Fecha: 13 de abril de 2007
Tamaño: 504MB
Idioma: Inglés

M.U.G.E.N. es un motor grafico para crear juegos de lucha en 2D. En su época tuvo mucho éxito entre los aficionados, ya que con él se podían crear personajes, escenarios y barras de vida desde juegos existentes
Descripción de Dragon Ball Z MUGEN Edition 2

Juego de lucha en 2D basado en la serie Dragon Ball Z.

En Dragon Ball Z MUGEN Edition 2 podrás elegir a tus personajes preferidos de esta conocida serie de manga animada.

Consta de 4 modos diferentes de juegos:

- Arcade.
- Uno contra Uno.
- Dos contra dos.
- Entrenamiento.

Además, cuenta con unos gráficos más logrados que juegos similares de estas mismas características.

Excelente juego de peleas utilizando el motor grafico MUGEN!!!
100% recomendado


Parte 1
Parte 2
Parte 3

Pokemon DIAMANTE y PERLA - ESPAÑOL para PC!!!

Aqui les pongo los links para que descarguen los roms de pokémon para el Nintendo DS,
así como el único emulador en el que se pueden jugar.
Descargar Pack

Tekken 5 para PC Gratis - Descarga Directa



Datos Técnicos

Tekken 3 (PC-Game)
English | 30 MB | PC | Game | Lucha | Namco
Descripción

Tekken 3 es la tercera entrega de Tekken, la popular serie de juegos de lucha
Historia del Juego:
Tras el torneo de Tekken 2, la policía Jun Kazama dio a luz al hijo de Kazuya Mishima, al cual llamo Jin Kazama, recibiendo el apellido de su madre ya que fue ella la que lo crió los primeros años; en cuanto a su nombre, aunque simplemente podía derivar del nombre de Jun, también puede estar relacionado con el nombre del abuelo de Kazuya, Jinpachi Mishima, que fue en realidad el verdadero fundador de la Mishima Zaibatsu (de esto ultimo no se tiene noticia hasta el torneo de Tekken 5). Transcurren los años, en los que madre e hijo, Jun y Jin Kazama, viven en paz en el interior de los bosques de Japón.

parte 1

parte 2

parte 3

parte 4

parte 5

Truco:Como agregar emoticones en Blogger

Emoticones.- Son figuras construidas con caracteres ortográficos, para expresar gestos o emociones en los mensajes enviados y los usuarios las utilizan diariamente en su chat. Algunas de las más usuales son:

Ir a diseño de la plantilla. Después clic en Edición de HTML (no Expandir plantillas de artilugios) y agregas el siguiente código entre y . Preferible que lo pegues casi al final (antes de ), porque puede ser que en algún momento, no quieras esto y se te va hacer más fácil poder ubicarlo para borrarlo.
<script src='http://benjamin0331.googlepages.com/addSmiley.js' type='text/javascript'/>


Entre agregar lo siguiente:
.post-body img#new {

margin:0;

padding:0;

border:none;

}
Esto es para evitar que los Emoticonos se desplacen o se vean con un borde.

- Los emoticones se verán en los post (entradas) y en los comentarios cuando están expandidos. Una vez que el blog acabe de cargar aparecerán los emoticonos.

Nota: Estos emoticones te funcionan bien si es que no utilizas el Leer Más (Entradas ampliables).

viernes, 10 de agosto de 2012

Truco en Windows XP:Cambiar el tamaño de los botones minimizados en la Barra de Tareas

Hola a todos aqui les traigo un truquito que les servira. Cuando minimizan normalmente sus ventanas tienen un cierto ancho por defecto definido en el XP, y cuando son muchas ventanas este ancho se reduce solo si llena la Barra de Tareas, pero que pasaria si este ancho reducido ustedes lo quisieran para siempre y no solo cuando este llena, les pondre 2 imagenes de comparacion para que me entiendan:
como ven este ancho es mas comodo para tener mas ventanas y no ocupen toda la Barra de Tareas como viene por defecto en el Windows XP. Ahora para lograr esto van a Inicio > Ejecutar> Regedit

una vez aqui en la ventana que nos aparezca le damos click en la flecha de la izquierda de HKEY_CURRENT_USER

vamos a Control Panel > Desktop y seleccionamos WindowsMetrics


apareceran muchos valores binarios y DWORD lo que vamos a hacer es damos click derecho en el area de derecha y seleccionamos Nuevo > Valor AlfaNumerico

ponemos de nombre MinWidth. Ahora le damos doble click en este valor creado, saldra una ventana asi:

donde Informacion de Valor saldra 56. Y eso es todo ahora cuando reinicien su PC les saldra como la foto de arriba. Espero les haya gustado este truquito poco conocido.

jueves, 9 de agosto de 2012

Como conseguir .EDU Backlinks a tu sitio web

Porque necesitas backlinks EDU

Las web .EDU son altamente 'confiables' por los motores de busqueda, Google en particular le da mucha importancia a estos sitios.
Backlinks de alta calidad - tal como los backlinks edu - pueden drasticamente incrementar el rankin de las web en los motores de busqueda y ese es el porque de backlink building es tan importante para SEO. Conectando tu web a otros directorios es usualmente visto como un voto de confianza. Usted vera nehirar SER desde que tu consigas backlinks en dominios .EDU.

Como conseguir backlinks .EDU

Dominios .EDU significa que que adquirir backlinks de calidad de tales sitios no es un proceso facil. Esencialmente, hay 3 tipos de sitios para conseguir backlinks .EDU - Blogs, Foros y sitios Wiki.
Encontrar blogs involucra el uso de Google.com. Los codigos son como siguen:
  • site:.edu inurl:blog "post a comment"
  • site:.edu "Powered by BlogEngine.NET" site:.edu inurl:blog "post a comment"
  • site:.edu "Powered by ExpressionEngine" site:.edu inurl:blog "post a comment"
Usando los codigos de arriba, es solo una forma de ingresar cualquiera de los 3 de arriba en el campo de busqueda de Google y damos click en el boton de "Google Search", como detallamos abajo.

  • site:.edu inurl:blog "post a comment" -"comments closed" -"you must be logged in"

Ingresen esto en el campo de busqueda de Google y seleccionar un dominio .EDU de tus resultados de la busqueda. Vayan al final de la pagina del sitio que han seleccionado. Veran una seccion de comentarios similar a esta.

Backlinks from .EDU Forum Profiles

Similar a adquirir los blog .EDU. Los codigos son los siguientes:
  • site:.edu "Powered by vBulletin" inurl:"register"
  • site:.edu "Powered by phpBB" inurl:"register"
  • site:.edu "Powered by PunBB" inurl:"register"
  • site:.edu "Powered by SMF" inurl:"register"
  • site:.edu "Powered by IPB" inurl:"register" 
  • site:.edu inurl:CreateUser.aspx
  • site:.edu inurl:register.aspx
  • site:.edu inurl:"wp-signup.php"
  • site:.edu "powered by expressionengine"
  • site:.edu "powered by vbulletin" inurl:"register.php"
  • "leave a comment" site:.edu
  • "reply to post" site:.edu
Dependiendo de la plataforma del foro utilizado por el dominio .EDU, necesitaras usar ya sea texto estandar, HTML o BBCode. Asumiendo tu keyword es Seo Training el codigo que tu deberias usar sera el siguiente:



HTML: <a ref=”http://www.Yoursite.com>Seo Training</a>

BB Code: [url=http://www.Yoursite.com]Seo Training[/url]
Enter this into the Google’s search field and select an .EDU domain from your search result. Scroll to the bottom of the page of the site you have selected. You should see a comment submission section that will look similar to this.