viernes, 14 de agosto de 2015

Instalar Android Studio en Ubuntu 15


sudo apt-add-repository ppa:paolorotolo/android-studio
sudo apt-get update
sudo apt-get install android-studio


agregar JAVA_HOME en  environment variable
editar /etc/environment and add JAVA_HOME=/usr/lib/jvm/java-7-oracle to the end of the file
sudo nano /etc/environment
Agregar al final del archivo
JAVA_HOME=/usr/lib/jvm/java-7-oracle
eliminar el isntalador oracle JDK
sudo apt-get remove oracle-jdk7-installer

jueves, 2 de julio de 2015

Entrar a las paticiones de Windows 8 desde GNU/Linux, Mint, Ubuntu, Debian, Fedora, Arch etc.

Entrar a las paticiones de Windows 8 desde GNU/Linux, Mint, Ubuntu, Debian, Fedora, Arch etc.

Amigos aquí les dejo este vídeo Tutorial que les puede servir para entrar a las particiones de Windows 8.

Bueno para solucionar esto nos vamos a buscar en windows y escribimos "cmd"

Ojo que hay que ejecutar cmd como administrador para que funcione el comando.

Yo  hice click derecho sobre el mismo y lo ejecute como administrador luego ponemos el siguiente comando:
powercfg -h off


El comando lo que hará es deshabilitar el archivo que hiberna el windows 8. Si se desea activar nuevamente se pone el siguiente:
powercfg -h on

abrir archivos de sublime 3 desde consola

sudo ln -s "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl

jueves, 18 de junio de 2015

Tipo de Selectores

<!DOCTYPE html>
<html>
<head>

<title>Selectores de Jquery</title>
<script type="text/javascript" src='jquery-1.10.2.min.js'></script>

</head>

<script type="text/javascript">

$("document").ready(function(){

//$('li').css('border', '3px solid blue');
//$('.a').css('border', '3px solid blue');
//$('li, .b').css('border', '3px solid blue');
//$('#elementoLista').css('border', '3px solid blue');
$('ul~p').css('border', '3px solid blue');

});

</script>



<style>
.estilo1{
    width: 400px;
    clear:both;
   }
   .estilo2{
    position:absolute;
    left: 150px;
  width: 200px;
  }
</style>

<body>
<ul>
    <li class = 'a' id = 'elementoLista'>Elemento 1</li>
  <li class = 'b'>Elemento 2</li>
    <li class = 'c'>Elemento 3</li>
   </ul>

   <p class = "a">Parrafo 1</p>
   <p class = "b">Parrafo 2</p>
   <p class = "c">Parrafo 3</p>
</body>
</html>

lunes, 8 de junio de 2015

comando lsblk

lsblk

Visualiza los dispositivos, unidades, particiones y sus capacidades (estén montadas o no las unidades).
con la opción -fm amplia la informacion.
# lsblk -fm
NAME   FSTYPE LABEL        MOUNTPOINT  NAME     SIZE OWNER GROUP  MODE
sda                                    sda    119,2G root  disk   brw-rw---T
├─sda1 ntfs   Recuperación             ├─sda1   300M root  disk   brw-rw---T
├─sda2 vfat                /boot/efi   ├─sda2   100M root  disk   brw-rw---T
├─sda3                                 ├─sda3   128M root  disk   brw-rw---T
├─sda4 ntfs                            ├─sda4  93,3G root  disk   brw-rw---T
├─sda5 ext4                /           ├─sda5  21,5G root  disk   brw-rw---T
└─sda6 swap                [SWAP]      └─sda6   3,9G root  disk   brw-rw---T
sdb                                    sdb     29,7G root  floppy brw-rw---T
└─sdb1 ntfs                /media/usb0 └─sdb1  29,7G root  floppy brw-rw---T

Este comando no da información de capacidad, ni de las particiones de cada unidad, como si lo hace el comando fdisk, pero es útil cuando el comando anterior no finaliza por problemas en las unidades o particiones.

También puede ver el comando un comando similar fdisk, el comando lsscsi si el comando fdisk falla, o el comando cfdisk el cual le permite ver y ampliar las particiones, o la utilidad en modo gráfico gparted.

Instalar y configurar samba en ubuntu linux.

Instalar y configurar samba en ubuntu linux.

Samba es un protocolo de comunicaciones para conectar windows con el sistema de archivos linux y de esta forma ver discos de linux o carpetas como unidades de red en windows.
Instalar y configurar samba es bastante sencillo, hay que instalarlo desde la linea de comandos:
apt-get install samba
Ahora hay que configurarlo para tener acceso a carpetas linux desde el windows.
Para configurarlo hay que editar el fichero /etc/samba/smb.conf, al final del fichero esta este codigo de ejemplo:
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700
Lo copiamos y modificamos según queremos que se muestre nuestro directorio en windows:
[pruebas_samba]
comment = directorio de pruebas samba
path = /home/depruebas/pruebas_samba
guest ok = no
writeable = yes
write list = depruebas
browseable = yes
create mask = 0755
directory mask = 0755
fichero configuración
Despues ponemos un password samba al usuario que queremos que tenga acceso al directorio
sudo smbpasswd -L -a asolano ponemos un paassword
sudo smbpasswd -L -e asolano habilitamos el usuario para samba
y reiniciamos el servicio
sudo /etc/init.d/smbd restart
Ahora vamos al windows y escrimos nuestra IP en el explorador de windows
Explorador de windows
Ahora probaremos que podamos escribir en el directorio para poder trabajar.
Si estamos compartiendo directorios web en /var/www o algo asi es posible que tengáis problemas de acceso pero esto se puede resolver poniendo las siguientes directivas en el fichero de configuracion:
force user = root
force group = root
fichero configuración modificado
Y esto es todo.
Saludos

viernes, 5 de junio de 2015

Cron

¿Qué es cron?

El nombre cron viene del griego chronos que significa “tiempo”. En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.

Cómo funciona

El demonio cron inicia de /etc/rc.d/ o /etc/init.d dependiendo de la distribucion. Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab /etc/crontab o en /var/spool/cron en búsqueda de tareas que se deban cumplir. Como usuario podemos agregar comandos o scripts con tareas a cron para automatizar algunos procesos. Esto es util por ejemplo para automatizar la actualizacion de un sistema o un buen sistema de respaldos.

¿Qué es Crontab?

Crontab es un simple archivo de texto que guarda una lista de comandos a ejecutar en un tiempo especificado por el usuario. Crontab verificará la fecha y hora en que se debe ejecutar el script o el comando, los permisos de ejecución y lo realizará en el background. Cada usuario puede tener su propio archivo crontab, de hecho el /etc/crontab se asume que es el archivo crontab del usuario root, cuando los usuarios normales (e incluso root) desean generar su propio archivo de crontab, entonces utilizaremos el comando crontab.
Crontab es la manera mas sencilla de administrar tareas de cron en sistemas multiusuario, ya sea como simple usuario de sistema o usuario root.

Utilizando crontab

Vamos empezando con un ejemplo simple.
Vamos a automatizar la actualización de un sistema, para eliminar la molesta de “siempre tengo que andar actualizando y eso no me gusta!”.
Primero que nada haremos un script. Este script será llamado por cron y contendrá todas las instrucciones que queremos que haga, por lo tanto es necesario probarlo en varios casos y de varias formas antes de incluirlo a cron, un sencillo script de actualizacion como este:
#!/bin/bash
#script ejemplo de actualizacion
#elija su distribucion
#debian-ubuntu
#apt-get update & apt-get -y upgrade
#fedora
#yum -y update
#Arch
#pacman --noconfirm -Syu
Quitale el # a la línea de tu distro. En caso de que sea Ubuntu/Debian, a la que empieza  con apt-get.
Guardamos el script como actualizacion.sh (ej. directorio scripts tu home). Cambiamos los permisos de ejecucion del dichoso script con:
chmod a+x ~/scripts/actualizacion.sh
Ejecutamos el script un par de veces para verificar que todo ejecute sin problemas, modificamos lo necesario (no debe contener errores, si no cron solo repetira un error una y otra vez). Ahora a agregar la tarea a nuestro crontab.

Agregar tareas a crontab

Ejecutamos la edición del crontab con crontab -e, en algunas distros (como ubuntu) nos da la opcion de elegir el editor de textos que deseemos, los demás nos quedamos con vi. El archivo crontab lucirá algo asi.
# m h dom mon dow user command
donde:
  • m corresponde al minuto en que se va a ejecutar el script, el valor va de 0 a 59
  • h la hora exacta, se maneja el formato de 24 horas, los valores van de 0 a 23, siendo 0 las 12:00 de la medianoche.
  • dom hace referencia al día del mes, por ejemplo se puede especificar 15 si se quiere ejecutar cada dia 15
  • dow significa el día de la semana, puede ser numérico (0 a 7, donde 0 y 7 son domingo) o las 3 primeras letras del día en inglés: mon, tue, wed, thu, fri, sat, sun.
  • user define el usuario que va a ejecutar el comando, puede ser root, u otro usuario diferente siempre y cuando tenga permisos de ejecución del script.
  • command refiere al comando o a la ruta absoluta del script a ejecutar, ejemplo: /home/usuario/scripts/actualizar.sh, si acaso llama a un script este debe ser ejecutable
Para que quedara claro unos cuantos ejemplos de tareas de cron explicados:
15 10 * * * usuario /home/usuario/scripts/actualizar.sh
Ejecutará el script actualizar.sh a las 10:15 a.m. todos los días
15 22 * * * usuario /home/usuario/scripts/actualizar.sh
Ejecutará el script actualizar.sh a las 10:15 p.m. todos los días
00 10 * * 0 root apt-get -y update Usuario root
Ejecutará una actualización todos los domingos a las 10:00 a.m
45 10 * * sun root apt-get -y update
Usuario root ejecutará una actualización todos los domingos (sun) a las 10:45 a.m
30 7 20 11 * usuario /home/usuario/scripts/actualizar.sh
El día 20 de noviembre a las 7:30 el usuario correra el script
30 7 11 11 sun usuario /home/usuario/scripts/pastel_con_velitas.sh
El día 11 de noviembre a las 7:30 a.m. y que sea domingo, el usuario festejará su sysadmin (o sea a mí)
01 * * * * usuario /home/usuario/scripts/molestorecordatorio.sh
Un molesto recordatorio cada minuto de cada hora todos los días (NO recomendable).
Igual se pueden manejar rangos especiales:
30 17 * * 1,2,3,4,5
A las 5:30 de la tarde todos los días de lunes a viernes.
00 12 1,15,28 * *
A las 12 del día todos los días primero, quince y 28 de cada mes (ideal para nóminas)
Si esto resulta confuso, crontab maneja cadenas especiales para definir estos rangos.
@reboot Ejecuta una vez, al inicio
@yearly ejecuta sólo una vez al año: 0 0 1 1 *
@annually igual que @yearly
@monthly ejecuta una vez al mes, el día primero: 0 0 1 * *
@weekly Semanal el primer minuto de la primer hora de la semana. 0 0 * * 0″.
@daily diario, a las 12:00A.M. 0 0 * * *
@midnight igual que @daily
@hourly al primer minuto de cada hora: 0 * * * *
Su uso es muy sencillo.
@hourly usuario /home/usuario/scripts/molestorecordatorio.sh
@monthly usuario /home/usuario/scripts/respaldo.sh
@daily root apt-get update && apt-get -y upgrade
Por último y no menos importante:
Administracion de trabajos en cron
crontab archivo
Remplaza el existente archivo crontab con un archivo definido por el usuario
crontab -e
Editar el archivo crontab del usuario, cada linea nueva sera una nueva tarea de crontab.
crontab -l
Lista todas las tareas de crontab del usuario
crontab -d
Borra el crontab del usuario
crontab -c dir
Define el directoriod e crontab del usuario (este debe tener permisos de escritura y ejecucion del usuario)
crontab -u usuario
prefijo para manejar el crontab de otro usuario, ejemplos:
$ sudo crontab -l -u root
$ sudo crontab -e usuario2
#crontab -d -u usuario

miércoles, 20 de mayo de 2015

agregar alimento

alimento = ARGV.shift

File.open('alimentos.txt', 'a') do |f|
  creada = Time.now
  f.puts "#{alimento},#{creada}"
end

puts "#{alimento} agregado"

list comprar

buscar_con = ARGV.shift.to_i

File.open('alimentos.txt', 'r') do |f|
  alimento_id = 1

  f.readlines.each do |linea|
     registro = linea.chomp.split(/,/)
     alimento = registro[0]
     agregado = registro[1]
   
     if alimento_id == buscar_con
      puts "Esto es lo que debemos marcar comprado"
     end

     alimento_id += 1
  end
end

leer un archivo

File.open('alimentos.txt', 'r') do |f|
  identificador = 1

  f.readlines.each do |linea|
     registro = linea.chomp.split(/,/)
     alimento = registro[0]
     agregado = registro[1]

     printf("%3d - %s\n", identificador, alimento)
     printf("  Agregado : %s\n", agregado)

     identificador += 1
  end
end

ejemplo alimentos

cmd = ARGV.shift

if cmd
  alimento = ARGV.shift

  File.open('alimentos.txt', 'a') do |f|
  creada = Time.now
    f.puts "#{alimento},#{creada}"
  end

  puts "#{alimento} agregado"
end

Bloques


["Pollo","Arroz"].each do |alimento|
puts "Est es el alimento #{alimento}"

end

["Pollo", "Arroz"].each do |alimento|
 puts "Este es el alimento #{alimento}"
end

def tres_veces
  yield
  yield
  yield
end

def reportar(archivo, alimento)
  archivo.puts(alimento)
end

def nuestro_reportar(nombre)
  fp = File.open(nombre, 'w')
  yield(fp)
ensure
  fp.close
end

File.open('alimentos.txt', 'w') do |fp|
  tres_veces do
    reportar(fp, 'Broccoli')
  end
end

nuestro_reportar('alimentos.2.txt') do |fp|
  tres_veces { fp.puts("Coliflor") }
end

martes, 19 de mayo de 2015

Instalacion de Ruby on Rails en Linux

Ambito de desarrollo (Instalación)

En Linux instalamos Ruby con RVM. Como existen algunos distros...

La mayoría de distribuciones incorporan las dependencias necesarias para poder instalar Ruby salvo algunas pocas
excepciones como Ubuntu que no viene acompañado del programa curl.

Antes de empezar, en Ubuntu instalar curl de la siguiente manera:

sudo apt-get update
sudo apt-get install curl

Luego proceder con la instalación

curl -L https://get.rvm.io | bash -s stable

Una vez finalizada la instalación, verifica que él ambito este apropiadamente configurado.
Revisar el archivo ~/.bashrc

Si no ves mención de RVM, agregar lo siguiente:
$ source $HOME/.rvm/scripts/rvm

Abre una nueva ventana de la terminal para estar en el ambiente necesario una vez modificada .bashrc
Ingresa el comando
 $ rvm help

Antes de instalar Ruby con RVM, debes dar permisos a rvm para manejar los paquetes:
 $ rvm autolibs packages

 Hecho esto, la instalación de Ruby se hace de la siguiente manera:
 $ rvm install 2.1.5

 RVM se encargará de buscar lo que necesita para compilar el Ruby y otros complementos. Una vez finalizado tendrás
 Ruby instalado y lo usas de la siguiente manera:

 $ rvm use 2.1.5

 Ahora comprueba que puedes ejecutar el interpretador:

 $ ruby --version

 Solamente podrás usar el ruby en la sesión donde le indicaste a rvm qué versión usar. Para uso permanente en nuevas sesiones
 ingresar
 $ rvm use --default 2.1.5


En Windows ir a la dirección http://rubyinstaller.org. Click donde dice DOWNLOAD en grande
y seguis las instrucciones de instalación. Buscar el acceso directo en "All Programs" del Menu De Inicio
"Start Command Prompt With Ruby"

miércoles, 29 de abril de 2015

Ambito de una variable en javascript


//Ambito de una variable en javascript

var mundo = "Mundo!";

function holaMundo()
{
var hola = "¡Hola ";

function extra()
{
var extra = "Todavía hay más";
console.log(hola + mundo + extra);
}
extra();
}

holaMundo();

console.log("Mundo afuera de holaMundo(): ", mundo);
//console.log("Hola afuera de holaMundo(): ", hola);

lunes, 27 de abril de 2015

Ejemplos con los métodos bind() y unbind() de jQuery


A continuación puede verse el código de una página completa que pone en práctica las explicaciones ofrecidas en el artículo. El ejemplo se puede ver en marcha en una página aparte.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<html lang="es">
<head>
<title>Eventos bind</title>
   <script src="../jquery-1.4.2.min.js"></script>
<script language="javascript">
$(document).ready(function(){
  
   $("p").bind("click mouseenter mouseleave", function(e){
      if ($(this).css("color")!="rgb(250, 100, 0)")
         $(this).css("color", "rgb(250, 100, 0)");
      else
         $(this).css("color", "rgb(150, 0, 255)");
   })
  
   function clicAlerta(){
      alert("Has hecho clic");
   }
  
   $(".miclase").bind("click", clicAlerta);
  
   $("#quitarevento").bind("click", function(){
      $(".miclase").unbind("click", clicAlerta);
   })
})
</script>
</head>
<body>

<p class="miclase">Primer párrafo</p>
<p>Otro párrafo</p>

<input type=button value="Quitar el alert del clic del primer párrafo" id="quitarevento">
</body>
</html>

Formas de jquery ajax

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>$.Ajax</title>
</head>
<body>
<div id="container">
<div id="content">
<p>Tje jquwry ajax</p>
<ul>
<li><button id="remote-html">file remoto</button></li>
<li><button id="remote-script">script remoto</button></li>
<li><button id="remote-data">send data</button></li>
<li><button id="remote-error">error handle</button></li>

</ul>
<div id="result"></div>
</div>
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){

$('#remote-html').click(function(){
$.ajax({
url:'ajaxme.html',
success: function(data){
$('#result').html(data).append('<p>Resquest valido</p>');
},
error:function(){
$('#result').text('<p>Resquest filed</p>');
}
});
});
});

$(document).ready(function(){

$('#remote-script').click(function(){
$.ajax({
url:'sample.js',
dataType: "script"
});
});
});

$(document).ready(function(){

$('#remote-data').click(function(){
$.ajax({
type:"POST",
url:'server.php',
data:{first:"Cesar", last:"Morones"}}).done(function(msg){
alert('Dato salvado'+ msg)
});
});
});

$(document).ready(function(){

$('#remote-error').click(function(){
$.ajax({
type:"GET",
url:'bogus.html',
statusCode:{
404: function(){
$('#result').text('<p>Archivo no encontrado !!!</p>');
}
}
});
});
});
</script>

</body>
</html>

martes, 21 de abril de 2015

propiedad lenght y metodo size

<html>
     <head>
         <title>Prueba Size</title>
         <script type = "text/javascript" src = "jquery.js"> </script>
         <script type = "text/javascript">
            $(document).ready(function(){
               console.log('Número de links en el documento: (' + $('a').size() +').');
            });
         </script>
     </head>
    <body>
    <a href="http://www.google.com" title="Google">Google1</a><br>
    <a href="http://www.google.com" title="Google">Google2</a><br>
    <a href="http://www.google.com" title="Google">Google3</a><br>
    </body>
 </html>

<html>
     <head>
         <title>Prueba Length</title>
         <script type = "text/javascript" src = "jquery.js"> </script>
         <script type = "text/javascript">
            $(document).ready(function(){
               console.log('Número de links en el documento: (' + $('a').length +').');
            });
         </script>
     </head>
    <body>
    <a href="http://www.google.com" title="Google">Google1</a><br>
    <a href="http://www.google.com" title="Google">Google2</a><br>
    <a href="http://www.google.com" title="Google">Google3</a><br>
    <a href="http://www.google.com" title="Google">Google4</a><br>
    </body>
 </html>




cambiar estilo con jquery

<html>
    <head>
        <title>Funcion jQuery</title>
        <script type = "text/javascript" src = "jquery.js"> </script>
        <script type = "text/javascript">
           $(document).ready(function()
           {
              $("p").css("color", "blue");
              $("#miId").css("color", "red");
              $(".miClase").css("color", "green");
           });
        </script>
    </head>
    <body>
        <p>Esto es un parrafo</p>
        <div id="miId">Esto es un bloque div con identificador</div>
        <div class="miClase">Esto es un bloque div con clase</div>
    </body>
 </html>

viernes, 17 de abril de 2015

Propiedades de color


http://www.w3.org/wiki/CSS3/Color/Extended_color_keywords
  • numeral

color:#000000

  • Por su color en ingles

green, yellow, blue etc


  • RGBA    red, green, blue y alfa transparencia

div{
    width: 900px;
    height: 600px;
    background: rgba(255,255.255,0); // o trasparente y 1 solido
    border: 5px solid red;
}
  • HSL
 background: hsl(360,100%,50%); /* trasparente y 1 solido*/

puede usar alfa

background: hsla(360,100%,20%,.5); /* luz*/ 

  • CMYK    
aun no se puede aplicar a todos los elemntos

Selectores Estructurales

:root
:empty
p:empty
:first-child
:last-child

li:first-child  //primer elemnto de esta lista
li:last-child   //ultimo elemento de esta lista

h1:first-of-type{

}//primer elemento de un elemento superior

h1:last-of-type{
}//ultimo elemento de un elemento superior

:only-child

:only-of-type


Descendientes por id

ul li{
width:200px;
height:200px;
text-aling:center;
line-height:200px;
font-size:40px;
font-weight:bold;
background:grey;
margin-right:20px;
float:left;
margin-bottom:20px;
list-style:none;
color:white;


}

//busca la pocision 8 y le cambia el color

li:nth-child(8){
backgorund:blue
}

li:nth-child(1n){  //saltos para afectar una regla
backgorund:blue
}

li:nth-child(2n){  //cada dos elementos
backgorund:blue
}


li:nth-child(3n){  //cada tres elementos
backgorund:blue
}
 tima
Tambien pueden ser negativas


li:nth-child(-1n+3){  //cada tres elementos hacia atras
backgorund:blue
}

 Cuenta elemtos hacia aarriba

li:nth-last-child(){  //empezando  del final 3 elemntos
backgorund:blue
}

li:nth-last-child(1n){  //empezando  del final 3 elemntos
backgorund:blue
}


Seleccionar la penultima fila y la primera

li:nth-child(-1n+7){  //la fila ultima
backgorund:blue
}

li:nth-last-child(1n+7){  //la fila empezando
backgorund:blue
}

forma mas simple con comas

li:nth-last-child(1n+7),li:nth-last-child(1n+7){  //empezando  del final 3 elemntos
backgorund:blue
}










viernes, 10 de abril de 2015

Estilos a atributos

a[href]{
font-size=25px;
}

a[href="home.html"]{
color: red;
}

la tilde nos trae si tiene compras en cualquier lugar

a[title~=compras]{
text-decoration:none;
margin-left:60px;
}

a[title="compras"]{
text-decoration:none;
margin-left:60px;
}
 Busca compras en cualquier parte del atributo

a[href^="compras"]{
text-decoration:none;
margin-left:60px;
}

Buscar en extensiones pdf  con el signo "$"

a[href$=".pdf"]:before{
content:"PDF";
background:red;
color:white;
padding:2px;
font-size:9px;
border:1px solid black;
margin-right:6px;
}







<div>


</div>

Un parrafo al mismo nivel si que sea necesario ser adyacente

<div> ~ p {

color:red;
font-weight:bold;

}

<div>



</div>
<h1>Este  s un titulo</h1>
<p>Este apparafo sigue la regla</p>
  • Representadado por ~

Estilos adyacentes mismo nivel de jeraquia

<div> + h1 {

color:red;
font-weight:bold;

}

<div>

<h1>Este apparafo sigue la regla</h1>

</div>

Es através del sigono + y estan al mismo novel

estilo a descendientes directos

<div> > p {

color:red;
font-weight:bold;

}

<div>

<p>Este apparafo sigue la regla</p>

</div>



Esto aplica para todos los decendientes de div que sean parrafos.


Vendor prefixes

Mozila Firefoz: -moz-

Google Crhome  -webkit-
Apple Zafari: -webkit-
Opera -o-
Microsoft -ms-, -mso-

jueves, 9 de abril de 2015

funciona anonima and self invoking

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sumatorias</title>
</head>
<script type="text/javascript">
    (function(){
        alert('hola Mundo');
    })();



</script>

<body>

<input type="button" value="Clic" onclick="alert('la suma es =' + alertit(10,20));">
   
</body>
</html>

Sumar lista de parametros

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sumatorias</title>
</head>
<script type="text/javascript">
    function alertit(){
        var x = 0;
        for ( var i=0; i < arguments.length; i++){
            x += arguments[i];
        }
        alert('Suma'+ x);
    }
</script>

<body>

<input type="button" value="Clic" onclick="alertit(10,20,30,40,50);">
   
</body>
</html>

miércoles, 8 de abril de 2015

Filtros de jquery

El uso de los filtros en jquery es una manera de buscar elementos de una formas más especifica.

Los filtros de jquery lo podemos en contrar en 6 categorias:

Básicos: Proveee un filtro báscio
Contenido: Basado en el contenido del componente
Visibilidad: Basandose en sus atributos de visibilidad
Atributo: Elementos basado en el texto de sus atributos
Child: Basado en la relación con sus hijos
Form: elemntos que se enecuentran  en un formulario(text, password, checkbox)

Selectores Basicos en Jquery


  • Para el uso de selectores en jquery, la sintaxis es similar a la de css y funciona  en muchos aspectos del mismo modo aesta.
  • Para utilizarlos empleamos el símbolo "$"
Tagname: Identificador d eun tipo de elemneto
Identificador: frase que identifica el elemento, utilizando el simbolo "#"
ClassName: Calse css asociada a un componente, utilizando el simbolo "."
Combinaciones: Se puede realizar combinaciones de criterios

taq#id.className

Todos los componentes, utilizando "*"
Elemento que se encuentre despues de otro elemento, usuando "+"
Todos los elementos que se encuentran después de un elemento, usuando el simbolo "~"

Caracteristicas de jquery


  1. Funcionalidades Basicas
  2. Selecciones
  3. Eventos
  4. Manipulacion CSS
  5. Efectos y Animaciones
  6. Ajax

martes, 7 de abril de 2015

Uso de join cn CDbCriteria y relaciones

$criteria = new CDbCriteria;
$criteria->with=array('personas');
//$criteria->join="right JOIN datos_personales as dp ON(dp.id=t.id_dp)";
$criteria->condition= "t.id_area=:id_area and t.status=:status";
$criteria->params=array(':id_area'=>$id_area,':status'=>38);
$criteria->order = "personas.nombre";


$resultado = Directorio::model()->findAll($criteria);

viernes, 27 de marzo de 2015

Resturar una base desde cosola en postgresql

1) Se crea la base de datos

template>  CREATE DATABASE  nombrebase owner="user"

2) Para cambiarse a la base

templaet>  \c

3) Restaurar base

template > \i  /home/ruta/basededatos.out


Listo......

martes, 24 de marzo de 2015

Ajax callback

<html>
    <head>
        <meta charset="utf-8">
        <title>Jquery Totorial</title>
    </head>
    <body>
        <input type="text" id="name"><input id="boton" type="button" value="Load">

        <div id="content"></div>

        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/ajaxcall.js"></script>
       
    </body>
</html>

$('#boton').click(function(){
var name = $('#name').val();
$.ajax({
    url:'php/send.php',
    data:'name='+name,
    success: function(data){
        $('#content').html(data);
    }
}).error(function(){
    alert('Error de pagina');
}).complete(function(){

    alert('Complete');
});

});

Ajax send

<html>
    <head>
        <meta charset="utf-8">
        <title>Jquery Totorial</title>
    </head>
    <body>
        <input type="text" id="name"><input id="boton" type="button" value="Load">

        <div id="content"></div>

        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/ajaxsend.js"></script>
       
    </body>
</html>

send.js

$('#boton').click(function(){
var name = $('#name').val();
$.ajax({
    url:'php/send.php',
    data:'name='+name,
    success: function(data){
        $('#content').html(data);
    }
});

});

Ajax load

index.html

<html>
    <head>
        <meta charset="utf-8">
        <title>Jquery Totorial</title>
    </head>
    <body>
        <input id="boton" type="button" value="Load">

        <div id="content"></div>

        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript" src="js/ajax.js"></script>
       
    </body>
</html>


ajax.js

$('#boton').click(function(){
$.ajax({
    url:'page.html',
    success: function(data){
        $('#content').html(data);
    }
});

});

jueves, 19 de marzo de 2015

Sumar campos es en formulario con jquery

<?php
/* @var $this BaseController */
/* @var $model base */
/* @var $form CActiveForm */
Yii::app()->clientScript->registerScript('search', "



$('#importe_bruto').keyup(function(){
var iva = eval($('#iva').val());
var importe = eval($('#importe_bruto').val());

$('#subtotal').val(importe+iva);
});

$('#iva').keyup(function(){
var iva = eval($('#iva').val());
var importe = eval($('#importe_bruto').val());

$('#subtotal').val(importe+iva);
});

$('#iva_ret').keyup(function(){
var iva = eval($('#iva_ret').val());
var isr = eval($('#isr_ret').val());
var subtotal = eval($('#subtotal').val());

$('#importe_neto').val(subtotal-iva-isr);
});

$('#isr_ret').keyup(function(){
var iva = eval($('#iva_ret').val());
var isr = eval($('#isr_ret').val());
var subtotal = eval($('#subtotal').val());

$('#importe_neto').val(subtotal-iva-isr);
});

");

?>

lunes, 16 de marzo de 2015

function each en jquery

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Fruit Basket</title>
<link rel="stylesheet" href="css/fruitBasket.css">
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
$(function(){
// Array containing Objects with Fruit names & quantities
var fruitBasket = [ {title:'Apples', quantity:20},
{title:'Oranges', quantity:25},
{title:'Kiwis', quantity:50},
{title:'Strawberries', quantity:45},
{title:'Bananas', quantity:10},
{title:'Mangoes', quantity:5},
{title:'Tomatoes', quantity:30} ];

// Your jQuery code goes here

$.each( fruitBasket, function( index, element){
$('.fruits').append('<li>We have ' + element.quantity + " " + element.title + '</li>');
});

$('.fruits > li').each( function(index, element){
$(element).css('background-color','rgb(100,200,0)');
});

})
</script>
</head>
<body>
<div class="container">
<ul class="fruits">


</ul>
</div>
</body>
</html>

otro ejemplo

<html>
    <head>
        <title>Funcion each()</title>
        <script type = "text/javascript" src = "jquery.js"> </script>
        <script type = "text/javascript">
           $(document).ready(function()
           {
              $.each(["Lun","Mar","Mie","Jue","Vie"],function(idx,v) {
                 console.log('(' + idx + ') Tratando valor (' + v +')');
              });
           });
        </script>
    </head>
    <body>
    </body>
 </html>


otro ejemplo

<html>
    <head>
        <title>Funcion each(II)</title>
        <script type = "text/javascript" src = "jquery.js"> </script> 
        <script type = "text/javascript">
           $(document).ready(function()
           {
              $("p").each(function(idx,v) {
                 console.log('(' + idx + ') Tratando valor (' + $(this).html() +')');
              });
           });
        </script>
    </head>
    <body>
       <p>Parrafo 1</p>
       <p>Parrafo 2</p>
       <p>Parrafo 3</p>
    </body>
 </html>

chaining modules and namespaces

var ray = (function() {
  var DEFAULTS = {
    say: 'hello',
    speed: 'normal'
  }

  return {
    speak: function() {
      var myArguments = arguments[0] || '';
      var statement = myArguments.say || DEFAULTS.say;
      console.log(statement);
      return this;
    },
    run : function() {
      var myArguments = arguments[0] || '';
      var running = myArguments.speed || DEFAULTS.speed;
      console.log('running...'+ running);
      return this;
    }
  };
})();

 <script>
    ray.speak({ say: 'howdy' }).run().speak({ say: 'run faster' }).run({speed: 'faster'});
  </script>

Leer parametros como argumentos

var plus = function() {
  var sum =  0;
  for (var i = arguments.length - 1; i >= 0; i--) {
    sum += arguments[i];
  };
  return sum;
}

console.log(plus(2,2,2,3,2,3,4));

var socialMedia = {
  facebook : 'http://facebook.com/viewsource',
  twitter: 'http://twitter.com/planetoftheweb',
  flickr: 'http://flickr.com/planetotheweb',
  youtube: 'http://youtube.com/planetoftheweb'
};

var socialList = function() {
  var  output = '<ul>',
    myList = document.querySelectorAll('.socialmediaicons');

  for (var key in arguments[0]) {
    output+= '<li><a href="' + socialMedia[key] + '">' +
      '<img src="images/' + key + '.png" alt="icon for '+key+'">' +
      '</a></li>';
  }
  output+= '</ul>';
 
  for (var i = myList.length - 1; i >= 0; i--) {
    myList[i].innerHTML = output;
  };
}(socialMedia);

Invacando funciones con call y apply

Call

var speak = function(what) {
  console.log(what);

}

var saySomething = {normal: "meow", love: "purr"}
speak.call(saySomething, saySomething.normal);

Apply


var speak = function(what) {
  console.log(what);
  console.log(this.love);
}

var saySomething = {normal: "meow", love: "purr"}
speak.apply(saySomething, ['meouff']);

Expandir objetos con prototype herencia

var speak = function(saywhat) {
  console.log(saywhat);
}

var Dog = function() {
  var name, breed;
}

var Cat = function() {
  var name, breed;
}

Dog.prototype.speak = speak;
Cat.prototype.speak = speak;

firstDog = new Dog;
firstDog.name = "Rover";
firstDog.breed = "Doberman";
firstDog.speak('woof');

firstCat = new Cat;
firstCat.name = "Sniggles";
firstCat.breed = "Manx";
firstCat.speak('meow');

Funciones como objetos

var calc = {
  status: 'Awesome',
  plus: function (a,b) {
    return (
      console.log(this),
      console.log(a+b),
      console.log(arguments),
      console.log(this.status)
    )
  }
}

calc.plus(2,2);


/// Invocando atra ves de constructor

var Dog = function() {
  var name, breed;
  return console.dir(this);
}

firstDog = new Dog;  //crea una instancia
firstDog.name = "Rover";
firstDog.breed = "Doberman";

secondDog = new Dog;
secondDog.name = "Fluffy";
secondDog.breed = "Poodle"

viernes, 13 de marzo de 2015

Crear objetos en javascript

var person = {  //igual que arriba pero cn mayo performance
 
  nombre : "Cesar",
  apellido : "Morones",
  hola : function(){
  return "Hola Cesar";
  }
 
};

Clousure

Funciones clausura


Son funciones que reornan una funcion  con variables de un scope externo.


function testClosure(){

var x =4;  // solo es local esta  variable
return x;

}
/////  Es este ejemplo la funcion interior  puede accesar a las variables de la funcion exterior ya que las toma como variables globales, no es necesario pasarla como parametro.


function testClosure(){

var x =4;  // solo es local esta  variable
function closeX(){
  return x;
}

retun closeX;

}

var checkloalX = testClosure();
checkLocalX();

---> 4


function buildCoverTicketMaker( transport )
 {

  return function (name) {
   alert ("Here is your transportation ticket via the " + transport + ".\n" + "wlecome to the Cold Closures Cove" + name  + "!");

  }
}

var getSubmarineTicket = buildCoverTicketMaker( "Submarine");
var getBatleShipTicket = buildCoverTicketMaker( "Balteship");
var getGiantTicket = buildCoverGiantMaker( "Giant Seagull");

getSubmarineTicket ("cesar");


Invocar funciones inmediatamente

var parkRides = [["Birch Bumpers",40],["Pines Plunge",40],["Cedar Coaster",40],["Ferris wjhell of firs",40]];

var fastPassQueue = ["Pines Plunge", "Birch Bumpers", "Pines Plunge"];

var watsRide = "Pines Plunge";

buildTicket(parkRides, fastPassQueue, watsRide  )();


function buildTicket( allRides, passRides, pick){

if(passRides[0] == pick){
var pass = passRide.shift();
return function(){
  alert ("Quick! You've got a Fast Pass to " + pass + "!");
};

} else {

   for( var i = 0; i< allRides.length; i++){
     if(allrides[i][0]) ==pick ){
     resturn function(){
  alert("A ticket is printing for " + oick + "1\n" + "Your wait time is about " + allRides[i][1]"+ minutes.");
};

}

}
}

})
}

Funciones

var  diff = function diffOfSqueares(a, b){  // En este caso el nombre de la funcion es opcional
return a*a-b*b;
};

var  diff = function (a, b){  // esta hace lo mismo no es necesario el nombre
return a*a-b*b;
};

diff(9,5);

//funciones que reciben funciones como parametros


var greeting = function (){

 alert ("Gracias por tu visita\n" + "hola mundo");
}


function closeTerminal(mensaje ){

mesage();
}

closeTerminal ( greeting );


var numbers = [12, 4, 3 , 9 , 8 , 6 , 10 ,1];

var results = number.map( function (arrayCell){
  return arrayCell * 2;
}



);



jueves, 12 de marzo de 2015

Validar radiobuttons

<SCRIPT LANGUAGE="javascript">
<!--
<!--
var valor = 0;
function fullName(){
var form =document.forms[1]


for (var i =0; i<form.boton.length; i++){
if (form.boton[i].checked==false){
 valor++;
}
}


if (valor != form.boton.length) {
alert(document.form.boton.value)
document.form.submit();
}
else  {

alert("Es necesario que seleccione un registro!!!!")
valor = 0
}
}

//-->
</SCRIPT>

viernes, 6 de marzo de 2015

Levantar un servidor en Python

python -m SimpleHTTPServer 3333

y con eso se levanta un servidor de la parpeta en donde estemos ubicados.