viernes, 30 de agosto de 2013

Como añadir programas de inicio en Windows 8, Apagar una computadora en Windows 8 y otros tips.

Hace algún tiempo ya estuve trabajando con Windows 8, no entre en mucho detalle, pero puedo resumir que es mucho mas grafico que el Windows 7 (es decir trabajaron mucho mas en su apariencia y el entorno grafico que en otra cosa).
Lo que cambio es la pantalla de inicio, al cargar Win 8, sale una presentación con imágenes de las aplicaciones instaladas, lo nuevo es que se pueden instalar apps como a un smartphone, para ingresar como normalmente se lo hacia antes, hay que escoger "Escritorio" para entrar a la pantalla que aparecía en las anteriores versiones de Windows.
En el escritorio vemos que se mantiene casi todo, pero falta el botón de inicio, y ahí surgen varias interrogantes:
  • Donde esta Panel de Control ???
  • Y ejecutar ???
  • Con que opcion se pueden buscar aplicaciones y archivos ???
  • Como voy a poder aumentar programas al inicio de Windows ???
  • Como puedo apagar mi computadora o reiniciarla con Windows 8
Voy respondiendo de a poco:

Donde esta el panel de Control ???
Para esto es necesario que arrastren el mouse hasta el extremo superior derecho de la pantalla (salganse de la pantalla), y aparecerá una ventana desplegable color negro de fondo y unos iconos grandes, y ......  empezando de arriba hacia abajo, aparece como la ultima opcion, elijan CONFIGURACION que tiene como un icono un engranaje. ( La imagen que sigue la llamaremos Figura 1)


Luego aparecera el submenu de configuracion con la siguientes opciones:
(La imagen que sigue a futuro la llamaremos Figura 2)


En la segunda imagen, deben escoger en la parte superior PANEL DE CONTROL, con esto ya aparece el menu que ya se conoce.

Y la opcion Ejecutar ????

En esta opcion si, hasta donde use el Win8 nos quedamos desamparados la mas rapida es presionar la tecla de Windows + tecla R, la segunda opcion es irse todo a la derecha y arriba que aparezca la Figura 1 y se escoje la opcion de BUSCAR con una lupa como icono.

En esa opcion escriben lo que quieren ejecutar y correrá, claro que este metodo es mas largo, pero es el mas facil de recordar.

 
Con que opcion se pueden buscar aplicaciones y archivos ???
 
Hay que seguir los mismos pasos del anterior tip, para la opcion de ejecutar.
 
Como aumentar programas al menu de inicio de Windows 8 ???
 
Esta opcion si que no hay en win 8, segun lei tal vez se vuelva a incluir el que aparezca el boton de inicio en la barra de herramientas de Windows (mediante un parche Service Pack), para que se pueda editar el inicio de Windows y sea facilmente gestionable el quitar o aumentar archivos. Pues hay bastantes reclamos sobre esto.
Para inciar, hay que apretar la tecla de Windows y la tecla R, y en la opcion que aparezca de ejecutar hay que escribir Shell:Startup

 
 
Y en el menu de inicio ya podemos aumentar y quitar los programas de inicio que querramos.

 


 
Como puedo apagar mi computadora con Windows 8 ????
Tampoco pude encontrar al inicio esta opcion, para esto hay que ir a la parte derecha superior (fuera de la pantalla) y que aparezca el menu de la Figura 1, escoger la opcion CONFIGURACION que tiene un icono de un engranaje, y en la parte baja aparecen 6 iconoces seguidos, la del medio y abajo es un icono redondo con una linea al medio que dice Apagar Equipo, se hace clic en ella y aparecen las opciones de Reiniciar, Apagar y Suspender.
 
 
 
Tips breves sobre las opciones que desaparecieron con Windows 8, espero les haya servido, yo tuve que encontrarlas una por una en foros separados, yo las junte para lograr una solucion. Hasta la proxima.

miércoles, 17 de abril de 2013

Programando con AJAX

Estos son los primeros pasos que estoy dando con ajax, espero que sea de utilidad a alguien mas que como yo, este empezando. (Lanzo esto luego de 15 años de su creacion, pero seguro alguien se aventurará a aprender este lenguaje en muchos años mas, asi que nunca es tarde).

Una breve reseña historica nos traslada hasta el año 1998, Ajax surge como solucion para desarrollar la versión web (OWA - Outlook Web Access) del servidor de correo Microsoft Exchange, donde se buscara una pagina que periodicamente se vaya actualizando y se analizaron varias opciones para conseguir ese objetivo, en respueta a esto se crea Ajax. Otras aplicaciones web bastante utilizadas en internet que utilizan esta técnica son: Gmail, Google suggest y Google Maps.

AJAX (Asyncronic Javascript and XML) no es un lenguaje de programacion, es trabajar con varios lenguajes  HTML XML JAVASCRIPT y PHP, o en lugar de PHP trabajar con otro lenguaje C#, Visual Basic, Java, u otro lenguaje web.

Las principales razones por las que AJAX es una mejor técnica de programacion son las siguientes:
  • AJAX, ayuda a que se consulte con menos información al servidor HTTP para un resultado, y solo consulta las veces necesarias. 
  • La posibilidad de hacer peticiones al servidor sin tener que volver a cargar la página.
  • La posibilidad de analizar y trabajar con documentos XML.
Quien hace que todo esto sea posible es el objeto XMLHttp que es parte de ActiveX, inicialmente fue implementada por Internet Explorer, y luego los demas navegadores web tambien implementaron este objeto junto con sus metodos y propiedades.

En resumen eso es lo mínimo de teoria que se necesita saber  sobre AJAX, a continuación lanzaremos un ejemplo pequeño, suficiente para entender como funciona este metodo.

Necesitamos un navegador, puede ser Internet Explorer  6, Firefox, Safari, Chrome que soporten el objeto XMLHttp, en la actualidad casi todos los navegadores soportan, solo hay que tener cuidado con navegadores antiguos anteriores a los años 2000 o 1999.

Necesitamos tener instalado un servidor de paginas, puede ser IIS, Apache, Apache Tomcat, Cherokee, etc etc. El interprete que instalemos definirá el lenguaje con el que trabajemos. Es decir, en este momento se escogerá si usaremos PHP, ASP, C++, C#, Java .......

Podemos tener un IDE instalado, el de preferencia, incluso es posible trabajar desde el mas sencillo y basico editor de texto que posean en su sistema operativo.

Ahora continuemos con la rutina BASE para trabajar con AJAX, esto lo colocan en el directorio raiz de su pagina web.

//Obtiene una instancia del objeto XmlHttpRequest
function ObtenerObjetoAjax() {
      var peticionHttp = null;
      try {
           //Comprobación para navegadores Firefox, Opera y Safari
           if (window.XMLHttpRequest){
               peticionHttp = new XMLHttpRequest();
           }
           //Comprobación para navegadores IE
           else if (window.ActiveXObject) {
           //Comprobamos para JavaScript 5.0. Si da error, //creamos un objeto con la versión anterior
                   try {
                          peticionHttp = new ActiveXObject("Microsoft.XMLHTTP2");
                   }catch (e1) {
                          peticionHttp = new ActiveXObject("Microsoft.XMLHTTP");
                          }
           }
           //Comprobación para IceBrowser
           else if (window.createRequest) {
                   peticionHttp = window.createRequest();
           }//Si el navegador no soporta ajax retornamos null
           else {
                    peticionHttp = null;
                    }
      }catch (e2) {
             return null;
      }
      return peticionHttp;
}

Luego creen un archivo index.html con lo siguiente:



Y el archivo horaservidor.php con lo siguiente:

 echo "Hola, son las ".date("H:i:s");
?>


Por ultimo hay que aumentar unas funciones ya personalizadas que ya varian del metodo de programar de cada quien, aqui un ejemplo pequeño pero donde se puede comprender perfectamente como funciona todo esto ( En el mismo archivo ajax.js)

function ObtenerDatosASinc(url, tipoResultado, metodo, parametrosPost,cacheDatos, funcionPintarDatos){
         try {//Obtenemos la instancia del objeto XmlHttpObject
                 var objAjax = ObtenerObjetoAjax();
                 //Nos suscribimos al evento onreadystatechange para manejar los
                 //posibles estados de la petición para que se lance la
                 //función recibida por parámetro
                 objAjax.onreadystatechange = function() {
                     switch (objAjax.readyState) {
                        //Petición no inicializada
                        case 0:break;
                        //Conexión con el servidor establecida
                        //(llamada a send)
                        case 1:break;
                        //Enviando petición
                        case 2:
                        //Aquí se podría mostrar un gif que indicase
                        //que se está realizando la petición al servidor
                        //Habría que ocultarlo en el caso 4,
                        //cuando ya se ha recibido la respuesta
                        break; //Recibiendo petición
                        case 3:break;
                        //Respuesta del servidor recibida
                        case 4://Si el status code de la respuesta es 200,
                        //todo ha ido bien
                                 if (objAjax.status == 200) {
                                              switch (tipoResultado) {
                                                      case 'XML':  funcionPintarDatos(objAjax.responseXML); 
                                                                   break;
                                                      case 'TEXT': funcionPintarDatos(objAjax.responseText); 
                                                                   break;
                                                      default:  funcionPintarDatos(objAjax.responseText); 
                                                                   break;
                                              }
                                 }//Si no, no ha ido bien y retornamos el texto
                                 //equivalente al status code
                                 else {
                                             switch (tipoResultado) {
                                                      case 'XML':funcionPintarDatos('' + objAjax.statusText + '');
                                                                  break;
                                                      case 'TEXT':funcionPintarDatos(objAjax.statusText);
                                                                  break;
                                                      default:funcionPintarDatos(objAjax.statusText);
                                                                  break;
                                             }
                                 }
                                 break;
                                 //No hay más estados en la petición,
                                 //por lo que no hacemos nada
                        default:break;
                     }
                 };
                 //Si realizamos la petición por POST
                 if (metodo == 'POST') {
                 //Si no recibimos parámetros ponemos la variable a null
                            if (parametrosPost == 'undefined' || !parametrosPost) {
                                       parametrosPost = null;
                            }
                            objAjax.open('GET', url, true);
                            objAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
                            objAjax.send(parametrosPost);
                 }
                 //Si no la realizamos por GET.
                 else {
                 //Internet Explorer cachea las peticiones por GET,
                 //por lo que agregamos un parametro random si se
                 //quiere evitar
                       if (!cacheDatos) {
                             var separadorUrl =(url.indexOf('?') > -1) ? '&' : '?';
                              url += separadorUrl + 'rndCache=' + Math.random();
                       }
                       objAjax.open('GET', url, true);
                       objAjax.send(null);
                 }
         }catch (e) {
         //Si hay un error mostramos su mensaje
         alert(e.message);
         }
}
//Realiza una petición asíncrona al servidor para obtener la hora
function ObtenerHora() {   
         ObtenerDatosASinc('horaservidor.php', 'TEXT', 'GET', null, false, PintarHora);
}      
//Función para pintar los datos recibidos del servidor
function PintarHora(datos) {    
         document.getElementById('idDivDestino').innerHTML = datos;   
}

Con esto ya tenemos el ejemplo mas sencillo de ajax, no es cosa de otro mundo, funciones de javascript, saber bien php, asp, java, o el lenguaje con el que se trabajara y ser ordenado.

A continuacion un resumen explicando como funciona esto:

Index.html  La pagina que carga primero por defecto, el boton llama a un evento que esta en el archivo ajax.js (en index.html esta declarada previamente la libreria ajax.js, de lo contrario no pasara nada en lo absoluto).

Ajax.js motor principal de la pagina, en esta se guarda el metodo para la creacion del objeto XMLHttpRequest y las funciones mas basicas, de estas ya podemos enviar a otras librerias mas extensas en php, asp, java, js, etc etc.

horaservidor.php Pagina desde donde se devuelve el resultado (la hora) y con la que se actualiza la pagina index.htm.

Sencillo verdad ???? Desde mi punto de vista la practica hace al maestro asi que ahora pueden cambiar las opciones de este ejemplo, hacer que conecte a una BD, que imprima tablas, imagenes, etc etc. AJAX es mucho mas completo, y como se definio antes en las ventajas ahorra muchisimos recursos para no estar actualizando constantemente las paginas.

Espero les haya servido el brevisimo tutorial y a practicar.



Windows no puede encontrar el archivo "search:query=cmd"

Varias veces me ha salido este mensaje de error al encontrar el comando cmd; regedit, msconfig; etc Y por algun motivo tambien me bloquea el escritorio remoto, es decir no me deja conectar, es como si esta aplicacion funcionara mal por algun servicio que se bloquea.
windows cannot find 'search:query=cmd'" error message Windows Serach


Este problema se puede solucionar temporalmente ejecutando desde la antigua pantallita Ejecutar de Win XP, apretando la tecla de Windows + R; y desde ahi ejecutar los comandos cmd; regedit; msconfig, etc lo que no podiamos abrir en la anterior.
Al buscar soluciones, encontre que editaron el regedit, y movieron una serie de cosas creo yo de pura gana, y al final reinician la computadora, pero solo con reiniciar la computadora yo ya solucionaba el problema, asi que esto de editar el regedit esta demas, encontre esta solucion en ingles, copio la referencia de lo que encontré:

http://answers.microsoft.com/en-us/windows/forum/windows_7-files/windows-cannot-find-searchquerycmd/a32eaecd-30f5-4ea6-93dc-0a5308e672fa

A continuacion resumo y traduzco lo que dice en ese post.

Parece ser que hay algun problema con el resultado que devuelve windows al hacer la busqueda de todos los archivos que se usan, hay un minimo y un maximo, y al usar otros programas ma que cmd o el que estemos buscando deja de ser importante y omite este como parte del resultado.
La solucion es darle clic derecho en el boton de Inicio --> Propiedades --> boton Personalizar

En personalizar tienen que hacer dos cosas, aumentar el numero de respuestas de Windows al hacer una busqueda hasta 20 (numero que coloque yo). Y luego destiquear la opcion de "Buscar en archivos y Bibliotecas" escojen a opcion de 'No buscar' luego aceptan, aceptan y aceptan.
Al salir ya funciona la busqueda y encuentra a cmd; regedit; msconfig; y tambien funciona perfectamente el escritorio remoto.

Espero les sirva.
Saludos.

domingo, 7 de abril de 2013

Puede que la batería no esté conectada correctamente al ordenador o que no sea compatible con el mismo

Este mensaje me salio en una sony vaio i5 que venia con Win7, pero que le cambie a Windows 8 Pro.

Primero tuve unos cuantos problemas al instalar Windows, por su tabla de particion GPT, por este hecho, solo pude hacer boot con el Win 8 de 64 bits, pero para esto en el BIOS tiene que estar escogido el modo UEFI para los discos externos, si esta en legacy no dejara instalar y aparece un conflicto con la tabla de particiones GPT.

Cuando finalmente pude instalar Windows 8 en esta portatil, entre a la pagina de Sony Vaio para descargar los drivers y herramientas que vienen por defecto en la portatil, afortunadamente Sony tiene un buen soporte para esto, y pude encontrar todos los drivers y herramientas para Win8.

El problema fue cuando a medio instalar todas las actualizaciones empezó a salir el mensaje de: "Puede que la batería no esté conectada correctamente al ordenador o que no sea compatible con el mismo.........." me preocupe y temi tener que volver a instalar todo el Win8, saque la bateria y la limpie, la volvi a acomodar, nada !!!! , trabaje con un ventilador bajo la portatil y nada !!!! , cuando agote opciones hardware, me puse a buscar soluciones software y pude encontrar que es un mensaje "comun" cuando uno cambia el Sistema Operativo en las sony vaio, en especial en los nuevos modelos cuando se instala los drivers y utilities en desorden.

Hay varias soluciones, este mensaje no significa que la portatil este mal o que la bateria tenga problemas y haya que cambiarla, como indico antes es un mensaje algo común en esta marca.

Las soluciones son 2:
  • La primera es volver a instalar todos los drivers y herramientas de la pagina de Sony para Win 8 en el orden que indique la documentación en la misma pagina. El orden para instalar drivers y utilities si importa en este caso. Al reinstalar todo, debería funcionar sin que aparezca este mensaje. ESTA ES LA OPCION RECOMENDADA; Si no funciona aun queda la segunda solucion.
  • La segunda solucion es eliminar la aplicacion que hace que el mensaje salga en la portatil en el caso del Win7 y el Win8 es 'ISB Utility', hay que entrar al 'Administrador de Tareas' con Ctrl + Alt + Supr, y quitar de las aplicaciones que se estén ejecutando 'ISB utility', luego hay que ir a la carpeta por defecto de la aplicacion y borrarla, no afecta a nada (Esto para win8).

    Para win 7 es mas facil debe ejecutar la herramienta msconfig propia de todos los Windows, luego ir a la pestaña Inicio de Windows y destiquear la opcion ISB Utility para que no se cargue al arrancar, y reiniciar para probar la solucion. Estas dos funcionan yo trabaje con estas. (YO OPTE POR ESTA YA QUE LA INSTALACION DE DRIVERS Y PROGRAMAS ME TOMO BASTANTE TIEMPO , PERO NO ES LA OPCION MAS RECOMENDADA)
OJO QUE LO MAS RECOMENDABLE ES VOLVER A INSTALAR DE CERO TODOS LOS DRIVERS Y LAS UTILITIES CONFORME SE INDICA EN LA DOCUMENTACION DE LA PORTATIL EN LA PAGINA DE SONY. (Valga la redundancia en esta recomendacion)

Espero les sirva esta información tanto como a mi me sirvio en su momento.

viernes, 15 de marzo de 2013

Recuperando informacion de "Notas Rapidas" de Windows 7

Hoy  me ocurrio algo que me dejó frío, todas mis notas del "Notas Rapidas" Sticky Notes habian desaparecido, eran importantes......... tuve que buscar la forma de recuperarlas ...
Encontre muy poca informacion, por eso publico esta ayuda para sirva de ayuda a alguien mas.


PRIMERO
No muevan nada de sus sticky notes, no escriban nada para evitar sobreescribir el archivo donde se guardaron sus notas, si se sobreescribe tendran que usar otro metodo y ya no el sencillo que estoy explicando en estos pasos. El metodo drastico tambien lo explico mas abajo.

SEGUNDO
Deben dirigirse a la carpeta de la aplicacion Sticky Notes C:\Users\(su usuario)\AppData\Roaming\Microsoft\Sticky Notes

TERCERO
Encontraran un archivo llamado StickyNotes.snt, pueden abrir este archivo con el bloc de notas o con la aplicacion de Notas Rapidas %windir%\system32\StikyNot.exe , PERO OJO, si es que este archivo tiene menos de 4 Kb, estan perdiendo el tiempo.

Saquenle un backup a este archivo antes de hacerle cualquier cambio.


CUARTO
Si es que omitieron el primer paso (como yo lo hice) hay salvacion, pero solo si tienen habilitado la opcion de Restaurar Sistema y tienen puntos de restauracion previos registrados, de lo contrario cierren esta pagina y hagan memoria de lo que tenian en sus notas ...........

En la carpeta C:\Users\(su usuario)\AppData\Roaming\Microsoft\Sticky Notes escojan el archivo StickyNotes.snt, deben darle clic derecho y escoger la opcion Restaurar Versiones anteriores, les mostrará un historial de los backups o puntos de restauracion que se hayan generado de ese archivo, esto se crea gracias a los Puntos de Restauracion.

IMPORTANTE, por eso indique antes, si esa opcion esta deshabilitada, entonces aqui les mostrara vacío.

Si logran ver la lista de puntos, escojan una, la opcion recuperar, y luego Aceptar, se salen de todo y al final vuelven a Abrir el Sticky Notes o notas rapidas y listo recuperaron la ultima opcion guarada de sus notas. Yo no pude recuperar todo, pero si gran parte, al menos me libro de hacer memoria de todo cuanto tenia.


Espero les haya servido tanto como a mi me sirvió.

P.D.  MIGRACION DE NOTAS RAPIDAS ENTRE PC's

Gracias al aporte de muchos lectores que pudieron retroalimentar este post, y a pruebas hechas por mi persona, se evidencio que es posible recuperar las notas rapidas en diferentes versiones de Windows a través de este mismo procedimiento. De igual forma se puede migrar el archivo StickyNotes.snt de un PC a otro, PERO CON LA MISMA VERSION DE WINDOWS, entre diferentes versiones no es compatible.
 


Saludos.