Transparencias del seminario “Introducción a Python” (20/11/2008)

Tras una larga espera … las transparencias del seminario de formación “Introducción a Python” impartido en el Aula B5 de la ETSIAp el 20 de Noviembre de 2008 en el marco de los Seminarios de Formación de PolinuX.

Cualquier pregunta, duda, crítica, felicitación … poned comentario

Disfrutadlo.


Licencia de la presentación

Usted es libre de:
Copiar, distribuir y comunicar públicamente la obra
hacer obras derivadas
Bajo las condiciones siguientes:
Reconocimiento: Debe reconocer los créditos de la obra de la
manera especificada por el autor o el licenciador de la misma,
además, le deberá comunicar al autor el uso de su obra
No comercial: No puede utilizar esta obra para fines comerciales
Compartir bajo la misma licencia: Si altera o transforma esta obra,
o genera una obra derivada, sólo puede distribuir la obra
generada bajo una licencia idéntica a esta
Al reutilizar o distribuir la obra, tiene que dejara bien claro los
términos de la licencia de esta obra.


Transparencias del seminario de formación “Descubriendo SQLite3” (23/04/2009)

Aquí os dejo las transparencias utilizadas en el seminario de formación “Descubriendo SQLite3” que impartí el pasado 23 de Abril de 2009.


Licencia de la presentación

Usted es libre de:
Copiar, distribuir y comunicar públicamente la obra
hacer obras derivadas
Bajo las condiciones siguientes:
Reconocimiento: Debe reconocer los créditos de la obra de la
manera especificada por el autor o el licenciador de la misma,
además, le deberá comunicar al autor el uso de su obra
No comercial: No puede utilizar esta obra para fines comerciales
Compartir bajo la misma licencia: Si altera o transforma esta obra,
o genera una obra derivada, sólo puede distribuir la obra
generada bajo una licencia idéntica a esta
Al reutilizar o distribuir la obra, tiene que dejara bien claro los
términos de la licencia de esta obra.


SQLite3

View more presentations from andreums.

Espero dudas, comentarios, quejas, sugerencias …

Saludos
pd: Tengo vídeo del seminario que en cuanto haya un hueco grande (verano) lo montaré y lo subiré a youtube.

Transparencias de la charla de LaTeX (18/12/2008)

Por petición popular, aquí tenéis las transparencias de mi charla de LaTeX del día 18 de Diciembre de 2008 perteneciente a la serie “Seminarios de Formación Específica de PolinuX” en el aula B.5 de la ETSIAp.


Licencia de la presentación

Usted es libre de:
Copiar, distribuir y comunicar públicamente la obra
hacer obras derivadas
Bajo las condiciones siguientes:
Reconocimiento: Debe reconocer los créditos de la obra de la
manera especificada por el autor o el licenciador de la misma,
además, le deberá comunicar al autor el uso de su obra
No comercial: No puede utilizar esta obra para fines comerciales
Compartir bajo la misma licencia: Si altera o transforma esta obra,
o genera una obra derivada, sólo puede distribuir la obra
generada bajo una licencia idéntica a esta
Al reutilizar o distribuir la obra, tiene que dejara bien claro los
términos de la licencia de esta obra


Introducción a LaTeX

View more presentations from andreums.
Espero vuestros comentarios, críticas, sugerencias …
Saludos

Threads en C# y Windows Forms (.net 2.0)

Hace unos días que estoy trasteando con C#, y hace un rato, me dije; ¿cómo funcionarán los threads en C#?

Bien, pues me puse a investigar, y comencé a programar. Los threads en consola muy bonitos, y sencillos – como los pthreads (“Posix Threads”) – , el caso, es que quería aplicar esto a una aplicación gráfica, y me topé con el impedimento, que desde un nuevo thread que crease el programa principal (función main), no podía modificar valores de los widgets (controles), así que decidí investigar sobre el tema…

Encontré una solución, que era que cada función (o método, si está dentro de una clase)  que quisiese modificar el valor de algún widget, fuera declarada con un “delegate”, y esta función, se ejecutaría en el trhead principal de la interfaz gráfica, que sería quien modificaría el valor del widget (y no el thread recién creado, modifica el widget). Así que tenía que hacer, que la función del trhead recién creado, llamase a esa función “delegada”, y ella ya modificase el widget correspondiente (esto se realiza con Invoke ).

Captura del programa demo

En resumen:

1. Crear hilo

2. Iniciar hilo

3. Ese “hilo” llama a la función delegada

4. La función delegada realiza cualquier cosa sobre el

widget

5. Retorna el control al hilo llamante

En código C#

/* declaración del thread th1 */
private Thread th1 = null;
/* declaración de funciones delegadas */
public delegate void Thread1Delegate();
/* creamos e iniciamos el thread th1 */
th1 = new Thread(new ThreadStart(Thread1));
th1.IsBackground = true;
th1Running = true;
th1.Start();


private void Thread1() {
/* función del hilo 1 */
while (true) {
/* invocamos la función delegada
* para que haga algo con un widget */
Invoke(new Thread1Delegate(Thread1Widget));
/* dormimos el thread 1 1sec */
Thread.Sleep(1000);  }
}

private void Thread1Widget() {
/* Hace algo con algún widget */
this.algun_widget.Propiedad = "Valor";
}

He adjuntado un rar con un proyecto de C# para Visual Studio 2005 (y para SharpDevelop) que muestra una ventana principal con dos textboxes que son controlados por hilos (que escriben en cada uno de ellos).

Ficheros adjuntos

Nou bloc!

Gràcies al programa “Jóvenes en Red” del Ministerio de Industria Ciencia y Turismo tinc aquest nou bloc, situat a , i també la meva xiquitina té el seu blog esperant-li que escriga algo 🙂

A partir d’ara, escriuré x aquí …

Salutacions

Script para bajar vídeos de BahnTV

Este script de bash sirve para bajar vídeos de la BahnTV http://www.bahntv-online.de/

funciona de la forma ./script.sh url_con_los_& escapados si no se escapan los & como \& no funciona porque bash se cree que son dos ficheros diferentes.

En resumen:

– Este script baja vídeos wmv desde un servidor raro por protocolo mms, y luego una vez bajados los convierte a mpeg que es menos privativo.

Programas necesarios:

  • bash
  • wget
  • awk
  • tr
  • mimms (sudo apt-get install mimms)
  • ffmpeg (sudo apt-get install ffmpeg)

Si alguien le ve una utilidad o alguna mejora que lo diga;
Boas noites
Llegeix la resta d’aquesta entrada »

Anatomía de un mail de phising

Estoy harto (como vosotros) de recibir mais en los que bajo una afirmación informática correcta pero sin sentido se nos informa de que el banco %s (sí, aquí va el nombre de un banco o una caja de ahorros) que su servicio ‘informático’ ha detectado que nos hemos conectado al mismo %s desde IPs diferentes, algo lógico con las conexiones de hoy en día… Mejor será que leáis la tontería de mensaje que nos envían. A los informáticos nos parece una tontería, pero seguro que hay más de una persona que pica;

Estimado Cliente,

Según nuestros registros informáticos, hemos detectado recientemente que los accesos a su cuenta a través de Línea Abierta han sido realizados desde diferentes direcciones IP.

Esto seguramente se debe a que la dirección IP de su PC es dinámica y varía constantemente, o debido a que usted ha utilizado más de un PC para acceder a su cuenta.

Debido a este suceso y en cumplimiento con la legislación vigente, hemos actualizado nuestros sistemas informáticos para brindar una mayor seguridad a nuestros clientes, por lo cual necesitaremos que ingrese en su cuenta y efectúe una verificación de su actividad reciente. Los procedimientos de seguridad requieren que usted verifique la actividad en su cuenta antes del %date. De no ser así, transcurrida esta fecha, el sistema informático automatizado de %banco->ServiciOnline.GetNombre() suspenderá su cuenta indefinidamente.

Desde ya le agradecemos su cooperación en este aspecto.

Para ingresar a su cuenta a través de %banco->ServiciOnline.GetNombre() y verificar la actividad de la misma, debe hacer clic sobre el siguiente enlace:

Enlace eliminado para que ninguno sea tonto para picar;

Apreciamos su ayuda y compresión, pues trabajamos juntos para que “%banco->GetNombre()” sea cada día un lugar mas seguro para hacer negocios.

Departamento de Seguridad
“%banco->GetNombre()”

Por favor no responda a este correo electrónico, esto es un correo automatizado solo para notificaciones.

%banco->GetDireccion();

Todos los derechos reservados. “

En fin, estos mails falsos se detectan fácilmente porque nuestro amigo (el cliente de correo) -Mozilla Thunderbird en mi caso- nos avisa “Éste mail puede ser fraudulento” al igual que Gmail, el que no avisa creo que es Hotmail. Si el cliente de correo electrónico falla, podemos detectarlos fácilmente verificando la ortografía, gramática y vocabulario empleados en éste tipo de correos.

Analizando éste mensaje genérico que es el que me envían cada dos por tres, encontramos:

Esto seguramente se debe a que la dirección IP de su PC es dinámica y varía constantemente, o debido a que usted ha utilizado más de un PC para acceder a su cuenta.”

En España se suele gastar otra forma como “esto posiblemente sea porque %motivo, o porque %otro_motivo” “

para brindar una mayor seguridad a nuestros clientes, por lo cual necesitaremos que ingrese en su cuenta y efectúe una verificación de su actividad reciente.”

El brindar está en desuso en España, está claro que el mail lo escribió un latinoamericano, o un buen traductor de castellano que tradujo el inglés “Bring” por brindar, ya que aquí se gasta Ofrecer. Otra perla es ‘ingrese’ que aquí no se usa, sino introduzca o ponga (ya de modo coloquial). ¿Desde cuando ingresamos en el tren? Ingresar en el banco, ¿no es esa acción de poner dinero en una cuenta? … Todo mail de banco español en el que aparezca la palabra “ingresar” debería ser automáticamente rechazado o ignorado, pues sabemos que esa palabra sólo la utilizan al otro lado del océano. El necesitaremos es incorrecto, aquí se dice “necesitamos”, porque necesitaremos es una primera persona que en éste caso incluye al banco, y al propio usuario, ¿nos montamos una fiesta con los del banco cada vez que ingresamos por la puerta y nos brindan un sillón para la espera de la larga cola?

Los procedimientos de seguridad requieren que usted verifique la actividad en su cuenta”

¿Procedimientos? Yo creía que aquí se gastaba otra palabra, no obstante, es correcta, pero el “requieren” es una traducción directa del “require” inglés, hecha al otro lado del atlántico, y/o por un traductor de castellano, aquí se dice “necesitar” , el “usted” es otra muestra de texto escrito o traducido al castellano en geolecto latinoamericano, porque aquí no se suele poner “usted”, sino que se entiende por el contexto a quien va dirigida. Aquí diríamos “Las reglas de seguridad necesitan que {verifique/certifique} la …

“… suspenderá su cuenta indefinidamente”

¿Las cuentas suspenden convocatorias de examen? Esto es otra traducción directa de “suspend” o “block” inglés, incorrecta claro, porque en España se gasta “cerrar”/”cancelar” .

” Departamento de Seguridad
“%banco->GetNombre()”

¿Departamento de seguridad? ¿No quedamos en que era de informática? En fin, en los bancos, los departamentos de seguridad deben ser aquellos que se encargan de custodiar el dinero y estar apostados en las puertas por si se produce algún altercado -los vulgarmente llamados seguratas- .

Todos los derechos reservados. “

¿A caso el banco me va a cobrar un canon por copia privada de éste mail?

Desconfiad de todos los emails del banco, id físicamente allí, desconfiad de las llamadas con número oculto procedentes del banco; y si os necesitan que os lo pidan en las oficinas físicas. NUNCA abráis un enlace de un mail procedente de un banco u otro tipo de entidad sin antes haber consultado el código fuente del email, y/o que el enlace es correcto, éste es el punto más fuerte del phising, el ir redirigido a cierta página de los ‘phisingueros’ … que es un clon de la original, pero con otra funcionalidad diferente, susceptible a ser atacada mediante DDOS o SQL Injection, además, NUNCA llevan el certificado digital que exige el SSL y la conexión ‘segura’ HTTPS de Apache o IIS.

A pesar de los avances antiphising, y los de firma digital aún hay gente picando a todas horas. Este mail era el caso de uno que enviaron a todos los alumnos de la UJI que viene con asunto de “NOTIFICACION URGENTE”, sin ningún tipo de prioridad, es un mail html en el que solo varía el logotipo de la caja o banco, el enlace que lleva incorporado el corredo (que según su texto alternativo es el correcto de la entidad, y según el href es otro muy diferente) y el nombre de los servicios online de la misma, por lo que me temo que estamos detrás de algún generador de Phising automático, o un script que envía mails a toda una lista.

¿Creeis que como ciudadano moderno e informático debería denunciar el caso a las autorirades competentes (Brigada de Delitos Informáticos de la Guardia Civil) ?

Un análisis de las cabeceras y del html éste mail que nos han enviado:

Received: from plesk.inter.net.uk (2.83.5d45.static.theplanet.com
	[69.93.131.2]) by dns2.uji.es (Postfix) with ESMTP id 571351B0688
	for <unmaildelauji>; Fri,  9 Nov 2007 00:04:19 +0100 (CET)
Received: (qmail 1781 invoked by uid 10079); 8 Nov 2007 22:28:15 +0000
Received: from 127.0.0.1 by plesk.novatechnix.com (envelope-from
	<correoseguro@lacaixa.es>, uid 10039) with qmail-scanner-2.01st
	(perlscan: 2.01st.  Clear:RC:1(127.0.0.1):.
	Processed in 0.022914 secs); 08 Nov 2007 22:28:15 -0000"
Date: 8 Nov 2007 22:28:15 +0000

Ummm, postfix y dirección estática, vamos bien encaminados.

“Content-type: text/html; charset=iso-8859-1”

Bien, ISO-Latin-1  y cabecera html del mail correcta, pero

“<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1252″>”

esta cabecera meta se contradice, y probablemente indica que el mensaje fue escrito en un WindowsMe o inferior, pues el XP no gasta esa codificación de caracteres, además sabemos que Windows98 llevaba (creo) una versión ‘light’ del Frontpage (vaya mierda de editor web ‘güisigüig’ por cierto).

“<font color=”#000000″ size=”2″>”

¡Anda! aún no han descubierto el CSS, esto me pone más aún sobre la pista de que el Frontpage (o Hotmetal 4.0<) fueron los utilizados para generar el código html

“<a href=”https://portal.lacaixa.es/GPeticiones;WebLogicSession=BCkmX27QMyP61&#8243;;><table><tr><td><a href=”http://www.direccion_falsa.com&#8221;;><font size=”2″>https://portal.lacaixa.es/GPeticiones;WebLogicSession=BCkmX27QMyP61</font></td></tr></table></a>&#8221;

Una URL suele contener ‘;’ si está usando el servidor Tomcat o algo de Java, o parecido, pero la anidación de las etiquetas está hecha de forma para que los parsers ‘maluchos’ de html no detecten el error, y permitan hacer creer al mismo que la primera es la dirección correcta, mientras que cuando clickan sobre el enlace se abre la dirección falsa. Además, en éste mail han sido tan chapuceros como para evitar el atributo ‘alt’ y encima lo han puesto con font ¿CSS dónde andas? .

“</body></html> <div style=”visibility:hidden; color:white”>194b7a90da4afc00e952f9dd9055f475</div>”

¿Pero no habíamos quedado que el documento html terminaba ahí? ¿Por que hay un div fuera del documento?

El siguiente paso es hacer un whois para que nos aparezcan los datos del titular del dominio, y allá vamos (omitiré los datos por ser privados, y para no meterme yo en un lío)

“andreu@luar:~$ whois fragartists.com”

Salida omitida, pero comento que el titular aparece en alemania con correos de la república checa.  Haced vosotros el whois y comprobad a quien pertenece el dominio.

En fin, varias imágenes valen más que todo éste rollete;

falsaweb.png

¡Qué listo es mi firefox! (no traduzco el mensaje porque ya lo he explicado arriba)

falsomail.png
Lo que suelen contar éste tipo de mails …

Saludos

DVB-T (TDT) tirada con GNU-Linux (AverMedia DVB-T USB 2.0)

Hace unos días un familiar mío me prestó una capturadora DVB-T (TDT) USB para que le hiciese unas cuantas pruebas bajo GNU-Linux, Ubuntu 7.10 concretamente. Yo creía que no iba a funcionar – como casi todo el hardware – , pero me llevé una agradable sorpresa. Y es que tras conectarla, y preguntarle al amigo dmesg si sabía algo de ella, me respondió:



[ 8329.444000] usb 1-1: new high speed USB device using ehci_hcd and address 6[ 8329.584000] usb 1-1: configuration #1 chosen from 1 choice

[ 8329.928000] dvb-usb: found a 'AVerMedia AverTV DVB-T USB 2.0 (A800)' in cold state, will try to load a firmware

[ 8329.996000] dvb-usb: downloading firmware from file 'dvb-usb-avertv-a800-02.fw'

[ 8330.064000] usbcore: registered new interface driver dvb_usb_a800

[ 8330.064000] usb 1-1: USB disconnect, address 6

[ 8330.068000] dvb-usb: generic DVB-USB module successfully deinitialized and disconnected.

[ 8331.832000] usb 1-1: new high speed USB device using ehci_hcd and address 7

[ 8331.968000] usb 1-1: configuration #1 chosen from 1 choice

[ 8332.104000] dvb-usb: found a 'AVerMedia AverTV DVB-T USB 2.0 (A800)' in warm state.

[ 8332.104000] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.

[ 8332.104000] DVB: registering new adapter (AVerMedia AverTV DVB-T USB 2.0 (A800)).

[ 8332.512000] DVB: registering frontend 0 (DiBcom 3000MC/P)...

[ 8332.632000] input: IR-receiver inside an USB DVB receiver as /class/input/input8

[ 8332.632000] dvb-usb: schedule remote query interval to 150 msecs.

[ 8332.632000] dvb-usb: AVerMedia AverTV DVB-T USB 2.0 (A800) successfully initialized and connected.

Así que supe que se entendían bien. Debemos instalar todo lo que contenga dvb-* (dvb-utils , dvb-tune) … disponibles en los paquetes estándar de Ubuntu, en esos paquetes vienen los programas necesarios para que la capturadora sintonice canales. Navegando por Google un rato, encontré que un programa que servía muy bien de visor de tele era Kaffeine. Me lo instalé de la forma habitual (apt-get install kaffeine) , y me puse a ver que sintonizaba el cacharrito usb.

tnkaffeine.png

skaffeine.png

¡Encontraba canales! , me encontró 36 canales de televisión (algunos ilegales) y otras tantas emisoras de radio. Guardé la lista de canales, y me puse a ver alguno para probar. Pero … me dice el Kaffeine “Error de Xine; Xine no puede encontrar el plugin … para ver el stream” , así que hice un apt-cache search xine , e instalé todo lo que se llamaba xine y contenía también plugins. Reinicié el programa, y funcionó sin problemas. Kaffeine tiene EPG, selección de idiomas y otras cosas que yo no gasto. Sólo me falta saber como se pueden grabar streams de tv.

Nota: Es útil lanzar Kaffeine a través de la consola para ver la información de debug que suelta, porque es muy interesante para saber realmente lo que hace.

Un ejemplo de cuando sintoniza:



DVB SUB on HOGAR 10 page_id: 4 anc_id: 5 lang: spaFrontend closed

Using DVB device 0:0 "DiBcom 3000MC/P"

tuning DVB-T to 898000000 Hz

inv:2 bw:0 fecH:9 fecL:9 mod:6 tm:2 gi:4 hier:4

.. LOCKED.

Transponders: 63/63

Reading SDT: pid=17

ANTENA 3: sid=140

ANTENA.NEOX: sid=141

ANTENA.NOVA: sid=142

tvtv DIGITAL: sid=143

ONDA CERO: sid=144

EUROPA FM: sid=145

ONDA MELODIA: sid=146

HOGAR 10: sid=341

Reading PAT: pid=0

Reading PMT: pid=300

Reading PMT: pid=500

Reading PMT: pid=1000

Reading PMT: pid=7279

Reading PMT: pid=350

Reading PMT: pid=550

Reading PMT: pid=1050

Reading PMT: pid=1500

DVB SUB on HOGAR 10 page_id: 4 anc_id: 5 lang: spa

Eso significa que nuestra capturadora encuentra canales.

kaffeine324.png

El Kaffeine reproduciendo el 3/24 …

Aquí os dejo el fichero channels.dvb que contiene información de los canales que se reciben en l’Horta Nord.  Basta con copiarlo a la carpeta  $HOME/.kde/share/apps/kaffeine , o a la aplicación que vayáis a gastar para ver la TDT, yo personalmente con Kaffeine me llevo muy bien, aunque no me guste el (K)kde 😀

En fin, espero que os haya sido útil ésta guía, y cuando os compréis una tarjetita dvb-t, mirad hacia éste modelo, que funciona plenamente con GNU-Linux.

saludos

[PHPActivitats] Codi font (LGPL)

Codi font de PHPActivitats, gastat per la web d’informació de la Setmana de Benvinguda 2007 de l’UJI.
Aparentment funciona correctament, però de segur que casca algún cop. Si troveu algún bug, o per dubtes, suggerències… si amplieu o feu servir el meu codi, notifiqueume-lo. Gràcies

Codi llicenciat sota llicència LPGL.
Més informació:

INFORMACIÓ DE PHPACTIVITATSTots els codis excepte els de la carpeta JavaScript i l’script de Tagger
copyright (c) Andrés Ignacio Martínez Soto 2007.
Codis font lliures sota llicència LGPL.Howto fer-lo còrrer en localhost:
1. Introduir les dades de la base de dades del fitxer database.sql
‘ mysql -u loquesea -p …
CREATE DATABASE PHPSetmana;

mysql -u loquesea -p PHPSetmana < database.sql

2. Configurar les opcions de l’aplicació en la taula OpcionsSetmana.

3. Verificar el nom d’usuari i contrasenya al fitxer config.php

4. Copiar tot a un directori creat des de /var/www , o el vostre root d’Apache.

5. A funcionar…

Per qualsevol dubte, contacteu per correu electrònic amb andresmartinezsoto en gmail.com .

Salutacions

Andrés Ignacio Martínez Soto 2007

Descàrregues AQUÍ

Important:

–Usuari=root ; Contrasenya=root  …

Per defecte, canvieu-la.

Una captureta de com funciona:

Salutacions

Source code para las pruebas de PyAIML

Ya que Emilio me lo ha pedido, AQUÍ tenéis el código del robotito con todo lo necesario para que corra.

Y el contenido del README…

Estos ficheros son experimentales, NO hay ninguna garantía de que funcionen.
NO me hago responsable de nada que pase en tu ordenador cuando pruebes éste programa. USALO bajo tu cuenta y riesgo.

Ficheros incluidos:

aiml_test.py -> Script Python para probar el PyAIML
load_brain.py ->Script Python que crea el cerebro estándar
robotito.py -> Script Python del robot…
standard-aiml.tar.gz -> Set de inteligencia estándar (LICENCIA ALICE AIML)
std-startup.xml -> Para que cargue la inteligencia estándar

Haced lo que queráis con mis sources, son de dominio público…