domingo, 29 de julio de 2012

Tomar notas en una pagina Web en Firefox



Si eres de los que le gusta tomar nota de lo que esta leyendo, seguro habrás tenido la necesidad de tomar nota en alguna pagina Web que tiene contenido de estudio. Bueno,  me paso a mi, por lo que me puse a buscar un complemento que me permitiera hacer esto, encontré varios, pero el que me convenció fue FloatNotes para Firefox.

Para instalarlo se debe seguir los siguientes pasos.

  • Ir a Herramientas
  • Elegir Complementos
  • En la caja de búsqueda tipear Floatnotes
  • Presionar botón instalar



Para utilizarlo, seleccionas el texto de la pagina y haces click sobre el icono del complemento que aparece al lado de la caja de búsqueda de Firefox.


Aparecerá una caja donde se puede ingresar los comentarios y notas.



Fuente
http://j.gs/1FtE

sábado, 28 de julio de 2012

Vibraciones personalizadas por contacto en Iphone



Aveces mantengo mi celular en modo vibración, como todos cuando estamos en una reunión o no queremos ser interrumpidos. El punto es que, si tenemos llamadas importantes que recibir de todas maneras estamos atentos a cualquier movimiento. El truco que mostraré nos servirá para saber con solo el tipo de vibración del Iphone si esta llamando ese contacto al cual no podemos ignorar.
  1. Ir a Ajustes
  2. Ir a General
  3. Ir a Accesibilidad, bajar hasta encontrar opción Vibrac. personalizadas
  4. Habilitar opción Vibrac. personalizadas

Esa es la primera parte. Luego:
  1. Ir a Teléfono
  2. Contactos
  3. Elegir el contacto 
  4. Editar contacto y buscar opción vibración.
  5. Seleccionar la Vibración que mas te guste o se acomode al contacto :)


También se pueden crear vibraciones personalizadas.


Fuente

Unir lineas con VI

Desarrolle un software que genera código, pero en todos los desarrollos que hago necesito tocar algunas partes del código generado, por lo que al editar los archivos necesito hacer cosas como unir lineas, ya que este programa (el generador) deja en varias lineas algo que a mano hubiera escrito en una. Ejemplo: la imagen que adjunto es código generado:


En VI existen varias  formas de unir las las lineas: 
  • Presionando la letra J (mayúscula) 
  • SHIFT+j 
  • SHIFT+J
  • SHIFT+4
  • :join
  • :join! (mantiene la cantidad de espacios en blanco)
  • gJ (mantiene la cantidad de espacios en blanco)
Uno de los que mas me gusta es en modo Visual (MAYUS+v) seleccionar las lineas a unir y presionar J. También en modo visual puedes presionar gJ , pero este no elimina los espacios en blanco.

También encuentro mas útil escribir :
[rango] join

Ejemplo:
175 , 178 join 

Para buscar mas información sobre J (join) directamente en VI, escribe:
:help J


Fuente

miércoles, 25 de julio de 2012

echo $HOME en C


(Este post aplica para Linux)
Hoy al realizar unas pruebas en otro equipo que no era el de desarrollo de una pequeña aplicación en C que hace unas transformaciones. Esta se quedaba pegada. Al momento de revisar el problema, encontré que estaba consultando un archivo de configuración en una carpeta que no existía en este nuevo ambiente. 

Por ejemplo, necesitaba consultar un archivo como este:
/home/marcos/app/configuracion.conf

La ruta y el archivo no existian. Donde estaba corriendo esta app, era /home/pepito/.

Entonces lo que necesite saber era como obtengo la carpeta home de la maquina donde este corriendo la aplicación. Como cuando haces en la consola echo $HOME. Lo que necesitaba hacer era eso un echo $HOME pero en C. Hasta que encontre el siguiente script en el bendito seas stack overflow.



Le puse por nombre main.c y lo compile con la siguiente orden
cc -o home  main.c

Y para ejecutarlo:
./home

Y con eso obtuve mi echo $HOME en C.

Fuente
http://j.gs/1Emb

Descargar Código
http://j.gs/1Emd

martes, 24 de julio de 2012

Buscando un patrón con VIM (una aguja en un pajar)

Me pasaron un archivo de texto, desde donde debo obtener un numero de teléfono móvil o celular chileno. El punto es que no me dijeron ni me quisieron decir desde que columna debía obtener ese dato. Y el archivo contiene mas de una columna con números que pudieran ser.

¿Como soluciono eso? Fácil, con VIM y expresiones regulares. Busco un patrón dentro del archivo que corresponda con un numero de móvil chileno que contiene básicamente este patrón:
56900000000

Donde
  • 56 Numero de País
  • 9 No se con certeza, a que corresponde  
  • y Ocho dígitos que corresponden al celular.
Abro el archivo con VIM y escribo lo siguiente:


Estoy diciendo con eso, que busco un texto que comience con 569 y que después de eso contenga 8 números.

Y VIM resalta los números que corresponden a ese patrón, por lo que ya no me queda duda donde obtener el teléfono.


Para buscar desde otra herramienta que no sea VI/VIM. La expresión regular  varia un poco. Descartamos el símbolo / (que indica a VI / VIM que busque) y la expresión queda como sigue:


Como saber si existe una carpeta en BASH

La siguiente shell, hace lo siguiente:

1. Consulta si existe una carpeta
2. Si no existe, la crea




Otros relacionados
Determinar si un archivo existe desde una shell bash

domingo, 22 de julio de 2012

Menú en QT4

En este articulo auto recordatorio voy a mostrar como crear un menú  en QT4 y darle funcionalidad. Agregaré un elemento de menú con el nombre Ayuda y un sub menú con el nombre  Sobre  (típico de muchos programas) y desplegare una ventana informativa.

Primero ejecutamos QT Creator, elegimos File - New File or Project


En Projects, seleccionamos Qt Widget Project y al lado derecho Qt Gui Application. Presiono boton Choose.


Le damos un nombre a nuestra aplicación y una ubicación. En este caso le doy el nombre MenuBar y la ubicación /home/marcos/qt. Presiono botón Next.


El cuadro de dialogo Target Setup muestra una lista de los ambientes de desarrollo configurados  en el equipo. Yo tengo solamente desarrollo de aplicaciones de escritorio, por lo que selecciono esa opción. Presiono botón Next.


Qt Creator nos sugiere los nombres de los archivos fuentes, lo dejo tal cual. Presiono botón Next.


Esta dialogo podemos configurar algún control de versiones como Subversion pero para este ejemplo no configurare nada por lo que presiono botón Finish.


Seleccionamos el botón Design del menu izquierdo de Qt Creator, y podremos ver una ventana sobre la cual agregar componentes. En nuestro caso, el menú ya esta y nos invita a ingresar elementos donde dice Type Here. Agrego dos elementos los tipicos File - Ayuda y sobre este ultimo un sub menu Sobre.


Una vez creado los elementos del menú necesito darle funcionalidad. Qt Creator crea una acción y la muestra en el tab Action Editor.


Hacemos clic con el botón derecho sobre el elemento actionSobre que creo Qt Creator, en el Action Editor y seleccionamos Go to slot.


 Seleccionamos triggered y presionamos botón OK.


Qt Creator nos agrega unas lineas en los archivos mainwindow.h 


 mainwindow.cpp 


Tras esto, yo agrego las siguientes lineas en mainwindow.cpp.
Un include con la librería para los mensajes MessageBox (ver imagen al final)

Y dentro del método on_actionSobre_triggered()

Y el resultado es el siguiente, al lado derecho de la imagen el código fuente completo del archivo mainwindow.cpp.



Descargar código Fuente
http://j.gs/1EAh

Fuente:
http://adf.ly/B1Q20


sábado, 21 de julio de 2012

ORA-00904: invalid identifier


SQL*PLUS tiene dos tipos de variables (en algunas partes se lee que son tres), una de ellas son las Bind Variables. Las cuales uso (en este caso particular del post), para asignar una fecha del sistema tras un calculo y hacer una consulta de registros que contengan esa fecha. Ejemplo:



Pero, el código del ejemplo me retorna el siguiente error:

Error SQL: ORA-00904: "DATE_CDR_MES": invalid identifier
00904. 00000 -  "%s: invalid identifier"


¿Cual es el error que tiene el código? Es que la variable no esta antecedida por los dos puntos, lo cual la identifica como variable. Lo correcto es que quede de esta forma (:DATE_CDR_MES):



Cerrando este tema, podemos decir que el error se produce porque se encuentra un valor que no parece ni variable ni sentencia del lenguaje, es un identificador no valido (invalid identifier).

Fuente:
http://j.gs/1Dw2

ORA-06502: PL/SQL: numeric or value error: character string buffer too small



Estoy trabajando con SQL*PLUS. Y lo que hago básicamente son unos Scripts que  dejo como archivos .sql y luego los ejecuto desde una Shell. Al momento de ejecutar uno de estos procesos, me apareció el siguiente error:

BEGIN :MES_3030_DESDE := TRUNC(ADD_MONTHS(SYSDATE,-4),'MM'); END;
*
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1


Mi código consiste en la declaración de la variable:
VARIABLE  MES_DESDE VARCHAR2(7);

Asignación de un valor a esa variable, que es el punto donde estaba fallando
exec :MES_DESDE := TRUNC(ADD_MONTHS(SYSDATE,-4),'MM');

Si veo que retorna lo que estoy asignando encuentro cual es el motivo
SELECT TRUNC(ADD_MONTHS(SYSDATE,-4),'MM') FROM dual;


El resultado de la consulta es:
01/03/12
Ocho caracteres, los cuales estoy tratando de poner en un espacio para siete.

Entonces este error ocurre porque estoy tratando de poner mas caracteres en una variable donde no caben. Osea , lo correcto es que la definición sea:
VARIABLE  MES_DESDE VARCHAR2(8);



lunes, 16 de julio de 2012

Cerrar todas las pestañas abiertas en VIM



Revisando todo lo que he escrito de VI, no he encontrado nada sobre Pestañas (Tabs). Pero si has llegado acá es probablemente buscando como cerrar todas las pestañas abiertas de una sola vez y no hacer :q por cada Tab abierta. Por lo que no necesitas que explique mas sobre lo primero. De todas maneras en adelante haré un post sobre trabajar con Pestañas.

Cerrar todas las pestañas (tabs)


Cerrar y guardar  todas las pestañas


Cerrar todas sin guardar


Cerrar todas las otras


Fuente
http://q.gs/1War1

miércoles, 11 de julio de 2012

Pasar parametros a un SQL en SQL PLUS Oracle

He usado bastante SQLPLUS en el último proyecto en que he estado. Ejecuto scripts SQL desde unas Shell en Linux. Y una de las cosas que llegue a necesitar es, indicarle al script SQL la ruta donde quiero que me deje el log. El log se genera a partir de la orden spool, y la Shell puede ser ejecutada desde cualquier lugar. Si no indico donde quiero que queden los logs, la Shell dejara los logs dispersos por todo el sistema si es que el administrador la ejecuta desde donde se le ocurra.


Esta problemática la resolví pasandole desde la Shell la ruta donde quiero que deje el log.


Donde:
$user_pass =usuario_bd/pass_user_bd@base_datos
$script_sql=archivo sql
$DIR_LOG =ruta_archivo_log

$script_sql

Para rescatar la variable desde el PLSQL, es similar a Bash donde se rescatan de acuerdo al orden en que se pasan. En este caso paso una variable por lo que el valor desde el SQL lo rescatare de &1, y lo asigno a una variable local con la palabra define (variable de sustitución). Esto ultimo lo hago para que el código quede mas fácil de leer.

Fuente
http://j.gs/1Brc

martes, 10 de julio de 2012

Cambiar el nombre a un campo de tabla Oracle

Para cambiar el nombre de un campo en una tabla Oracle, se debe hacer con la siguiente orden:



 Donde:
  • Tabla : Nombre de la tabla 
  • columna_actual : Nombre de la columna que se va a cambiar 
  • columna_nueva : Nombre por el que se va a reemplazar.

lunes, 9 de julio de 2012

Cambiar fuente en VIM





El principal comando para cambiar el tipo de fuentes en VIM es:


Para cambiar los fuentes pero en VIM - Windows



Si quieres seleccionar la fuente desde un dialogo



sábado, 7 de julio de 2012

Instalando Sublime Text en Ubuntu



Sublime Text es un editor que esta de moda, es multi plataforma. Y la verdad, desconozco las funcionalidades que lo destacan del resto. Por lo mismo, me puse a instalarlo en mi Ubuntu, y lógicamente dejar el registro de como instalarlo.

Que este escribiendo sobre el, no quiere decir que dejare de utilizar VI. Es posible que en lo siguiente, escriba artículos de como VI puede hacer lo mismo que Sublime Text, veremos si eso es posible.

Para instalar Sublime Text en Ubuntu se deben seguir los siguientes pasos:

Agregar los repositorios de Sublime Text

  • sudo add-apt-repository ppa:webupd8team/sublime-text-2
  • sudo apt-get update
Instalar 
  • sudo apt-get install sublime-text


Sitio de Sublime Text
http://j.gs/1B0z

Fuente
http://j.gs/1B16

Archivos de configuración de VIM

Si trabajas con VIM, debes saber a que hay tres archivos de configuración.  La ubicación de estos depende de donde este instalado VIM y el sistema operativo que uses.

vimrc
Es el archivo de configuración principal, se encuentra en dos versiones: global y personal.
La ubicación de vimrc global se encuentra ejecutando en VIM la siguiente orden:



Para saber que directorio es considerado por VIM como tu Home Directory, ejecutas lo siguiente desde VIM.



gvimrc
Este archivo es especifico de GVIM, es similar a vimrc. Y esta ubicado en las mismas carpetas que vimrc, se encuentra  en dos versiones global y personal.
Permite configurar aspectos de la interfaz de usuario (GUI) de VIM.

exrc
Este archivo de configuración es usado solamente si deseas usar VIM en modo compatible con el viejo VI. Esta ubicado en las mismas carpetas que los demás archivos de configuración listados anteriormente y en dos versiones global y personal.

Fuente
http://j.gs/1Ayo

Como fijar la pantalla del Ipad

En mi opinión, la característica de autorotacion del iPad esta bien para el 99% de las veces. En el 1% restante es molesto.

He encontrado dos formas de bloquearla.

La primera  es:

  • Presiona dos veces el botón del Inicio
  • Aparecerá una barra  (Imagen 1)
  • Desliza la barra hacia la derecha
  • Presiona el botón para bloquear rotación  botón de la izquierda (Imagen 2)


Imagen 1

Imagen 2


La segunda:

En Ajustes, seleccionar General > "Usar interruptor lateral para" y, a continuación, seleccionar "Bloquear rotación" 





Fuente
http://j.gs/1AyH

lunes, 2 de julio de 2012

Could not find MySQL startup script! (Mac)

Mientras instalaba MySql en Mac y dejaba registro de eso, me encontre con el siguiente error al ejecutar una shell para iniciar el servicio de MySql.

Could not find MySQL startup script!

Al editar la shell, me doy cuenta que lo que en realidad esta buscando ejecutar es esto:

if test -x $SCRIPT ; then
          RunService "$1"
  else
          ConsoleMessage "Could not find MySQL startup script!"
  fi

Donde $SCRIPT es:
SCRIPT="/usr/local/mysql/support-files/mysql.server"

Sorpresa, la carpeta "local" no existe o no la puedo ver. ¿Entonces donde esta la aplicación?
Después de un rato de búsqueda me di cuenta que la forma en que instale la aplicación fue con los permisos de el usuario normal. Por lo que finalmente instale desde la linea de comandos con los permisos de administrador. Y esa era la solución.

El link con los pasos que seguí acá:


Instalar MySql en Mac

En este tutorial, voy a mostrar como montar una imagen de disco (dmg) desde linea de comandos en Mac e instalar MySQL.

Primero, descargar la versión que necesites de MySQL desde la siguiente dirección:
http://dev.mysql.com/downloads/mysql/

En mi caso requiero la version de 32 bits, instalable (dmg)


Una vez descargado debes entrar en la consola (Aplicaciones / Utilidades / Consola.app) ir a la carpeta donde descargaste el archivo dmg:

  • El primer paso es montar la imagen de disco

sudo hdiutil mount mysql-5.5.24-osx10.6-x86.dmg
La imagen queda montada en la carpeta Volumes
  • Después instalamos el paquete

sudo installer -package /Volumes/mysql-5.5.24-osx10.6-x86/mysql-5.5.24-osx10.6-x86.pkg -target /Volumes
  • Desmontamos la imagen

sudo hdiutil unmount /Volumes/mysql-5.5.24-osx10.6-x86

Luego en Preferencias del Sistema  te fijas si aparece el icono de MySql. Sino haz doble clic sobre el archivo dmg que descargaste y haz doble clic sobre el archivo MySQL.Prefpane.


Fuente




Habilitar Apache y PHP en Mac

En Mac no es necesario instalar Apache ni PHP, si habilitarlos. Para eso se requieren dos pasos:

  1. Ir a Preferencias del sistema  
  2. Habilitar el servicio Compartir Web

Una vez hecho esto tendras Apache y PHP instalados.

Para probar que tu servidor Web esta funcionando, debes ingresar en tu browser:


En mi caso, otros pcs de mi red podrán ver mi Web personal en la siguiente dirección:


Desde otros pcs de tu red, sera:
http://tu-dirección-local

Ejemplo:

Una vez que todo esta funcionando, puedes crear tus propias páginas html, php en la carpeta:
tu-usuario/Web/

Parafraseando la publicidad de los juguetes, MySql se instala por separado.

Fuente


Capturas de pantalla en MAC



Ocupo mi Mac solo aveces, por lo que se me olvidan algunas cosas. De modo que para grabarlas en la memoria escribiré este post.

Para capturar toda la pantalla
  • Command-Shift-3
La captura será guardada automaticamente en el escritorio,

Command-Control-Shift-3
La captura será guardada en el portapapeles para copiar en otro programa.

Para capturar una porción de la pantalla
  • Command-Shift-4
Aparecera un cursor de selección para que selecciones el area de pantalla. Una vez que sueltes el cursor  la captura sera guardada automaticamente en el escritorio.

Para capturar una ventana especifica
  • Command-Shift-4 + Barra Espaciadora
Aparece una cursor como cámara y puedes seleccionar dentro de las ventanas activas. Al presionar click se guarda automaticamente la captura en el escritorio.

Nota:
Las imagenes son guardadas en formato .png

Otra forma de hacer capturas es desde la linea de comandos:

screencapture -iW Desktop/captura.png



Fuente
http://j.gs/19on