Inicio

Windows ERROR: completament en blanc

Acabo de perdre més de 4h intentant arreglar un problema amb un coi de WinXP. El tema era força complicat de saber perquè no funcionava ja que com sempre el windows ens ajuda “moltíssim” a saber perquè alguna cosa no va, en aquest ocasió al arrencar el PC sortia la tícpica pantalla de “Bienvenido” i aquest dialog:

no-error-message.png

He fet de tot amb el windows commandar (ERD) amb el safe mode etc, però finalment el problema és que aquesta misteriosa finestra el que em volia dir és que no s’havia activat la còpia de windows. Com ho he sabut? doncs el que he fet és amb el ERD he restaurat la còpia més antiga de windows que tenia el registre de punts de retorn de windows. Al arrancar després de recuperar això ja he vist l’error que em deia si volia activar la còpia de windows. Després he tornat a restaurar la última còpia des de l’últim punt de retorn possible he arrancat en safe mode he activat la còpia i llestos, per aquesta tonteria tot el matí a prendre pel sac.

TheOS

theos.gifAbans d’ahir vaig anar a una empresa i es va complir de nou la dita: no te acostarás si saber dos o tres cosas más. Em vaig trobar un sistema operatiu que mai havia sentit a parlar d’ell. El servidor de l’empresa era un PII a 266MHz amb 128Mb de RAM… si si! sona a ciència ficció,eh! i el més sorprenent és que els anava ràpid. El fotut va ser al intentar accedir el sistema operatiu que vaig veure que era un TheOS 4.2. Un enjendro de sistema operatiu basat en consola, amb un joc de comandes propi i molt reduit i amb un entorn de tot menys amigable. Fer un ls, filelist en aquest sistema, era tota una experiència religiosa… podies morir en l’intentent. Si vols saber totes les comandes que té el sistema fas un help i et surt un menú de la vella escola on surten totes les comandes a en forma de llista i si prems sobre d’una et fa una explicació de tot el que fa. La sintaxis tot un experiment.

Realment una reliquia feta sistema operatiu, però el millor del cas és que quan et connectes a la pàgina web resulta que és un sistema operatiu viu, malgrat es va començar a desenvolupar a princpis dels 70 i va ser portat a l’arquitectura x86 a mitjans dels 80. Pel que he pogut veure no suporta multitasca ni cap cosa massa avançada. Però té un sistema de fitxers propi, compiladors de C, fortran i fins hi tot 4GL. Suporta TCP/IP i té els seus propis protocols de telnet amb clients propis per windows.

Pensava que el windows era el pitjor que s’havia inventat mai, però invents com aquests de vegades et fan dubtar. Si algú en sap més cosetes del tema que m’avisi, perquè el tema és tan propietari que per tot et demanen que paguis o que et registris.

NirCmd – cmd.exe light i sense consola…

Gentilesa de l’Ernest descobreixo aquesta eina freeware que no coneixia. Realment molt interessant. Ja que ens permet executar comandes en entorns win32 sense haver d’obrir una consola de DOS (cmd) com és habitual en moltes tasques que la interficie gràfica de win no suporta.

NirCmd is a small command-line utility that allows you to do some useful tasks without displaying any user interface. By running NirCmd with simple command-line option, you can write and delete values and keys in the Registry, write values into INI file, dial to your internet account or connect to a VPN network, restart windows or shut down the computer, create shortcut to a file, change the created/modified date of a file, change your display settings, turn off your monitor, open the door of your CD-ROM drive, and more…

La pròpia web de NirCmd té una col·lecció d’exemples i idees sobre el perquè ens pot ser útil aquesta eina tan recomanable des del meu punt de vista.

No Et Moguis

moguis.jpg
Aquest cap de setmana no l’altre em vaig escapar al teatre, concretament al Club Capitol, amb la Daphne. Per celebrar els nostres 4 anys junts. No volia perdre l’ocasió per recomanar-vos No Et Moguis realment ideal per desconnectar de tot. Només amb un decorat de color negre, el joc de llum, quatre objectes, dos actorassos i deixant-vos portar podeu disfrutar d’allò més. La veritat és que malgrat m’encanta el teatre el trobo molt car ja que 21€ per persona trobo que és caríssim però després de veure espectacles com el que us comento penses que aquest preu és un regal. Ja que fer que durant quasi 2h el teu cap no puc pensar en res que no sigui que no s’acabi jo diria que això no té preu.

Així que si heu de marxar d’aquest món durant unes hores per poder tornar-hi amb més ganes i totalment descansats jo diria que aquesta és una de les millors opcions d’oci que teniu per la provincia. Si voleu una petita sinopsi us enganxo un tros d’una web que he trobat per internet:

Una història quotidiana: una jove parella d’artistes sense èxit, Ivan pintor i Carla actriu. L’ autor proposa una mirada crítica i irònica de la convivència i del dia a dia, de dues persones amb diferents interessos i necessitats. L’Ivan s’obsessiona amb la seva obra i paulatinament va deixant de banda l’atracció que l’unia amb la Carla. L’amor, el desencant i la frustració derivats de les situacions creades els condueixen al trencament i a la conseqüent soledat posterior, per a la qual tampoc no estan preparats.

El drama vital es desenvolupa en una quinzena d’escenes, amb salts en el temps – coneixem els avantpassats de la Carla, uns pescadors de Cadaqués de fa cent anys – amb molts personatges que permeten a l’espectador assistir a situacions cotidianes: Un vernissage de pintura moderna, un càsting, un flirteig dins d’una piscina, el bombardeig televisiu, retalls d’un espectacle soporífer de dansa contemporània, l’absurditat de la telefonia mòvil… En aquest entorn frívol i avassallador Ivan i Carla miren de trobar resposta a la seva existència.

Podeu trobar tota la sinopsi i una mica més d’informació a: Assaig General.

Introduïnt el PIN a la VRA de forma automàtica

Aquest és un d’aquells posts que podria tenir 40 títols diferents. De fet, només vull passar-vos un parell de trossos de codi un en C i l’altre en perl, que el que fan és obrir el port serie virtual que crea el modem UMTS/GPRS PCMCIA de Vodafone després l’hi envia la comanda AT corresponent per introduir el PIN del SIM que porta la targeta i llestos.

Abans de passar als temes de codis un petit resum d’ordres AT útils per temes de PIN:

AT+CPIN=1234 -> Introduim el PIN a la SIM del mòdem.
AT+CPIN? -> preguntem al mòdem si ja hem introduit la SIM.
AT+CPWD="SC",old_pin,new_pin -> canviem el PIN de la SIM.

De fet, si no voleu fer un codi tan bonic com el que jo uso, també podeu fer una cosa tan senzilla com aquesta:

# echo AT+CPIN=1234 > /dev/tts/USB0

Sent 1234 el codi PIN i /dev/tts/USB0 el dispositiu serie que crea el modem PCMCIA de vodafone.

Anant a codis una miqueta més interessants aquí teniu un trosset de codi C per fer el mateix que em fet en l’ordre anterior:

#include <stdio.h>   /* Standard input/output definitions */
#include <string.h>  /* String function definitions */
#include <unistd.h>  /* UNIX standard function definitions */
#include <fcntl.h>   /* File control definitions */
#include <errno.h>   /* Error number definitions */
#include <termios.h> /* POSIX terminal control definitions */
main() {
	int fd;
	fd = open_port();
	init_modem(fd);
	close(fd);
}
int open_port(void) {
	int fd; /* File descriptor for the port */
	struct termios options;
	fd = open("/dev/tts/USB0", O_RDWR | O_NOCTTY | O_NDELAY);
	if (fd == -1) {
		/*
		* Could not open the port.
		*/
		perror("open_port: Unable to open /dev/tts/USB0 - ");
	}
	else fcntl(fd, F_SETFL, 0);
	/* get the current options */
	tcgetattr(fd, &options);
	cfsetispeed(&options, B19200);
	cfsetospeed(&options, B19200);
	/* set raw input, 1 second timeout */
	options.c_cflag &= ~PARENB;
	options.c_cflag &= ~CSTOPB;
	options.c_cflag &= ~CSIZE;
	options.c_cflag |= CS8;
	options.c_cflag     |= (CLOCAL | CREAD);
	options.c_cflag	    &= ~CNEW_RTSCTS;
	/* set the options */
	tcsetattr(fd, TCSANOW, &options);
	return (fd);
}
int                  /* O - 0 = MODEM ok, -1 = MODEM bad */
init_modem(int fd)   /* I - Serial port file */
{
	char buffer[255];  /* Input buffer */
	char *bufptr;      /* Current char in buffer */
	int  nbytes;       /* Number of bytes read */
	int  tries;        /* Number of tries so far */
	for (tries = 0; tries < 3; tries ++) {
		/* send an AT command followed by a CR */
		if (write(fd, "AT+CPIN=1234\r", 13) < 13) continue;
			/* read characters into our string buffer until we get a CR or NL */
			bufptr = buffer;
			while ((nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1)) > 0) {
				bufptr += nbytes;
				if (bufptr[-1] == '\n' || bufptr[-1] == '\r') break;
			}
		/* nul terminate the string and see if we got an OK response */
		*bufptr = '\0';
		if (strncmp(buffer, "OK", 2) == 0) return (0);
	}
	return (-1);
}

Com en l’exemple anterior el dispositiu serie és /dev/tts/USB0 i el codi PIN 1234. Aquest codi és un copy/paste de la part d’un serial howto que ja no recordo ni d’on el vaig treure. Només m’he quedat amb el codi que em calia i hi he afegit algunes otpions que hi havia al howto però no als exemples de codi.

A continuació penjo un codi equivalent fet en perl. Com podeu veure aquest codi en perl té una dependència de la llibreria CPAN: Device::Gsm. Amb aquest llibreria també és molt senzill enviar SMS i descobrir algunes informacions del telèfon, com el fabricant o l’imei.

use Device::Gsm;
my $gsm = new Device::Gsm( port => '/dev/tts/USB0', pin => '4466' );
if( $gsm->connect() ) {
  print "connected!\n";
} else {
  print "sorry, no connection with gsm phone on serial port!\n";
}
# Register to GSM network (you must supply PIN number in above new() call)
print $gsm->register();

Problemes amb el fitxer /etc/localtime (zic)

Fent un break en la nateja del diumenge després d’estar el dissabte treballant a l’oficina fins a les 0:30 he decidit escriure un dels articles tècnics que tinc pendents. Es tracta d’una tonteria que em passava en un dels linux que tinc instal·lats. El tema esta en que quan li demanava l’hora al sistema date em sortia el següent:

Fri Nov 25 09:50:19 Local time zone must be set--see zic manual page 2005

Bàsicament el problema esta en el fitxer de localtime la solució en forma de cookbook:

zic -d /usr/share/zoneinfo/Europe
zic -l /usr/share/zoneinfo/Europe/YOUR_ZONE

La primera ordre ens indica el directori on hi ha els fitxers de localtime i la segona ordre enllaça el fitxer genèric amb el nostre fitxer local que esta a /etc/localtime.

Després de fer això ja em surt el forma convencional. Una d’aquelles tonteries que ens poden fer perdre hores i hores de googlejar.

Scroll to Top