Coloreando la salida del compilador de mono
18 enero 2008
Para los que preferimos la línea de comandos también hay ayudas visuales.Entre los warning y mensajes que lanza el compilador mcs de mono es posible resaltar las líneas de error. Sólo hay que establecer la variable de entorno MCS_COLORS
Por ejemplo export MCS_COLORS=errors=brightwhite,red mostraría este resultado tan chillón

Fuente: Blog de Miguel de Icaza
ds18x20 con Arduino (midiendo la temperatura)
5 octubre 2007
Desde hace tiempo tengo conectado un arduino a mi mini-itx
Por ahora solo monitorizo la temperatura de la cpu, disco duro, fuente de alimentación y exterior. Como sensores uso ds18x20 de Maxim (Gracias maxim por esos excelentes samples)
Arduino busca los sensores que hay en su red filtra los que son del tipo sensor de temperatura y les pide su valor. Dado que cada uno de ellos tiene un id interno único, es posible identificarlos. Posterioremente se envía el id del sensor y la temperatura leida por el puerto serie.
En el pc hay un programa c# (mono) que lee el puerto serie, traduce el id a un nombre dado y añade la fecha y hora de la lectura.
El código fuente de arduino:
#include
/* OneWire en Arduino
Descargamos el código fuente de aquí */
/* DS18S20 Temperature chip i/o */
OneWire ds(10); // on pin 10
void setup(void) {
Serial.begin(57600);
}
void loop(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];
if ( !ds.search(addr)) {
ds.reset_search();
return;
}
Serial.print("R");
for( i = 0; i < 8; i++) {
Serial.print("-");
if(addr[i]<16)
Serial.print(0);
Serial.print(addr[i], HEX);
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}
if ( addr[0] != 0x10) {
Serial.print("Device is not a DS18S20 family device.\n");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
int HighByte=data[0];
int LowByte=data[1];
// Teniendo LowByte y HighByte
int TReading = (HighByte << 8) + LowByte;
int SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
int Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
int Whole = Tc_100 / 100; // separate off the whole and fractional portions
int Fract = Tc_100 % 100;
Serial.print(":");
Serial.print(HighByte/2);
Serial.print(".");
Serial.print(LowByte/2);
Serial.print(":");
Serial.print(TReading);
Serial.println();
}
Fuentes: Arduino playground, foros de arduino y phanderson
Actualizacion 4-Noviembre-2011: Para temas actualizados de arduino visitar el cacharreo y e-interiores. Por ejemplo “leyendo temperaturas con mayor precision
ds18×20 con Arduino (midiendo la temperatura)
5 octubre 2007
Desde hace tiempo tengo conectado un arduino a mi mini-itx
Por ahora solo monitorizo la temperatura de la cpu, disco duro, fuente de alimentación y exterior. Como sensores uso ds18x20 de Maxim (Gracias maxim por esos excelentes samples)
Arduino busca los sensores que hay en su red filtra los que son del tipo sensor de temperatura y les pide su valor. Dado que cada uno de ellos tiene un id interno único, es posible identificarlos. Posterioremente se envía el id del sensor y la temperatura leida por el puerto serie.
En el pc hay un programa c# (mono) que lee el puerto serie, traduce el id a un nombre dado y añade la fecha y hora de la lectura.
El código fuente de arduino:
#include
/* OneWire en Arduino
Descargamos el código fuente de aquí */
/* DS18S20 Temperature chip i/o */
OneWire ds(10); // on pin 10
void setup(void) {
Serial.begin(57600);
}
void loop(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];
if ( !ds.search(addr)) {
ds.reset_search();
return;
}
Serial.print("R");
for( i = 0; i < 8; i++) {
Serial.print("-");
if(addr[i]<16)
Serial.print(0);
Serial.print(addr[i], HEX);
}
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.print("CRC is not valid!\n");
return;
}
if ( addr[0] != 0x10) {
Serial.print("Device is not a DS18S20 family device.\n");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}
int HighByte=data[0];
int LowByte=data[1];
// Teniendo LowByte y HighByte
int TReading = (HighByte << 8) + LowByte;
int SignBit = TReading & 0x8000; // test most sig bit
if (SignBit) // negative
{
TReading = (TReading ^ 0xffff) + 1; // 2's comp
}
int Tc_100 = (6 * TReading) + TReading / 4; // multiply by (100 * 0.0625) or 6.25
int Whole = Tc_100 / 100; // separate off the whole and fractional portions
int Fract = Tc_100 % 100;
Serial.print(":");
Serial.print(HighByte/2);
Serial.print(".");
Serial.print(LowByte/2);
Serial.print(":");
Serial.print(TReading);
Serial.println();
}
Fuentes: Arduino playground, foros de arduino y phanderson
Microsoft publicará el código fuente de .net
4 octubre 2007
Me acabo de llevar una sorpresa al leer en el blog de Miguel de Icaza (impulsor y responsable del desarrollo de Mono) que Microsoft va a hacer público el código fuente de las librerías base de .Net. Lo hará con su versión 3.5 del framework, que saldrá a finales de 2008.
En el post destacan las ventajas de poder depurar dentro de las librerías base. ¿que ganamos con saber porque falla un comboBox al hacer el binding de determianda forma?
Supongo que ganaremos cuando alquien lo depure y arregle los errores.
¿Hundirá esto al proyecto Mono?
Servidor svn en ubuntu
15 mayo 2007
Llevo tiempo trasteando con mono y como control de versiones uso un simple y vulgar tar con la fecha en el nombre.
El otro día di con una web muy interesante repleta de recetas sencillas y muy útiles. Una de las recetas explicaba como montar un servidor de subversion.
Empezamos por instalar los paquetes necesarios:sudo apt-get install apache2 subversion subversion-tools libapache2-svn
Ahora creamos la estructura de directorios y creamos desde svn la estructura:http://www.google.es/search?q=module-assistant+ipw3945&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:official&client=firefox-a
sudo mkdir -p /var/lib/svn/libros
sudo svnadmin create /var/lib/svn/libros/
sudo svn mkdir /var/lib/svn/libros/trunk -m "Trunk"
sudo svn mkdir /var/lib/svn/libros/tags -m "Tags"
sudo svn mkdir /var/lib/svn/libros/branches -m "Branches"
Ahora nos queda configurar el enlace del módulo de svn con apache editando:sudo vi /etc/apache2/mods-available/dav_svn.conf
DAV svn
SVNParentPath /var/lib/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
Rearrancamos apachesudo /etc/init.d/apache2 restart
y ya deberíamos de poder acceder desde http://127.0.0.1/svn
El propietario de los ficheros debe ser apache pues es quien los gestionará:sudo chown -R www-data.www-data /var/lib/svn
Para crear un usuario de svnsudo htpasswd2 -c /etc/apache2/dav_svn.passwd usuario
Más detalles
Edicion de video en linux
28 noviembre 2006
MOMA: Analizador de migracion a Mono
27 noviembre 2006
Leo en el blog de Miguel de Icaza sobre una nueva herramienta fruto de la comunidad mono que permite determinar la facilidad con la que podríamos portar nuestra aplicación .NET a Mono.
La herramienta se llama Moma y a partir de un ejecutable .net nos dirá los métodos que aún no esta portados a mono lo que nos da una visión globar de trabajo o de la posibilidad de migrar nuestra aplicacion a mono.
Simplemente utilísimo
MOMA: Analizador de migracion a Mono
27 noviembre 2006
Leo en el blog de Miguel de Icaza sobre una nueva herramienta fruto de la comunidad mono que permite determinar la facilidad con la que podríamos portar nuestra aplicación .NET a Mono.
La herramienta se llama Moma y a partir de un ejecutable .net nos dirá los métodos que aún no esta portados a mono lo que nos da una visión globar de trabajo o de la posibilidad de migrar nuestra aplicacion a mono.
Simplemente utilísimo
Mono para el nokia 770 os 2006
17 noviembre 2006
Nos cuenta Miguel de Icaza en su blog que ya esta disponible mono para el os 2006 en el nokia 770.
PAra el que no lo sepa Mono es una entorno de desarrollo multiplataforma compatible con .net de Microsoft.
Permite un desarrollo rápido y a alto nivel de aplicaciones de tipo consola, de tipo formulario y de aplicacione web.
Cada vez tengo más claro cual será mi nuevo pda