javivf’s blog

Julio 21, 2008

Actualizando pfSense 1.2

Archivado en: BSD, seguridad, software — Etiquetas: — javivf @ 11:46 am

El antes

pfsense12

El despues

pfsense121-testing

¿Problemas? Pues alguno, nada mas reiniciar el kernel me escupia el error siguiente :

acpi_tz0: _TMP value is absurd, ignored  (255.5C)

Y por lo que parece si es un valor bastante absurdo ;)

sysctl hw.acpi.thermal | grep temperature

hw.acpi.thermal.tz0.temperature: -273.2C

¿Solucion temporal? Reiniciar y seleccionar el deshabilitar el acpi. Por otro lado esta el tema de los paquetes. Yo solo usaba ntop, darkstat y bandwidthd, de estos tres solo se han podido reinstalar darkstat y bandwidthd y de estos 2 solo ha funcionado a la primera darkstat. Bueno, como ya se sabe es una TESTING y ya habian avisado de estas cositas

PD: Como buena noticia, no he tenido que usar el cd de instalacion que habia preparado :D

Julio 18, 2008

Paron programado para hoy!

Archivado en: blog, fpc/lazarus, personal — javivf @ 7:46 am

A partir de las 18:30 (UTC +2) se va a hacer una sustitucion importante en el sistema que nos obliga a estar offline un par de horas…

boredsysadmin

Saludos !

Julio 15, 2008

Aprende a programar con FreePascal

Archivado en: fpc/lazarus, programacion — Etiquetas:, — javivf @ 6:39 pm

Pablo Augusto Sznajdleder es el autor del blog HolaMundo.pascal (online) y este blog es un curso de programacion con FreePascal. Va del nivel basico al avanzado tratando los siguientes contenidos :

1.- Introducción

  • Definición de Algoritmo
  • Estructuras de Control
  • Variables y Tipos de Datos
  • Comenzando a Programar
  • Codificación
  • Operadores Lógicos
  • Contadores y Acumuladores
  • Nomencatura

2 .- Operadores

  • Operadores Aritméticos
  • Máximos y Mínimos
  • Manejo de Strings (cadenas)

3.- Procedimientos y Funcinones

  • Procedimientos y Funciones
  • Pasaje de Parámetros
  • Tipos de Datos
  • Operadores Binarios

4 .- Corte de Control

  • Corte por 1 variable
  • Corte por 2 variables
  • Corte por n variables

5 .- Arrays

  • ArraysOperaciones sobre Arrays
  • Ordenamiento (burbuja)
  • Búsqueda Binaria
  • Matrices
  • Arrays Multidimensionales

6 .- Archivos

  • Definir Nuevos Tipos de Datos
  • Registros
  • Archivos
  • Acceso Directo a Registros
  • Ordenamiento de Archivos
  • Indexar Archivos
  • Apareo de Archivos

7 .- Estructuras Dinámicas

  • Estructuras de Datos Dinámicas
  • Punteros y Alocación de Memoria
  • Listas Enlazadas
  • Operaciones sobre Listas
  • Indexar Archivos con Listas
  • Pila o “FIFO”
  • Operaciones Pilas
  • Cola o “LIFO”
  • Operaciones sobre Colas

8 .- Arboles y Recursividad

  • Definición de Recursividad
  • Ejemplos de Uso
  • Arboles
  • Arbol Binario de Búsqueda
  • Recorridos (in,pre,post)

9 .- Teoría de Objetos

  • Análisis de Objetos
  • Clases y Objetos
  • El Constructor
  • Variables de Instancia
  • Métodos de Acceso
  • Sobrecarga
  • Encapsulamiento de Estructuras
  • Clase Pila (s/Array)
  • Clase Pila (s/Lista)
  • Clase ListaOrdenada

Como podeis ver un recurso muy util :) Gracias Pablo por tu tiempo!

Julio 8, 2008

Video evolucion de FreePascal con code_swarm

Archivado en: fpc/lazarus, programacion, software — Etiquetas:, — javivf @ 12:01 am

Siguiendo con la saga… ;)

PD: No esta todo el desarrollo, solo desde que se usa svn para el proyecto, a mediados del 2005…

Julio 7, 2008

Video evolucion de Lazarus con code_swarm

Archivado en: fpc/lazarus, programacion, software — Etiquetas:, — javivf @ 2:48 pm

Me enteré via /. de la existencia de code_swarm y la verdad es que me dejó sorprendido.

Para quien no sepa que es podeis visitar la pagina del proyecto, en la que aparecen varios ejemplos, o la web del autor ( Michael Ogawa )

Sin mas dilacion el video sin audio ( no soy tan manitas con los temas multimedia ;)) :

PD: va un poco rapido pero es que hay que resumir mas de 8 años de desarrollo ;)

Julio 4, 2008

Lazarus, MS Access y uso de imagenes (Bitmap)

Archivado en: fpc/lazarus — Etiquetas:, , , , — javivf @ 7:00 pm

MS Access guarda las imagenes en campos de tipo objeto OLE. La informacion que guarda es el stream del archivo .bmp con una cabecera que contiene la aplicacion con la que tiene que abrir el stream. El stream entero es inservible para trabajar directamente con freepascal/Lazarus asi que lo que viene a continuacion es una manera de usar ese objeto OLE para incrustarlo en un Dbf y poder trabajar mas agilmente en Lazarus.

A continuacion vamos a mostrar distintos contenidos de streams para entender que vamos haciendo.

Archivo BMP :

streambmp

Como se puede ver “BM” marca el inicio del stream.

Archivo BMP incrustado en un campo de tipo objeto OLE de MS Access :

streammdb

Aqui se puede observar la cabecera que comentabamos antes.

Archivo BMP incrutado en un campo de tipo BLOB en un Dbf :

streamdbf

Observamos que la cabecera se reduce en comparacion al objeto OLE.

Para conseguir nuestro objetivo lo primero que tenemos que hacer es determinar la posicion del “BM” para poder extraer la informacion que nos interesa, para este fin usamos la siguiente funcion:

function buscaPosicionBM(STmp : TStream) : Integer;
var
i : Integer;
begin
STmp.Seek(0,0);
for i:=0 to 100 do
begin
if STmp.ReadByte = 66 then
if STmp.ReadByte = 77 then
buscaPosicionBM:=STmp.Position-2;
end;
end;

Y a continuacion toda la chicha, o sea, cargamos el objeto OLE en un stream, le quitamos la informacion innecesaria para nosotros y lo metemos en un campo blob de un Dbf.

procedure carga;
var
Stream, StreamClean : TStream;
FieldStr : String;
PFieldStr : PChar;
posicion : Integer;
begin

// Cargamos el objeto OLE al Stream
Stream := TMemoryStream.Create;
Stream := q.CreateBlobStream(q.FieldByName(’DIBUJO’), bmRead);

// Conseguimos la posicion del “BM”
posicion :=buscaPosicionBM(Stream);

// Creamos el stream para añadir despues al Dbf
StreamClean := TMemoryStream.Create;

// Añadimos la cabecera para el Dbf
StreamClean.WriteByte(3);
StreamClean.WriteByte(0);
StreamClean.WriteByte(0);
StreamClean.WriteByte(0);
StreamClean.WriteByte(98);
StreamClean.WriteByte(109);
StreamClean.WriteByte(112);

// Nos posicionamos correctamente y copiamos la informacion necesaria
Stream.Seek(posicion, soFromBeginning);
StreamClean.Position:=7;
StreamClean.CopyFrom(Stream,Stream.Size - posicion);
StreamClean.Seek(0,0);
SetLength(FieldStr, StreamClean.Size);
PFieldStr := PChar(FieldStr);
StreamClean.Read(PFieldStr^, StreamClean.Size);

// Volcamos el Stream creado al Dbf
reportDbf.Append;
reportDbf.FieldByName(’Codigo’).Assign(q.FieldByName(’Codigo’));
reportDbf.FieldByName(’descripcion’).Assign(q.FieldByName(’descripcion’));
reportDbf.FieldByName(’dibujo’).Value := FieldStr;
reportDbf.Post;

// Liberamos recursos
Stream.Free;
archivoLog.Free;
end;

Comentar que q es un TSQLQuery de SQLdb, reportDbf es un TDbf y he usado el programa Hexplorer para ver los entresijos de los streams.

Si algo no ha quedado muy claro me dejais un comentario e intentare explicarme lo mejor que pueda O:)

Julio 1, 2008

Rodada en Alacarras

Archivado en: personal — Etiquetas: — javivf @ 1:40 pm

En el post anterior comento que solo pude ver la segunda parte de la final de la Eurocopa 2008, la razon fue por que bajamos tarde de Alcarras :D

video del evento

Si alguien quiere ver con que camara se realizo el video, o incluso conseguir una, podeis mirar en MadaraShop :)

Junio 30, 2008

La Eurocopa 2008 se viene a casa

Archivado en: efemerides — javivf @ 1:00 pm

Añoche España gano el campeonato, partido que solo pude ver la segunda parte ya que llegue tarde por razones ajenas al evento ;)

trix_si_flix2

Durante toda la Eurocopa cada partido que veia de España no acababa de creer el buen futbol realizado ( con pequeñas excepciones ) y al final sigo sin entender como se ha terciado todo pero me siento orgulloso de nuestra seleccion. Espero que todo esto no se quede aqui y que podamos seguir disfrutando los años venideros :)

Junio 20, 2008

Se acerca Lazarus 0.9.26

Archivado en: fpc/lazarus, software — Etiquetas:, — javivf @ 8:05 am

Lo comenta Vincent Snijders en el blog Lazarus Development.
Como resumen del articulo se puede decir que el pasado 13 de junio salio a la luz la primera release candidate de fpc 2.2.2 y que Lazarus 0.9.26 vendra despues de la salida de la version estable del compilador.

Empieza la expectación! ;)

Junio 12, 2008

miniTIP SVN Haciendo un mirror o migrando servidor

Archivado en: personal, programacion, shellscript — Etiquetas:, — javivf @ 5:03 am

Personalmente lo he usado para migrar todos los commits de un servidor a otro pero la herramienta svnsync esta pensada para sincronizar servidores subversion.

A continuacion las instrucciones ejecutadas en el nuevo servidor SVN.

cd /home/javivf/
mkdir svn
svnadmin create svn/

cat <<’EOF’ > svn/hooks/pre-revprop-change
#!/bin/sh
USER=”$3″
if [ "$USER" = "javivf" ]; then exit 0; fi
echo “Only the svnsync user can change revprops” >&2
exit 1
EOF

chmod +x svn/hooks/pre-revprop-change
svnsync initialize –username svnsync file:///home/javivf/svn svn+ssh://javivf@server.svn.donde.estaba/home/javivf/svn/

svnsync sync file:///home/javivf/svn

Tomado prestado de http://svn.collab.net/repos/svn/trunk/notes/svnsync.txt :)

Older Posts »

Gestionado con WordPress