Archivo

Archivo para la categoría ‘Programacion’

Proteger archivo .htaccess del exterior [.htaccess]

Jueves, 11 de agosto de 2011 Sin comentarios

Debemos de proteger el archivo .htaccess para evitar que cualquiera persona pueda ver su contenido y comprometer la seguridad de nuestra web al enterarse de muchas cosas como modificaciones de urls o cosas que podamos tener en el.


Para ellos solo basta con poner este codigo en tu .htaccess y ya no podran verlo desde el exterior.

# Proteger el archivo htaccess -- Mas info www.vicolinker.net

order allow,
deny
deny from all

# FIN Proteger el archivo htaccess



Si prefieres puedes descargar el archivo .htaccess y pones ese codigo en el .htaccess ya existente: Proteger archivo .htaccess del exterior (146)

Categories: .htaccess Tags: ,

Terminar de Cargar un Formulario antes de Seguir [VB.Net] (Windows Forms)

Viernes, 5 de agosto de 2011 Sin comentarios

En VB.NET al poner ordenes en el LOAD del formulario este las ejecuta antes de cargar el formulario completamente, si queremos ejecutar un SUB o una Funcion esta se ejecutara antes de que se pueda ver el formulario, esto es un problema en algunas ocaciones porque si tenemos una funcion que tarda en ejecutarse un poco no veremos el formulario hasta que termine.

Si queremos que se cargue completamente el formulario y luego siga con el SUB o Funciones que tengamos en el load solo tendremos que poner la siguiente linea en el load (o en una parte del SUB o funcion) y seguido de esto las funciones que tengamos.

Me.Show()



Quedandonos algo similar a esto:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Cargar primero el formulario y luego seguir
        Me.Show()

        mi_funcion()
        mi_sub()
    End Sub



Si queremos que antes de mostrar el formulario se ejecute una funcion (si es que es necesario) tan solo la ponemos antes del Me.Show() asi:

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        mi_funcion()

        'Cargar primero el formulario y luego seguir
        Me.Show()

        mi_sub()
    End Sub


Como Configurar Baudios de un Modulo Serial Bluetooth – Arduino/Amarino

Sábado, 2 de julio de 2011 11 comentarios
Modulo Bluetooth de bajo coste Master/Slave

 

Para poder usar el arduino con el movil sin cables necesitamos un modulo serial bluetooth, el cual debemos debemos de configurar a 115200 baudios para poder usarlo con el Amarino (o quizas otros baudios para otras aplicaciones).


En mi caso estoy usando un Modulo Serial bluetooth de bajo coste con Master/Slave (el de la iamgen de arriba) , por defecto el modulo me vino con 9600 baudios y para cambiarlo necesitamos conectarnos a este y enviarle unos parametros.


Como vemos en la imagen de arriba en el modulo tenemos 5 Pines (sin contar el State ni Key) que hacen lo siguiente:

1|State O
2|RXD  - Recepcion de Data
3|TXD  - Transmicion de Data
4|GND  - Tierra (o Negativo)
5|VCC  - Positivo ( 3.3 a 5 Voltios)
6|KEY O



Para poder conectarnos con el modulo para enviarle los parametros necesitaremos un conversor USB a TTL (o sino un RS232 a TTL ) que podemos fabricar nosotros mismos o comprarlo ya hecho como el de la imagen:

Conversor USB a TTL
En este conversor tengo los pines asi:

1|RST  - Reset
2|3V3  - Salida de 3.3V
3|5V    - Salida de 5V
4|TXD  - Salida de Data (Transmicion)
5|RXD  - Entrada de Data (Recepcion)
6|GND  - Salida de Tierra (o Negativo)


Ahora conectamos los pines de la siguiente manera:

Bluetooth |- -| Conversor
     RXD  |2 5| RXD
     TXD  |3 4| TXD
     GND  |4 6| GND
     VCC  |5 3| +5V


*Nota: en realidad el RXD deberia ir con el TXD y el TXD con el RXD pero nose porque en este caso solo me funciona poniendolos iguales, es algo raro pero quizas sea un problema de impresion del PCB, si no funciona de esta manera podemos invertirlos ;)



Una vez hechos los puentes conectamos el USB (o rs232) al ordenador y esperamos a que lo reconozca (o instalamos los drivers necesarios) y veremos que nos aparecera un nuevo puerto COM (en mi caso el COM6) asi:

COM6 - Administrador de Dispositivos

Ahora descargamos el Terminal v1.9b desde este link y lo ejecutamos:

Terminal (324)


Damos click a ReScan (para buscar los COM activos) y seleccionamos los datos por defecto que nos da el fabricante y damos click en Connect, en mi caso los datos son estos:

Baud Rate: 9600 (como dije antes)
Data bits: 8
Parity: N (None)
Stop bits: 1
Handshacking: None (No lo especifica mi fabricante pero lo dejamos en None)
Terminal Connect con COM6



En la parte inferior del programa veremos que dice +CR y si esta marcado lo desmarcamos y luego al lado veremos un Textbox (recuadro blanco) donde escribir y ponemos el comando AT :
Terminal Send Command



Si todo a ido bien veremos en le cuadro de arriba (RECIVE) que nos dira OK si no recibimos esto podemos probar cambiando de posicion el TXD y RXD para que este cruzados (TXD a RXD y RXD a TXD) y probamos enviando el mando AT nuevamente.
Terminal Recive



Suponiendo que ahora si vemos el OK ya podemos pasarle el comando completo para poner los baudios que queremos, escribimos el comando de la siguiente lista segun los baudios que vamos a ponerle:

AT+BAUD1---------1200 Baudios
AT+BAUD2---------2400 Baudios
AT+BAUD3---------4800 Baudios
AT+BAUD4---------9600 Baudios
AT+BAUD5---------19200 Baudios
AT+BAUD6---------38400 Baudios
AT+BAUD7---------57600 Baudios
AT+BAUD8---------115200 Baudios
AT+BAUD9---------230400 Baudios
AT+BAUDA---------460800 Baudios
AT+BAUDB---------921600 Baudios
AT+BAUDC---------1382400 Baudios


En mi caso quiero poner el modulo a 115200 Baudios asi que escribo:

AT+BAUD8
Terminal Send Command



Esperamos la respuesta que deberia ser de esta forma OK#Baudios , asi:

OK115200
Terminal Recive


Si recibimos eso ya tendremos configurado el modulo a 115200 Baudios.



Nota: Si quieremos volver a cambiarlos despues de recibir el OK#baudios debemos darle a Disconnect y luego seleccionar en BaudRate los que configuramos previamente y repetir nuevamente los pasos.

 

Categories: Arduino Tags: , , , , , ,

¿Que es el ICSP? – Arduino

Sábado, 11 de junio de 2011 4 comentarios
Arduino ICSP - Salidas (PinOut)



En la placas arduino se ven 6 pines que pone ICSP ( In Circuit Serial Programming) que sirve para programar el BootLoader del Microcontrolador ATmega y asi poder cargar los programas que creemos en el IDE directamente en el microcontrolador sin tener que necesitar Programadores externos (como se ve en la imagen de mas abajo).



Sin el Bootloader el ATmega no servira de nada, por eso es necesario ponerselo para que pueda interpretar tus programas, recibir y enviar datos por los diferentes puertos o generar señales de control y sobre todo hace que sea posible la comunicacion USB.


Los pines son los siguientes: (visto desde arriba)

MISO  |1 2| +5V
SCK   |3 4| MOSI
RST   |5 6| GND

Arduino ICSP Programming - USB Model
Categories: Arduino Tags: ,

Introduccion a Arduino – La Plataforma de Hardware Libre

Viernes, 10 de junio de 2011 Sin comentarios

Hoy dia 10 de Junio del 2011 di una charla introductoria sobre arduino en @Ciball ,  estas son las diapositivas de la presentacion.

Como usar Max, Min, Sum, Avg, Count en un DataSet [VB.Net]

Sábado, 30 de abril de 2011 2 comentarios

En SQL para mostrar el numero maximo de una columna (en este caso el sueldo) lo que hacemos es poner una consulta similar a esta:

select Max(sueldo) from empleados;


y para el minimo(Min), suma(Sum), media(Avg) y el total de registros(count):

--Sueldo minimo
select Minx(sueldo) from empleados;

--Suma de todos los Sueldos
select Sum(sueldo) from empleados;

--Media de todos los sueldos
select Avg(sueldo) from empleados;

--El numero total de empleados
select Count(sueldo) from empleados;
--otra forma de hacer el Count
select Count(*) from empleados;



Para hacer la consulta en un DataSet tenemos que hacer utilizar Compute en vez de un Select de la siguiente forma:

Dataset.Tabla("nombre o numero").Compute("Lo_que_quieres(columna)", "filtro")


Quedandonos una consulta para buscar el maximo numero de IDAlumno asi:

maximo_id = DScolegio.Tables("alumnos").Compute("MAX(IDAlumno)", "")


Noten que no le estoy poniendo ningun filtro, pero si le quieren poner para que solo cuente de los que son de la clase numero 2 (NumClase=2) podria quedar asi:

maximo_id = DScolegio.Tables("alumnos").Compute("MAX(IDAlumno)", "NumClase=2")



En caso del Count podemos hacerlo de 3 formas distintas:


Primero con Compute: (ya que vimos el ejemplo anterior)

total_alumnos = DScolegio.Tables("alumnos").Compute("count(IDAlumno)", "")

'Tambien funciona de esta Forma:
total_alumnos = DScolegio.Tables("alumnos").Compute("count(*)", "")


Ahora con un Select y Count:

total_alumnos = DScolegio.Tables("alumnos").Select().Count

'Ahora con una Condicion:
total_alumnos = DScolegio.Tables("alumnos").Select("IDClase=2").Count


Por ultimo con un Select y Lenght :

total_alumnos = DScolegio.Tables("alumnos").Select().Length

'Ahora con una Condicion:
total_alumnos = DScolegio.Tables("alumnos").Select("IDClase=2").Length


Crear/agregar una nueva fila en un DataSet [VB.Net]

Viernes, 29 de abril de 2011 4 comentarios

Para crear/agregar una nueva fila en una tabla del DataSet hay que agregar el siguiente codigo :


Mi DataSet se llama: DSColegio
La tabla del DataSet donde crearemos la nueva fila es: alumnos


Los txtxxxxxxxx.text son los TextBox donde tengo metidos los datos del nuevo alumno, aqui deberan poner los datos que quieran insertar ya sea pasandoselos por variable o como hago yo cogiendo lo que tenga metido en el TextBox.


Tambien debemos pasarle los nombre de las columnas de la tabla de la siguiente forma fila(“xxxxxx”) o sino con el numero de la columna de esta forma fila(0) , fila(1) , etc .


'Declarar Filas como DataRow
        Dim fila As Data.DataRow

        'Asignamos a fila la nueva Row(Fila)del Dataset
        fila = Me.DScolegio.Tables("alumnos").NewRow

        'Agregamos los valores a los campos de la tabla
        fila("IDAlumno") = Me.txtidalumno.Text
        fila("IDClase") = Me.txtidclase.Text
        fila("Nombre") = Me.txtnombre.Text
        fila("PrimerApellido") = Me.txtprimerapellido.Text
        fila("SegundoApellido") = Me.Txtsegundoapellido.Text
        fila("DNI") = Me.txtdni.Text
        fila("FechaNacimiento") = Me.Txtnacimiento.Text
        fila("Direccion") = Me.TxtDireccion.Text
        fila("Telefono") = Me.txttelefono.Text
        fila("email") = Me.txtemail.Text

        'Agregamos la fila que acabamos de crear a nuestra tabla del DataSet
        Me.DScolegio.Tables("alumnos").Rows.Add(fila)