martes, 28 de octubre de 2014
Comandos peligrosos que no debes ejecutar
Hay ciertos comandos que pueden dañar tu maquina de forma irreparable o hacerte pasar un mal rato. A continuación voy a mostrar unos cuantos de ellos y explicar como funcionan.
Los comandos que voy a mostrar son para que los conozcas y si te comentan en algún foro que sirve para reparar algún problema puedas evitar caer en una trampa muy baja.
yes > .archivo &
El comando yes imprime una cadena de texto hasta que lo matas. Esa cadena se ingresa a un archivo nuevo, .archivo, que se incrementará hasta llenar completamente tu disco. No necesita sudo.
:(){:|:&};:
Esto, aunque parece un montón de caritas, es en realidad una bomba fork que puede bloquear tu pc en segundos. Para entenderlo mejor vamos a cambiar los dos puntos por mi_funcion y ordenarlo en varias lineas, de forma que va a quedarnos de la siguiente forma:
mi_funcion() {
mi_funcion|mi_funcion&
};
mi_funcion
Entonces lo que tenemos es una nueva función, mi_funcion, que se llama a si misma y pasa, mediante el símbolo | (pipeline), su salida como entrada a si mismo, y queda trabajando en segundo plano con el símbolo &, por ultimo se inicia por primera vez la función llamandola por su nombre. Por lo cual cada vez que se llama a la función está abre dos instancias de si misma hasta que se ocupe toda memoria o cpu y no puedas hacer nada.
No necesita sudo, se puede evitar configurando ulimit.
shred -uf /* &
Elimina de forma segura cualquier archivo en tu disco. Osea que no hay forma de recuperar los archivos borrados. Necesita sudo.
rm --no-preserve-root -R /
El comando rm sirve para borrar archivos, si lo ejecutas con -R lo hará de forma recursiva sobre los directorios, y al poner / lo hará desde el directorio raíz, por lo que esto elimina todos los archivos del disco. Necesita sudo.
algun_comando > /dev/sda
Ingresa el resultado de lo que pongas en algun_comando en tu disco duro, por lo general haciendo que no inicie mas tu linux. Necesita sudo.
mv ~ /dev/null
El comando mv sirve para mover archivos, ~ señala tu carpeta persona y /dev/null es una especie de agujero negro hacia la nada, osea que este comando moverá todos tus archivos a la nada. No necesita sudo a menos que no tengas permisos sobre /dev/null.
while true; do echo |wall; done &
Esto es un bucle infinito que manda mensajes a todos los usuarios. Si bien no rompe nada no podrás usar la terminal ni tampoco ningún usuario que este conectado a la misma maquina hasta que la misma se reinicie. Por lo cual algún usuario con pocos privilegios que se conecte de manera remota a tu maquina o a un servidor ssh puede hacerte pasar un mal rato. No necesita sudo, puedes evitarlo cambio los privilegios de /usr/bin/wall.
Como estos hay muchos más, con un poco de imaginación puedes hacer cosas realmente perjudiciales. ¿Esto significa que linux tenga vulnerabilidades o sea hackeable?. Pues no, ningún sistema puede evitar que tu mismo lo destruyas. Si bien deben haber muchas vulnerabilidades en linux estas no son, ya que necesitan que tu mismo las ejecutes para hacerte daño. Y seguramente puedes encontrar muchas similares en cualquier otro sistema, estos comandos deberían funcionar perfectamente en Unix y Mac. Por ejemplo el equivalente de :(){:|:&};: en Windows puede ser for /l %a in (0,0,0) do start el cual abrirá infinitas ventanas hasta trabar tu PC.
Como yapa les dejo la ruleta rusa para bash. Tan solo tienen que ejecutar el siguiente comando y tener suerte.
[ $[$RANDOM %6] == 0 ] && sudo rm --no-preserve-root -R / || echo "Tuviste suerte";
lunes, 9 de junio de 2014
Curso de AngularJS parte2
En la primera parte enseñé un acercamiento básico a AngularJS, ahora voy a mostrar las directivas ng-repeat y ng-options y un poco más del uso general del framework.
Bueno comencemos con ng-repeat. Esta directiva se escribe de la siguiente manera
ng-repeat="elemento in lista"
Esta directiva se coloca dentro de un tag y el tag y su contenido se repetirán tantas veces como elementos haya en la lista. Vamos con un ejemplo.
Bien, como se puede observar en el resultado, el div en el que coloque la directiva ng-repeat junto con todo su contenido se ha repetido por cada elemento en la lista. Lo mejor de todo esto es que si editamos la lista, se reflejará el cambio en tiempo real sobre la página. Le voy a dar un poco mas de funcionalidad al ejemplo anterior para que se pueda ver claramente.
Voy a a explicar un poco el código, en el HTML agregué 3 input para nombre, edad y nacionalidad, cada uno con su correspondiente ng-model. También un agregue 2 botones uno para agregar una nueva persona y otra para eliminarla, y cada uno llamando a su función correspondiente dentro de la directiva ng-click. Como se puede ver en el resultado el botón de Eliminar Persona aparece tantas veces como elementos hay en el array de personas, como habrán notado le paso como parámetro $index. $index se usa para que el ng-repeat nos pase el numero de elemento de el array en el que se encuentra. De esta forma cuando se llama a llama a la función eliminarPersona() esta elimina a la persona correcta. Para esto uso el método splice, que remueve el elemento indicado de la lista.
Por ultimo la función agregarPersona() utiliza el método push para agregar un nuevo elemento en la lista.
Una de las cosas mas interesantes que podemos hacer con ng-repeat es ordenar y filtrar el listado. Se hace de la siguiente manera, si queremos ordenar la lista anterior por el nombre:
ng-repeat="persona in personas | orderBy:'Nombre'"
Si queremos que se ordene de forma invertida agregamos :true al final.
ng-repeat="persona in personas | orderBy:'Nombre':true"
Y para filtrar hacemos lo siguiente:
ng-repeat="persona in personas | filter:'filtro'"
También de pueden combinar para hacer las dos cosas:
ng-repeat="persona in personas | orderBy:'Nombre':true | filter:'filtro'"
Vamos a verlo en un ejemplo:
Bien como se puede ver ahora la lista puede ordenarse y filtrarse muy fácilmente.
Una cosa a notar en este ejemplo, si miran bien el select es que no tiene seleccionada una opción, por defecto nos figura una opción en blanco que al seleccionar alguna de las otras opciones desaparece, esto se debe a que estoy usando mal AngularJS. Cuando necesitemos usar un select debemos usar la directiva ng-options para agregar sus opciones.
El uso de ng-options es muy similar a ng-repeat. Agrego persona.nombre for para indicar que este campo es el que tiene que mostrase como opcion.
ng-options="persona.nombre for persona in personas"
También se puede agregar persona.nombre as para indicar que este valor sera el que se use para el ng-model
ng-options="persona.nombre as persona.nombre for persona in personas"
Si queremos seleccionar un elemento desde el código solo debemos asignarle al ng-model del select el elemento que queremos que este seleccionado, de esta forma:
$scope.persona2 = $scope.personas[1];
Así seleccionaríamos a Pedro que es el segundo elemento de la lista. Pero y si no sabemos que elemento es Pedro. En este caso debemos agregar track by persona.nombre para que asocie ese vamor con la opcion y de esta forma podemos seleccionar esa opcion asignando un elemento de mismo valor.
ng-options="persona.nombre as persona.nombre for persona in personas track by persona.nombre"
Por ultimo un dato mas, ng-options no funciona correctamente cuando hacemos el submit de un form, como habrán notado no se recibe ningún valor, esto es por que angular esta echo para trabajar con AJAX o similar. Pero bien acá tengo un pequeño truco para que reciban los que hay en el form. Lo único que tienen que hacer es agregar un input oculto con el valor del select de esta forma recibirán el valor del input en vez del select
<select ng-model="persona1" ng-options="persona.nombre as persona.nombre for persona in personas"></select>
<input type="text" name="persona" ng-model="persona1" style="display:none;" />
Bueno comencemos con ng-repeat. Esta directiva se escribe de la siguiente manera
ng-repeat="elemento in lista"
Esta directiva se coloca dentro de un tag y el tag y su contenido se repetirán tantas veces como elementos haya en la lista. Vamos con un ejemplo.
Bien, como se puede observar en el resultado, el div en el que coloque la directiva ng-repeat junto con todo su contenido se ha repetido por cada elemento en la lista. Lo mejor de todo esto es que si editamos la lista, se reflejará el cambio en tiempo real sobre la página. Le voy a dar un poco mas de funcionalidad al ejemplo anterior para que se pueda ver claramente.
Voy a a explicar un poco el código, en el HTML agregué 3 input para nombre, edad y nacionalidad, cada uno con su correspondiente ng-model. También un agregue 2 botones uno para agregar una nueva persona y otra para eliminarla, y cada uno llamando a su función correspondiente dentro de la directiva ng-click. Como se puede ver en el resultado el botón de Eliminar Persona aparece tantas veces como elementos hay en el array de personas, como habrán notado le paso como parámetro $index. $index se usa para que el ng-repeat nos pase el numero de elemento de el array en el que se encuentra. De esta forma cuando se llama a llama a la función eliminarPersona() esta elimina a la persona correcta. Para esto uso el método splice, que remueve el elemento indicado de la lista.
Por ultimo la función agregarPersona() utiliza el método push para agregar un nuevo elemento en la lista.
Una de las cosas mas interesantes que podemos hacer con ng-repeat es ordenar y filtrar el listado. Se hace de la siguiente manera, si queremos ordenar la lista anterior por el nombre:
ng-repeat="persona in personas | orderBy:'Nombre'"
Si queremos que se ordene de forma invertida agregamos :true al final.
ng-repeat="persona in personas | orderBy:'Nombre':true"
Y para filtrar hacemos lo siguiente:
ng-repeat="persona in personas | filter:'filtro'"
También de pueden combinar para hacer las dos cosas:
ng-repeat="persona in personas | orderBy:'Nombre':true | filter:'filtro'"
Vamos a verlo en un ejemplo:
Bien como se puede ver ahora la lista puede ordenarse y filtrarse muy fácilmente.
Una cosa a notar en este ejemplo, si miran bien el select es que no tiene seleccionada una opción, por defecto nos figura una opción en blanco que al seleccionar alguna de las otras opciones desaparece, esto se debe a que estoy usando mal AngularJS. Cuando necesitemos usar un select debemos usar la directiva ng-options para agregar sus opciones.
El uso de ng-options es muy similar a ng-repeat. Agrego persona.nombre for para indicar que este campo es el que tiene que mostrase como opcion.
ng-options="persona.nombre for persona in personas"
También se puede agregar persona.nombre as para indicar que este valor sera el que se use para el ng-model
ng-options="persona.nombre as persona.nombre for persona in personas"
Si queremos seleccionar un elemento desde el código solo debemos asignarle al ng-model del select el elemento que queremos que este seleccionado, de esta forma:
$scope.persona2 = $scope.personas[1];
Así seleccionaríamos a Pedro que es el segundo elemento de la lista. Pero y si no sabemos que elemento es Pedro. En este caso debemos agregar track by persona.nombre para que asocie ese vamor con la opcion y de esta forma podemos seleccionar esa opcion asignando un elemento de mismo valor.
ng-options="persona.nombre as persona.nombre for persona in personas track by persona.nombre"
Por ultimo un dato mas, ng-options no funciona correctamente cuando hacemos el submit de un form, como habrán notado no se recibe ningún valor, esto es por que angular esta echo para trabajar con AJAX o similar. Pero bien acá tengo un pequeño truco para que reciban los que hay en el form. Lo único que tienen que hacer es agregar un input oculto con el valor del select de esta forma recibirán el valor del input en vez del select
<select ng-model="persona1" ng-options="persona.nombre as persona.nombre for persona in personas"></select>
<input type="text" name="persona" ng-model="persona1" style="display:none;" />
viernes, 11 de abril de 2014
Como convertir vídeos en Linux con avconv
avconv es un programa libre para convertir vídeo y audio a través de la terminal.
Si bien disponemos de programas con interfaz como FF Multi converter que utiliza avconv para convertir los vídeos. Entonces para que quiero saber como usar un programa en la terminal me dirán, bueno el tema es que si bien este programa trae muchas opciones puede que en ciertos caso nos quede corto y necesitemos alguna opción que no este prevista. Entonces acá es donde saber usar el avconv nos salvara el día, ya que podemos crear un preset con las opciones que queramos en nuestro vídeo, y dejarlo guardada para futuras conversiones.
Uso de avconv
avconv [opciones globales] [opciones de entrada] -i [archivo de entrada] [opciones de salida] [archivo de salida]
Un ejemplo de uso del mismo para convertir un vídeo de mp4 a avi sería el siguiente
avconv -i videodeorigen.mp4 videodedestino.avi
Pero si queremos especificar un poco mas los detalles acá van algunos parámetros que se pueden usar
Ver los codecs disponibles
avconv -encoders
Los que tienen la letra A son los que sirven para audio y los que tienen una V son los que sirven para video
Para usar el codec
avconv -i archivoDeEntrada -c:v codecDeVideo -c:a codecDeAudio archivoDeSalida
copy para copiar el codec del original
Para colocar el bitrate
Vídeo
-b 1200k
Audio
-b:a 128k
Para cambiar el tamaño del vídeo
-s anchoxalto
También se pueden ingresar abreviaciones como vga, para ver la lista completa "man avconv"
Cambiar el framerate
-r 24
Podemos especificar el valor que queramos donde el 24
Forzar tag del codec de vídeo
-vtag XVID
-aspect 16:9
Ver los codecs disponibles
avconv -encoders
Los que tienen la letra A son los que sirven para audio y los que tienen una V son los que sirven para video
Para usar el codec
avconv -i archivoDeEntrada -c:v codecDeVideo -c:a codecDeAudio archivoDeSalida
copy para copiar el codec del original
Para colocar el bitrate
Vídeo
-b 1200k
Audio
-b:a 128k
Para cambiar el tamaño del vídeo
-s anchoxalto
También se pueden ingresar abreviaciones como vga, para ver la lista completa "man avconv"
Cambiar el framerate
-r 24
Podemos especificar el valor que queramos donde el 24
Forzar tag del codec de vídeo
-vtag XVID
Esto sirve por ejemplo si tenemos un reproductor que reproduce vídeos avi con el codec XVID pero al ponerle un archivo con el codec mpeg4 no lo reproduce por mas que sean similares, al ponerle el tag XVID le estamos diciendo al reproductor que lo interprete como si lo fuera.
Setear la relación de aspecto del vídeo
Algunos valores validos son "4:3", "16:9", "1.3333", "1.7777"
Deshabilitar el vídeo, salida de solo audio
-vn
Útil cuando queremos extraer el audio de un vídeo
-vn
Útil cuando queremos extraer el audio de un vídeo
sábado, 2 de noviembre de 2013
Como hacer una animacion dentro de un elemento canvas de HTML5 con javascript
Con la llegada del HTML5 se han introducido varios tag nuevos. Uno que me interesó bastante es el tag canvas ya que permite que dibujemos sobre la superficie de este. Y con un poco de habilidad se pueden hacer animaciones.El código es el siguiente:
Codigo
Bien lo que hacemos acá en primer lugar es crear nuestra clase animación. Dentro de este definimos las propiedades de la caja: posición, velocidad y tamaño. Y de la pantalla: alto y ancho. También llamamos al tag canvas por su id y usamos el método getContext( "2d" ) para traer los métodos y propiedades para dibujar sobre este.
Luego tenemos cuatro métodos:
- limpiarPantalla(): Dibuja un rectángulo negro sobre todo el canvas con el metodo fillRect()
- dibujar(): Dibuja la caja en la posición actual.
- actualizar(): Este método se encarga de evitar que la caja se salga del canvas. Lo que hace es verificar la próxima posición de la caja, si está fuera del cuadro invierte la velocidad de la misma para que se dirija a la dirección contraria. Al final lo que hace es sumar la posición con la velocidad, de forma que si la velocidad en x es positiva la caja se moverá hacia la derecha y viceversa. Y si la velocidad en y es positiva se moverá hacia a abajo y viceversa.
- animar(): Por ultimo este método llama a los métodos anteriores en orden para que se produzca la animación, osea, se limpia la pantalla, se actualiza la posición de la caja y se dibuja la misma.
Al final lo que hacemos es crear el objeto miAnimacion de la clase animacion que acabamos de crear. Luego usamos el método setInterval() para hacer que nuestro método animar se repita cada 32 milisegundos.
El resultado es el siguiente:
jueves, 17 de octubre de 2013
Curso de AngularJS parte1
Esta semana me tope con este Framework en una conferencia de Google. Me pareció muy interesante la facilidad y velocidad con la que se pueden desarrollar aplicaciones web. Despues de ver un par de manuales y leer un libro lo he estado usando con muy buenos resultados.
Bien, voy a explicar un poco el código.
Con la directiva ng-app lo que hago es indicarle a AngularJS que parte del código debe gestionar.
<body ng-app="">
Esta directiva podemos colocarla en cualquier parte de la pagina indicando de esta forma que solo maneje esa parte de la pagina.
Con la directiva ng-controller="miControlador" indicamos a AngularJS cual es la sección de código que debe ser manejada por este controlador
<div ng-controller="miControlador">
El controlador se define en la sección de JavaScrip y se le pasa el objeto $scope, que sirve para propagar los eventos del código, osea que cuando cambie una variable se refleje en la pagina.
Dentro del controlador he declarado la variable saludo
Ahora, con solo colocar llaves dobles y el nombre de la variable podemos hacer que se muestre su contenido en cualquier parte del código HTML.
Esto funciona de la forma {{ expresión }}, donde expresión es un fragmento de código de tipo JavaScript como por ejemplo:
Ahora vamos a hacer algo mas interesante, voy a agregar un input de tipo text con la directiva ng-model="saludo.texto" Ahora el input y la variable han quedado enlazados y todo lo que se escriba pasara automáticamente a la variable.
También agregué un botón al que le incluyo la directiva ng-click="saludo.texto='Hola'"
De esta forma cada vez que se haga click en el botón, a la variable saludo.texto se le asignara el valor Hola
Ir a parte 2
¿Que es AngularJS?
Según Wikipedia: AngularJS es un framework de JavaScript de código abierto, mantenido por Google, que ayuda con la gestión de lo que se conoce como aplicaciones de una sola página. Su objetivo es aumentar las aplicaciones basadas en navegador con (MVC) Capacidad de Modelo Vista Controlador, en un esfuerzo para hacer que el desarrollo y las pruebas más fáciles.
Bien, y como empiezo
Muy simple, solo debes agregar la librería de AngularJS al HEAD de tu página:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
Puedes descargar la ultima versión en la pagina oficial www.angularjs.org
Con esto ya estas listo para empezar a programar.
Ejemplo de Hola Mundo en AngularJS:
Bien, voy a explicar un poco el código.
Con la directiva ng-app lo que hago es indicarle a AngularJS que parte del código debe gestionar.
<body ng-app="">
Esta directiva podemos colocarla en cualquier parte de la pagina indicando de esta forma que solo maneje esa parte de la pagina.
Con la directiva ng-controller="miControlador" indicamos a AngularJS cual es la sección de código que debe ser manejada por este controlador
<div ng-controller="miControlador">
El controlador se define en la sección de JavaScrip y se le pasa el objeto $scope, que sirve para propagar los eventos del código, osea que cuando cambie una variable se refleje en la pagina.
Dentro del controlador he declarado la variable saludo
Ahora, con solo colocar llaves dobles y el nombre de la variable podemos hacer que se muestre su contenido en cualquier parte del código HTML.
Esto funciona de la forma {{ expresión }}, donde expresión es un fragmento de código de tipo JavaScript como por ejemplo:
- 3+1
- saludo.texto
- miFuncion()
Ahora vamos a hacer algo mas interesante, voy a agregar un input de tipo text con la directiva ng-model="saludo.texto" Ahora el input y la variable han quedado enlazados y todo lo que se escriba pasara automáticamente a la variable.
También agregué un botón al que le incluyo la directiva ng-click="saludo.texto='Hola'"
De esta forma cada vez que se haga click en el botón, a la variable saludo.texto se le asignara el valor Hola
Ir a parte 2
martes, 15 de octubre de 2013
Como hacer un form paginado con AngularJS
Hola, hoy les traigo un código para poder paginar un Form o cualquier otra cosa diseñado por mi. Solo que ahora usando AngularJS.
Este código es mucho mas simple que el anterior, En la parte del script solo tenemos que crear un nuevo controlador y declarar la variable pagina dentro del $scope con el valor de la primer página que se quiere mostrar, en este caso yo le puse que muestre la número 1.
Y el siguiente es el código HTML, como podemos ver es el mismo form con 4 div en su interior. Solo que ahora se han eliminado todas las clases, ya que no vamos a utilizarlas.
En el DIV que contiene al FORM se agregó el atributo ng-app para indicar a AngularJS que tiene que trabajar en ese ámbito.
Luego se agregó el atributo ng-controller='MyController' para definir el controlador que trabajara con el elemento y sus hijos.
En cada una de los DIV que contienen las páginas se agrego el atributo ng-show que lo que hace es mostrar el elemento siempre que la expresión evaluada sea TRUE, en este caso, cuando la variable pagina sea igual al numero de página.
Y para finalizar se agregó a cada botón el atributo ng-click que hace que cada vez que se presione el botón aumente o disminuya el valor de la variable pagina en 1 según sea el caso. Como se puede ver nos quedo un código mucho mas corto y entendible que con JQuery
Bien, lo que nos queda, es lo siguiente, como podemos ver la funcionalidad es la misma.
Este código es mucho mas simple que el anterior, En la parte del script solo tenemos que crear un nuevo controlador y declarar la variable pagina dentro del $scope con el valor de la primer página que se quiere mostrar, en este caso yo le puse que muestre la número 1.
Codigo AngularJS
function MyController($scope) {
$scope.pagina = 1;
}
Y el siguiente es el código HTML, como podemos ver es el mismo form con 4 div en su interior. Solo que ahora se han eliminado todas las clases, ya que no vamos a utilizarlas.
En el DIV que contiene al FORM se agregó el atributo ng-app para indicar a AngularJS que tiene que trabajar en ese ámbito.
Luego se agregó el atributo ng-controller='MyController' para definir el controlador que trabajara con el elemento y sus hijos.
En cada una de los DIV que contienen las páginas se agrego el atributo ng-show que lo que hace es mostrar el elemento siempre que la expresión evaluada sea TRUE, en este caso, cuando la variable pagina sea igual al numero de página.
Y para finalizar se agregó a cada botón el atributo ng-click que hace que cada vez que se presione el botón aumente o disminuya el valor de la variable pagina en 1 según sea el caso. Como se puede ver nos quedo un código mucho mas corto y entendible que con JQuery
Codigo HTML
Bien, lo que nos queda, es lo siguiente, como podemos ver la funcionalidad es la misma.
viernes, 11 de octubre de 2013
Como hacer un form paginado con JQuery
Hola, hoy les traigo un código para poder paginar un Form o cualquier otra cosa diseñado por mi.
El código es bastante simple, primero creamos un objeto que contenga los metodos necesarios para ocultar, mostrar, y pasar de pagina. Al crear el nuevo objeto se deben ingresar el numero de paginas, la pagina que se va a mostrar al cargar y la referencia al form. Luego asignamos a los botones siguiente y anterior las funciones correspondientes, no necesita mas explicacion.
Y el siguiente es el codigo HTML, como podemos ver es un form con 4 div en su interior.
Bien, lo que nos queda, es lo siguiente:
El código es bastante simple, primero creamos un objeto que contenga los metodos necesarios para ocultar, mostrar, y pasar de pagina. Al crear el nuevo objeto se deben ingresar el numero de paginas, la pagina que se va a mostrar al cargar y la referencia al form. Luego asignamos a los botones siguiente y anterior las funciones correspondientes, no necesita mas explicacion.
Codigo JQuery
function Formulario(cantidad, posicion, formRef){
this.cantidad = cantidad;
this.posicion = posicion;
this.formRef = formRef;
this.ocultarTodos = function(){
for(var pagina=0; pagina<=this.cantidad; pagina++)
$(this.formRef+" .parte"+pagina).hide();
console.log("todos ocultos");
}
this.mostrar = function( pagina ){
this.ocultarTodos();
$(this.formRef+" .parte"+pagina).show();
console.log("muestra "+pagina);
}
this.siguiente = function(){
console.log("siguiente");
if( this.posicion < this.cantidad ){
this.posicion ++;
this.mostrar( this.posicion );
}
}
this.anterior = function(){
console.log("anterior");
if( this.posicion > 1 ){
this.posicion --;
this.mostrar( this.posicion );
}
}
this.constructor = function(){
this.ocultarTodos();
this.mostrar(this.posicion);
$(this.formRef+" .parte1 .ant").attr("disabled", "disabled");
$(this.formRef+" .parte"+cantidad+" .sig").attr("disabled", "disabled");
}
};
$(function(){
var miForm = new Formulario(4, 1, "#miform");
miForm.constructor();
$(".sig").click(
function(){
miForm.siguiente()
}
);
$(".ant").click(
function(){
miForm.anterior()
}
);
});
Y el siguiente es el codigo HTML, como podemos ver es un form con 4 div en su interior.
Codigo HTML
Bien, lo que nos queda, es lo siguiente:
miércoles, 9 de octubre de 2013
Quiero libros. PERO GRATIS
Si te has decidido a estudiar algún tema pero no tienes dinero para comprar libros, o tal vez no quieras comprarlo. La mejor opción es descargarse el libro y leerlo desde la PC o imprimirlo. Pero bueno, de donde lo descargamos, muchas veces conseguir un libro no es cosa fácil y menos en una calidad decente. Por eso acá les dejo una lista de paginas con libros de descarga gratuita, muchos de los libros son pagos pero tienen una versión ebook gratuita.
IT-ebooks
Excelente página cientos de libros pagos para descargar gratis, pero la contra, están todos en ingles. De todas formas se pueden encontrar los últimos libros sobre temas de los cuales aun no hay libros en español
eBookshare
Muchos libros de todo tipo en el idioma que quieras
Freelibros.com
Muchos libros para descargar en ingles y en español
OpenLibra
La biblioteca libre, cientos de libros libres para descargar y en español.
Bien, espero que les sirva.
Bien, espero que les sirva.
lunes, 8 de octubre de 2012
Instalar airVision NVR en Ubuntu 12.04
Esta semana tuve que hacer la instalación de una cámara IP AirCam de Ubiquiti.
Esta camarita permite vídeo en 1MP/HDTV720, compresión en H.264 y presenta una calidad de imagen muy buena en ambientes con o sin luz. La configuración de la misma es muy simple, la conectamos a la PC con un cable de Red cruzado. Configuramos nuestra PC con la IP 192.168.1.1 Entramos al navegador y nos conectamos a la dirección http://192.168.1.20
Ingresamos: usuario ubnt, contraseña ubnt y listo ya la podemos configurar a nuestro gusto. El menú se puede poner en español, y las opciones son bastante fáciles de configurar. Esta configuración es similar para la airCam Dome y la airCam Mini.
En la pestaña system se puede actualizar el firmware de la AirCam, cosa bastante recomendable ya que corrige varios errores.
Una cosa interesante que tiene esta camara es la posibilidad de poder ver la filmacion con algun reproductor que admita rtsp, como por ejemplo el VLC, seleccionando abrir volcado de red e ingresando la dirección rtsp://192.168.1.20/live/ch00_0
Bien, una vez configurada la AirCam toca instalar el software de vídeo vigilancia, airVision NVR.
Pero a la hora de instalar me encontré con que, o caramba, los repositorios son hasta Ubuntu 11.10 o Debian 6.0. No hay problema se instala igual....
La PC que voy a usar tiene las siguientes características:
Como es una PC pequeña sobre todo en lo que se refiere al procesador le he instalado Lubuntu 12.04 pero los pasos son aplicables a Ubuntu 12.04 o cualquiera de sus ramas de igual manera.
- Añadir el repositorio Ubiquiti añadiendo al archivo /etc/apt/sources.list:
- Agregar la clave pública del repositorio ejecutando:
- Instalar AirVision NVR ejecutando:
- Instalar AirVision ejecutando:
- Instalar Openssl27 (Si te sale "api.nvr.err.internal error" te falto este paso):
- Instalar Java 6 y Adobe Flash:
- Redireccionar carpetas de mysql y opessl:
Bien, ya casi está listo ahora es hay que reiniciar la PC. Una vez iniciado el sistema ya vamos a poder ingresar al airVision. Para esto en el navegador ingresamos a la dirección https://localhost:7443
Acá nos va a pedir algunos datos de configuración inicial y nos va a detectar las cámaras de la red.
Ya, en teoría, tenemos nuestro sistema de vigilancia andando. Pero, y si quisiéramos que el vídeo guardado se vaya borrando a medida que pasa el tiempo para no llenar nuestro disco. Lamentablemente el airVision aun no trae esa característica. Pero como estamos en Linux y lo que sobran son comandos para hacer cualquier cosa lo podemos arreglar fácil.
Lo que hay que hacer es programar una tarea que busque los archivos de X días de antigüedad y los borre. para esto vamos a la linea de comando ejecutamos lo siguiente:
Si es la primera vez que ejecutamos crontab nos va a preguntar con que programa queremos abrirlo, yo elegí 2 nano ya que es lo que me resulta mas fácil. En la ultima linea vamos a agregar los siguiente:
Está tarea se va a ejecutar todos los días a las 5:00 am y va a eliminar todas las imágenes guardadas que tengan más de de 10 días de antigüedad. Estos parámetros los podemos cambiar modificando el 0 y el 5 para los minutos y las horas respectivamente. Y el +10 para la antigüedad de los archivos.
Con esto ya queda listo el nuestro sistema de vigilancia airVision en Ubuntu 12.04
Esta camarita permite vídeo en 1MP/HDTV720, compresión en H.264 y presenta una calidad de imagen muy buena en ambientes con o sin luz. La configuración de la misma es muy simple, la conectamos a la PC con un cable de Red cruzado. Configuramos nuestra PC con la IP 192.168.1.1 Entramos al navegador y nos conectamos a la dirección http://192.168.1.20
Ingresamos: usuario ubnt, contraseña ubnt y listo ya la podemos configurar a nuestro gusto. El menú se puede poner en español, y las opciones son bastante fáciles de configurar. Esta configuración es similar para la airCam Dome y la airCam Mini.
En la pestaña system se puede actualizar el firmware de la AirCam, cosa bastante recomendable ya que corrige varios errores.
Una cosa interesante que tiene esta camara es la posibilidad de poder ver la filmacion con algun reproductor que admita rtsp, como por ejemplo el VLC, seleccionando abrir volcado de red e ingresando la dirección rtsp://192.168.1.20/live/ch00_0
Pero a la hora de instalar me encontré con que, o caramba, los repositorios son hasta Ubuntu 11.10 o Debian 6.0. No hay problema se instala igual....
La PC que voy a usar tiene las siguientes características:
- Procesador AMD E-350
- Memoría RAM 2GB
- Disco Rigido 320GB
Como es una PC pequeña sobre todo en lo que se refiere al procesador le he instalado Lubuntu 12.04 pero los pasos son aplicables a Ubuntu 12.04 o cualquiera de sus ramas de igual manera.
- Añadir el repositorio Ubiquiti añadiendo al archivo /etc/apt/sources.list:
Código:
## Ubiquiti AirVision and AirVision NVR deb http://www.ubnt.com/downloads/airvision/apt oneiric ubiquitiEn el caso de que lo agregues desde el centro de software debes destildar la entrada (código fuente) que agrega por defecto.
- Agregar la clave pública del repositorio ejecutando:
Código:
wget -O - http://www.ubnt.com/downloads/airvision/apt/airvision.gpg.key | sudo apt-key add -
- Instalar AirVision NVR ejecutando:
Código:
sudo apt-get update sudo apt-get install airvision-nvr
- Instalar AirVision ejecutando:
Código:
sudo apt-get update sudo apt-get install airvision
- Instalar Openssl27 (Si te sale "api.nvr.err.internal error" te falto este paso):
Código:
sudo apt-get install libgnutls-openssl27
- Instalar Java 6 y Adobe Flash:
Código:
sudo apt-get install openjdk-6-jre sudo apt-get install flashplugin-installer
- Redireccionar carpetas de mysql y opessl:
Código 32bit:
sudo ln -s /usr/lib/i386-linux-gnu/libmysqlclient.so.18 /usr/lib/i386-linux-gnu/libmysqlclient.so.16 sudo ln -s /usr/lib/i386-linux-gnu/libgnutls-openssl.so.27 /usr/lib/i386-linux-gnu/libgnutls-openssl.so.26
Código 64bit:
sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 /usr/lib/x86_64-linux-gnu/libmysqlclient.so.16 sudo ln -s /usr/lib/x86_64-linux-gnu/libgnutls-openssl.so.27 /usr/lib/x86_64-linux-gnu/libgnutls-openssl.so.26
Bien, ya casi está listo ahora es hay que reiniciar la PC. Una vez iniciado el sistema ya vamos a poder ingresar al airVision. Para esto en el navegador ingresamos a la dirección https://localhost:7443
Acá nos va a pedir algunos datos de configuración inicial y nos va a detectar las cámaras de la red.
Ya, en teoría, tenemos nuestro sistema de vigilancia andando. Pero, y si quisiéramos que el vídeo guardado se vaya borrando a medida que pasa el tiempo para no llenar nuestro disco. Lamentablemente el airVision aun no trae esa característica. Pero como estamos en Linux y lo que sobran son comandos para hacer cualquier cosa lo podemos arreglar fácil.
Lo que hay que hacer es programar una tarea que busque los archivos de X días de antigüedad y los borre. para esto vamos a la linea de comando ejecutamos lo siguiente:
Código:
sudo crontab -e
Si es la primera vez que ejecutamos crontab nos va a preguntar con que programa queremos abrirlo, yo elegí 2 nano ya que es lo que me resulta mas fácil. En la ultima linea vamos a agregar los siguiente:
Código:
0 5 * * * find /var/cache/airvision-nvr/images/* -mtime +10 -exec rm {} \;
Está tarea se va a ejecutar todos los días a las 5:00 am y va a eliminar todas las imágenes guardadas que tengan más de de 10 días de antigüedad. Estos parámetros los podemos cambiar modificando el 0 y el 5 para los minutos y las horas respectivamente. Y el +10 para la antigüedad de los archivos.
Con esto ya queda listo el nuestro sistema de vigilancia airVision en Ubuntu 12.04
miércoles, 22 de agosto de 2012
GROUP BY de los últimos registros en MySQL
Esta semana me encontré con un problema. Tenia una tabla similar a la siguiente:
Y necesitaba obtener el ultimo registro de cada colectivo. Osea:
Si hacemos la siguiente consulta:
SELECT * FROM tabla GROUP BY nro_colectivo
este sería el resultado:
Como se puede ver lo que devolvió fue el primer registro de cada uno. Si agregáramos un ORDER BY id DESC obtendríamos las mismas filas solo que ordenadas de mayor a menor, Osea 3, 2, 1.
Para obtener el resultado deseado hay que hacer la consulta de la siguiente manera:
SELECT * FROM ( SELECT * FROM tabla ORDER BY id DESC )sub GROUP BY nro_colectivo
Lo que estoy haciendo es una consulta anidada. Osea hago una consulta que me traiga toda la tabla, pero ordenada en forma descendente, le doy un nombre, 'sub' en este caso, y a esta le hago una segunda consulta pidiendo que me agrupe los datos por el numero de colectivo.
Espero que les sirva.
| id | nro_colectivo | fecha | chofer |
|---|---|---|---|
| 1 | 800 | 2012-08-19 | Pablo |
| 2 | 801 | 2012-08-19 | Juan |
| 3 | 802 | 2012-08-20 | Mariano |
| 4 | 802 | 2012-08-21 | Pablo |
| 5 | 800 | 2012-08-21 | Daniel |
Y necesitaba obtener el ultimo registro de cada colectivo. Osea:
| id | nro_colectivo | fecha | chofer |
|---|---|---|---|
| 2 | 801 | 2012-08-19 | Juan |
| 4 | 802 | 2012-08-21 | Pablo |
| 5 | 800 | 2012-08-21 | Daniel |
Si hacemos la siguiente consulta:
SELECT * FROM tabla GROUP BY nro_colectivo
este sería el resultado:
| id | nro_colectivo | fecha | chofer |
|---|---|---|---|
| 1 | 800 | 2012-08-19 | Pablo |
| 2 | 801 | 2012-08-19 | Juan |
| 3 | 802 | 2012-08-20 | Mariano |
Como se puede ver lo que devolvió fue el primer registro de cada uno. Si agregáramos un ORDER BY id DESC obtendríamos las mismas filas solo que ordenadas de mayor a menor, Osea 3, 2, 1.
Para obtener el resultado deseado hay que hacer la consulta de la siguiente manera:
SELECT * FROM ( SELECT * FROM tabla ORDER BY id DESC )sub GROUP BY nro_colectivo
Lo que estoy haciendo es una consulta anidada. Osea hago una consulta que me traiga toda la tabla, pero ordenada en forma descendente, le doy un nombre, 'sub' en este caso, y a esta le hago una segunda consulta pidiendo que me agrupe los datos por el numero de colectivo.
Espero que les sirva.
domingo, 11 de abril de 2010
ComandoS de Windows
Siempre viene bien tenerlos a mano.
* CONTROL : abre el panel de control
* CONTROL ADMINTOOLS : abre las herramientas administrativas
* CONTROL KEYBOARD : abre las propiedades del teclado
* CONTROL COLOR : abre las propiedades de pantalla
* CONTROL FOLDERS : abre las opciones de carpeta
* CONTROL FONTS : abre las fuentes
* CONTROL INTERNATIONAL o INTL.CPL : abre la configuración regional y de idioma
* CONTROL MOUSE o MAIN.CPL : abre las propiedades del mouse
* CONTROL USERPASSWORDS : abre las cuentas de usuario
* CONTROL USERPASSWORDS2 o NETPLWIZ : administración de usuarios y su acceso
* CONTROL /NAME MICROSOFT.BACKUPANDRESTORECENTER : abre el centro de respaldo y recuperación (Para Vista únicamente).
* CONTROL PRINTERS : impresoras y faxes disponibles
* APPWIZ.CPL : abre agregar o quitar programas
* OPTIONALFEATURES : abre la herramienta agregar o quitar componentes Windows (únicamente para Vista)
* DESK.CPL : abre las propiedades de pantalla
* HDWWIZ.CPL : abre el asistente para agregar hardware
* INFOCARDCPL.CPL : abre el asistente de compatibilidad de programas
* IRPROPS.CPL : abre la utilidad de infrarojo
* ISCSICPL : abre la herramienta de configuración del iniciador ISCI Microsoft (únicamente para Vista)
* JOY.CPL : abre el dispositivo de juegos
* MMSYS.CPL : abre las propiedades de dispositivos de sonido y audio
* SYSDM.CPL : abre las propiedades del sistema
* TABLETPC.CPL : abre la configuración para Tablet pc (únicamente para Vista)
* TELEPHON.CPL : abre la herramienta de información de la ubicación
* TIMEDATE.CPL : abre las propiedades de fecha y hora
* WSCUI.CPL : abre el centro de seguridad de Windows
* ACCESS.CPL : abre las opciones de accesibilidad (únicamente para XP)
* WUAUCPL.CPL : abre el servicio de actualizaciones automáticas de Windows (únicamente para XP)
* POWERCFG.CPL : abre el administrador de opciones de energía
* COLLAB.CPL : abre la visualización instantánea (únicamente para Vista)
* AZMAN.MSC : abre el administrador de autorización (únicamente para Vista)
* CERTMGR.MSC : abre los certificados para el usuario actual
* COMPMGMT.MSC : abre la administración de equipos
* COMEXP.MSC o DCOMCNFG : abre los servicio de componentes (únicamente para Vista)
* DEVMGMT.MSC : abre el Administrador de dispositivos.
* EVENTVWR o EVENTVWR.MSC : abre el Visor de sucesos
* FSMGMT.MSC : abre las carpetas compartidas
* NAPCLCFG.MSC : abre la herramienta de configuración del cliente NAP (únicamente para Vista)
* SERVICES.MSC : abre el administrador de Servicios
* TASKSCHD.MSC o CONTROL SCHEDTASKS : abre el planificador de tareas (únicamente para Vista)
* GPEDIT.MSC : abre el editor de directiva de grupo (para las ediciones profesionales y más de Windows)
* LUSRMGR.MSC : abre el editor de usuarios locales y grupos
* SECPOL.MSC : abre la configuración de seguridad local
* NTMSMGR.MSC : abre el administrador de medios de almacenamiento extraíbles
* NTMSOPRQ.MSC : abre las solicitudes del operador de medios de almacenamiento extraíbles
* RSOP.MSC : abre el conjunto resultante de directivas
* WMIMGMT.MSC : abre Windows Management Infrastructure
* TPM.MSC : abre la herramienta gestión de modulo de plataforma protegida en el equipo local (únicamente para Vista)
* PERFMON o PERFMON.MSC : abre el monitor de rendimiento de Windows.
* MMC : abre una nueva consola vacía
* MDSCHED : abre la herramienta de diagnostico de la memoria (únicamente para Vista)
* DXDIAG : abre la herramienta de diagnostico de DirectX
* ODBCAD32 : abre el administrador de orígenes de datos ODBC
* REGEDIT o REGEDT32 (únicamente para Vista) : abre el editor del registro
* DRWTSN32 : abre Dr. Watson (Pour XP uniquement)
* VERIFIER : abre el administrador del comprobador de controlador
* CLICONFG : abre la herramienta de configuración de cliente de red SQL
* UTILMAN : abre el administrador de utilidades *COMPUTERDEFAULTS : abre la herramienta de programas predeterminados (únicamente para Vista)
* CREDWIZ : abre la ventana para hacer copias de seguridad y restaurar contraseñas de usuarios (únicamente para Vista)
* LPKSETUP : abre el asistente de instalación y desinstalación de idiomas (únicamente para Vista)
* MOBSYNC : abre elementos para sincronizar
* REKEYWIZ : abre el administrador de certificados de cifrado de archivos (únicamente para Vista)
* SLUI : abre el asistente de activación de Windows (únicamente para Vista)
* MSCONFIG : abre la utilidad de configuración del sistema
* SYSEDIT : abre el editor de configuración del sistema (atención, manipular con prudencia)
* SYSKEY : abre la herramienta de protección de la base de datos de cuentas de Windows (atención, manipular con mucha prudencia!)
Programas y herramientas de Windows
* EXPLORER : abre el explorador de Windows
* IEXPLORE : abre Internet Explorer
* WAB : abre la libreta de direcciones (únicamente para Vista)
* CHARMAP : abre la tabla de caracteres
* MSPAINT : abre Paint
* WRITE o Wordpad : abre Wordpad
* NOTEPAD : abre el bloc de notas
* SNIPPINGTOOL : abre la herramienta de captura de pantalla (únicamente para Vista).
* CALC : abre la calculadora
* CLIPBRD : abre el portapapeles (para XP únicamente)
* WINCHAT : abre el programa de Microsoft de chat en red (para Windows XP únicamente)
* SOUNDRECORDER : abre el altavoz
* DVDPLAY : ejecuta la unidad de DVD
* WMPLAYER : abre Windows Media Player
* MOVIEMK : abre Windows Movie Maker
* JOURNAL : abre un nuevo journal (únicamente para Vista)
* STIKYNOT : abre el recordatorio (únicamente para Vista)
* OSK : muestra el teclado en pantalla.
* TABTIP : abre el panel de ingreso de datos Tablet PC (únicamente para Vista)
* MAGNIFY : abre la lupa
* WINCAL : abre el calendario de Windows (únicamente para Vista)
* DIALER : abre el marcador telefónico de Windows
* EUDCEDIT : abre el editor de caracteres privados
* SNDVOL : ajusta las propiedades del volumen
* RSTRUI : abre la herramienta de restauración del sistema (únicamente para Vista)
* %WINDIR%\SYSTEM32\RESTORE\RSTRUI.EXE : abre la herramienta de restauración del sistema (para XP únicamente).
* MSINFO32 : abre la informacion del sistema
* MRT : abre la herramienta de eliminación de software malintencionado de Windows.
* TASKMGR : abre el administrador de tareas de Windows
* CMD : abre la consola
* MIGWIZ : abre el asistente para transferencia de archivos y configuraciones (únicamente para Vista)
* MIGWIZ.EXE : abre el asistente para transferencia de archivos y configuraciones (para XP únicamente)
* SIDEBAR : abre la barra de Windows (únicamente para Vista)
* SIGVERIF : abre la herramienta de comprobación de la firma del archivo
* WINVER : abre la ventana Acerca de Windows para conocer la versión de Windows
* FSQUIRT : abre el asistente para la transferencia de archivos Bluetooth
* IEXPRESS : abre el asistente de archivos auto-extraíbles.
* MBLCTR : abre l centro de movilidad de Windows (únicamente para Vista)
* MSRA : abre el asistente remoto de Windows
* MSTSC : abre la herramienta de conexión a escritorio remoto
* MSDT : abre la herramienta de diagnostico y soporte de Microsoft
* WERCON : abre la herramienta de reportes y soluciones a los problemas (únicamente para Vista)
* WINDOWSANYTIMEUPGRADE : permite la actualización de Windows Vista
* WINWORD: abre Word (si está instalado)
* PRINTBRMUI : abre el asistente de migración de impresora (para Vista únicamente)
Administración de discos
* DISKMGMT.MSC : abre el administrador de discos
* CLEANMGR : abre la herramienta para liberar espacio en disco
* DFRG.MSC : abre el desfragmentador de disco
* DEFRAG: desfragmenta el disco duro
* CHKDSK : efectúa un análisis de la partición precisados en los parámetros del comando (para mayor información, escribe CHKDSK /? en la consola CMD)
* DISKPART : abre la herramienta para particionar (un poco difícil de usar)
Administracion de red e Internet
* IPCONFIG : muestra la configuración de las direcciones IP en el ordenador (Para mayor información, escribe:
* IPCONFIG /? en la consola CMD)
* CONTROL NETCONNECTIONS o NCPA.CPL : muestra las conexiones de red
* INETCPL.CPL : abre las propiedades de Internet
* FIREWALL.CPL : abre el firewall de Windows
* WF.MSC : abre las funciones avanzadas del firewall de Windows (únicamente para Vista).
* NETSETUP.CPL : abre el asistente para configuración de red (únicamente para XP)
Otros comandos
* JAVAWS : muestra la caché del programa JAVA (si está instalado)
* AC3FILTER.CPL : abre las propiedades del filtro AC3 (si está instalado)
* FIREFOX : abre Mozilla FireFox (si está instalado)
* NETPROJ : permite la conexión a un proyector de red (únicamente para Vista)
* LOGOFF : cierra la sesión activa
* SHUTDOWN : apaga Windows
* SHUTDOWN –A : detiene el apagado de Windows
* %WINDIR% o %SYSTEMROOT% : abre la carpeta de instalación de Windows
* %PROGRAMFILES% : abre la carpeta de instalación de otros programas (Program Files)
* %USERPROFILE% : abre la carpeta del perfil del usuario conectado actualmente
* %HOMEDRIVE% : abre el explorador en la partición donde el sistema operativo está instalado
* Comprobador de archivos del sistema (necesita un CD de Windows si la caché no está disponible)
o SFC /SCANNOW : hace un scan de todos los archivos del sistema y repara los archivos dañados
o SFC /VERIFYONLY : hace un scan únicamente de los archivos del sistema
o SFC /SCANFILE="nombre y ruta del archivo" : hace un scan del archivo indicado, y lo repara si está dañado
o SFC /VERIFYFILE="nombre y ruta del archivo" : hace un scan únicamente del archivo indicado
o SFC /SCANONCE : hace un scan de los archivos del sistema la próxima vez que se inicie el ordenador
o SFC /REVERT : restablece la configuración inicial (para mayor información, escribe SFC /? en la consola CMD.
martes, 26 de junio de 2007
Como limitar el ancho de banda en una red y no morir en el intento
Un problema muy común en los cibers o en las redes caseras es que si una de las maquinas utiliza el total de la conexion para subir o descargar, en las demás maquinas de la red se hace imposible utilizar internet.
Yo trabajo en un ciber y tenía este problema, de vez en cuando algún cliente se ponía a bajar música con el Ares o algún programa similar y las demás maquinas no podían navegar así que me vi obligado a limitar la conexion de las maquinas, y las opciones que encontré eran poner una maquina con Linux para limitar mi conexion, cosa bastante complicada, ya que no creo que mucha gente pueda sacar una maquina de la galera por pequeños que sean los requerimientos necesarios, así que decidí probar los programas que recomendaban, el único que me convenció fue el Netlimiter, por que la conexion a Internet del ciber entra a un router que les reparte a todos las pc y la mayoría de los programas que hay no funcionan con este sistema.
Bueno, no mas charla y les paso a explicar como instalar y configurar este programita, yo utilicé el Netlimiter 2 profesional y todas las maquinas de la red tienen Windows XP profesional service pack 2, no se como funcionará con otro sistema, pero no creo que haya algún problema.
Instalar en las maquinas Clientes
Lo primero a hacer será crear un usuario nuevo, si no sabes como tenes que ir a "inicio/ejecutar" y escribir "control userpasswords2" sin las comillas. Una vez que tenemos nuestro nuevo usuario cerramos la sección actual y entramos con el usuario que acabamos de crear, ahora si procedemos a instalar el netlimiter, después de que termina la instalación nos da la opción de activar el firewall que viene con el programa, yo opte por desactivarlo ya que es muy molesto, ahora reiniciamos la maquina y nos va a aparecer un icono al lado de la hora le hacemos doble click y ya estamos en el programa.
Vamos a "ver/ herramientas/ editor de permisos" en la nueva ventana que nos aparece le ponemos la crucesita a todos los grupos menos al grupo invitado y al grupo del usuario que acabamos de crear, en mi caso el grupo administrador, abajo hacemos lo mismo bloqueamos a todos los usuarios menos al actual y al invitado, una vez que esta todo marcado como corresponde apretamos en guardar y volvemos a iniciar con el usuario de siempre que ahora al no tener permitido el acceso al netlimiter no tendrá el icono en la barra de tareas, evitando así que cualquier usuario pueda cerrar o modificar los limites que ponemos.
Instalar en el servidor
Instalamos el programita, como en el paso anterior nos preguntará si queremos activar el firewall, yo le puse que no por que tengo instalado otro, una vez que termine reiniciamos y entramos al programa, ahora tenes que ir a "ver/ herramientas/ administración remota"
En la ventana que nos aparece tenemos que ingresar los siguientes datos
Ordenador: el nombre o la ip de la maquina a la que queremos acceder, si no sabes la ip de una maquina ve a "inicio/ programas/ accesorios/ simbolo del sistema" y escribí "ipconfig" sin las comillas y te va a dar el numero ip de la maquina actual entre otras opciones.
Nombre de usuario: no pongas nada.
Dominio: pone el numero en caso de que tengas uno, sino no pongas nada.
Tiempo de actualización: Poné 1000 y marca el actualizar automaticamente.
Conectar al inicio: Marcalo si queres que cada vez que inicies el programa se conecte con la maquina que estas ingresando.
Nivel de detalle: Ponelo en alto si queres saber bien que anda pasando en cada maquina.
Encriptar datos: No es necesario pero marcalo si queres.
Ahora apretá en guardar, te va a aparecer abajo el estado de la maquina que acabas de configurar, selecionala y apretá en conectar.
En el panel principal te va a aparecer la maquina y todos los programas que está ejecutando en ese momento, así como la velocidad de carga y descarga de cada uno, si queres limitar alguno apretá encima de el numero que aparece al lado del programa e ingresa la velocidad que queres que tenga, luego apretá sobre el cuadrito de la izquierda para que el limite que ingresaste quede activo. También podes limitar el total de subida y bajada de la maquina de la misma forma. Ahora solo queda repetir el proceso con cada una de las maquinas de la red.
Espero que les sirva, si tienen dudas, algún comentario o cometí errores en mi explicación dejen un mensaje y trataré de solucionar el problema.
Yo trabajo en un ciber y tenía este problema, de vez en cuando algún cliente se ponía a bajar música con el Ares o algún programa similar y las demás maquinas no podían navegar así que me vi obligado a limitar la conexion de las maquinas, y las opciones que encontré eran poner una maquina con Linux para limitar mi conexion, cosa bastante complicada, ya que no creo que mucha gente pueda sacar una maquina de la galera por pequeños que sean los requerimientos necesarios, así que decidí probar los programas que recomendaban, el único que me convenció fue el Netlimiter, por que la conexion a Internet del ciber entra a un router que les reparte a todos las pc y la mayoría de los programas que hay no funcionan con este sistema.
Bueno, no mas charla y les paso a explicar como instalar y configurar este programita, yo utilicé el Netlimiter 2 profesional y todas las maquinas de la red tienen Windows XP profesional service pack 2, no se como funcionará con otro sistema, pero no creo que haya algún problema.
Instalar en las maquinas Clientes
Lo primero a hacer será crear un usuario nuevo, si no sabes como tenes que ir a "inicio/ejecutar" y escribir "control userpasswords2" sin las comillas. Una vez que tenemos nuestro nuevo usuario cerramos la sección actual y entramos con el usuario que acabamos de crear, ahora si procedemos a instalar el netlimiter, después de que termina la instalación nos da la opción de activar el firewall que viene con el programa, yo opte por desactivarlo ya que es muy molesto, ahora reiniciamos la maquina y nos va a aparecer un icono al lado de la hora le hacemos doble click y ya estamos en el programa.
Instalar en el servidor
Instalamos el programita, como en el paso anterior nos preguntará si queremos activar el firewall, yo le puse que no por que tengo instalado otro, una vez que termine reiniciamos y entramos al programa, ahora tenes que ir a "ver/ herramientas/ administración remota"
Ordenador: el nombre o la ip de la maquina a la que queremos acceder, si no sabes la ip de una maquina ve a "inicio/ programas/ accesorios/ simbolo del sistema" y escribí "ipconfig" sin las comillas y te va a dar el numero ip de la maquina actual entre otras opciones.
Nombre de usuario: no pongas nada.
Dominio: pone el numero en caso de que tengas uno, sino no pongas nada.
Tiempo de actualización: Poné 1000 y marca el actualizar automaticamente.
Conectar al inicio: Marcalo si queres que cada vez que inicies el programa se conecte con la maquina que estas ingresando.
Nivel de detalle: Ponelo en alto si queres saber bien que anda pasando en cada maquina.
Encriptar datos: No es necesario pero marcalo si queres.
Ahora apretá en guardar, te va a aparecer abajo el estado de la maquina que acabas de configurar, selecionala y apretá en conectar.
Espero que les sirva, si tienen dudas, algún comentario o cometí errores en mi explicación dejen un mensaje y trataré de solucionar el problema.
jueves, 3 de mayo de 2007
AMD vs Intel (prueba extrema)
La magia del Photoshop
Observa lo simple que es retocar una fotografía para lograr una belleza virtual.
Después de ver estos videos vas a mirar con mas cuidado las fotos de las revistas.
Click aqui para probar juego
Después de ver estos videos vas a mirar con mas cuidado las fotos de las revistas.
Click aqui para probar juego
Windows Vista Aero vs Linux Ubuntu Beryl
Una demostracion de los dos sistemas del momento, uds deciden cual es el mejor.
Click aqui para probar juego
Click aqui para probar juego
Suscribirse a:
Entradas (Atom)



