Etiquetas

555 74HC04 74HC14 74HC165 74LS04 acentos ADC10 Amstrad archivo arduino aristóteles armbian array ass at backup base64 bash Basho bc beethoven Biblia blog bucle c c++ c++11 c++17 C005 cadena Carmina Burana casting CD4017 CD4040 Cine clases Colores connect Consolación a Helvia Consolación a Marcia Consolación a Polibio constante corsair CPC Cristal 32Khz css cursor mouse cut daemon date dead keys Debian directorio disco duro DS32kHz electricidad Electrónica ensamblador entryList epicureismo Estadística estoicismo felicidad ffmpeg filePath filosofia Filosofía firefox flac for fstab funcion Gargantúa gastronomía gilgamesh Ginott gmp gpt grep gtts Hobbes hotkeys html imagemagick inline Javascript kde kernel modulos latex ldr lib-notify Linux Literatura ludoteca macro mapa de bits Matroska mega Microsoft Word Milan Kundera mkvextract mkvinfo mount mp3 mplayer MSP430 msp430F5529 MSP432 Multimedia Musica oop orange_pi pato PIR PL9823 Platón poesía POO en C++ pulseaudio puntero PWM pygame pyqt python QAction qApp QApplication QByteArray QDialog Qdir QFile QFileDialog QImage qlabel QList QListWidget QMessagebox QMouseEvent qpainter QPalette QPixmap QProcess QRegularExpression QRegularExpressionMatchIterator QString QStringList Qt qt5 QToolbar quijote QVector qwidget R Rabelais ratón relé Resonador cerámico samba San Agustín screen Séneca signal slot smart smartctl sox srt static const stdarg.h subtítulos Symbian tar teléfonos móviles temperatura temperatura cpu Temporizador tesseract Timer timestamp Trigonometría tts tutorial uid unicode user USI va_arg va_end va_list va_start velocidad ventilador Voltaire wallpaper xboxdrv xinput xrandr Z80 zip

domingo, julio 14, 2013

Usar un 74HC165 con el MSP430 a través de USI

Conexión:
74HC165           MSP430
QH -------------> P1.7 (SDI)
CLK ------------> P1.5 (SCLK)
PL (o SH/LD) ---> P.1.2 (Cualquier pin vale).


InterruptVectors_init.c
/*
 *  ======== Timer0_A3 Interrupt Service Routine ======== 
 */
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR_HOOK(void)
{
    /* USER CODE START (section: TIMER0_A0_ISR_HOOK) */
    // Pedir al 74hc165 que lea las entradas
    P1OUT &= ~BIT2; // poner pin ld low
    P1OUT |= BIT2; // poner pin ld hight

    //Pedir al USI que lea 8 bits
    USICNT |= 8;

    /* USER CODE END (section: TIMER0_A0_ISR_HOOK) */
}


/*
 *  ======== USI Interrupt Service Routine ========
 */
#pragma vector=USI_VECTOR
__interrupt void USI_ISR_HOOK(void)
{
    /* USER CODE START (section: USI_ISR_HOOK) */
 USICTL1 &= ~USIIFG;
 clearDisplay();
 sendNumber(USISRL);
    /* USER CODE END (section: USI_ISR_HOOK) */
}

USI_init.c
/*
 *  This file is automatically generated and does not require a license
 */

#include <msp430.h>

/* USER CODE START (section: USI_init_c_prologue) */
/* User defined includes, defines, global variables and functions */
/* USER CODE END (section: USI_init_c_prologue) */

/*
 *  ======== USI_graceInit ========
 *  Initialize Universal Serial Interface
 */
void USI_graceInit(void)
{
    /* USER CODE START (section: USI_graceInit_prologue) */
    /* User initialization code */
    /* USER CODE END (section: USI_graceInit_prologue) */

    /* Disable USI */
    USICTL0 |= USISWRST;

    /* 
     * USI Control Register 0
     * 
     * USIPE7 -- USI function enabled
     * ~USIPE6 -- USI function disabled
     * USIPE5 -- USI function enabled
     * ~USILSB -- MSB first
     * USIMST -- Master mode
     * ~USIGE -- Output latch enable depends on shift clock
     * ~USIOE -- Output disabled
     * USISWRST -- USI logic held in reset state
     * 
     * Note: ~<BIT> indicates that <BIT> has value zero
     */
    USICTL0 = USIPE7 + USIPE5 + USIMST + USISWRST;

    /* 
     * USI Control Register 1
     * 
     * USICKPH -- Data is captured on the first SCLK edge and changed on the following edge
     * ~USII2C -- I2C mode disabled
     * ~USISTTIE -- Interrupt on START condition disabled
     * USIIE -- Interrupt enabled
     * ~USIAL -- No arbitration lost condition
     * ~USISTP -- No STOP condition received
     * ~USISTTIFG -- No START condition received. No interrupt pending
     * USIIFG -- Interrupt pending
     * 
     * Note: ~<BIT> indicates that <BIT> has value zero
     */
    USICTL1 = USICKPH + USIIE + USIIFG;

    /* 
     * USI Clock Control Register
     * 
     * USIDIV_0 -- Divide by 1
     * USISSEL_2 -- SMCLK
     * ~USICKPL -- Inactive state is low
     * ~USISWCLK -- Input clock is low
     * 
     * Note: ~<BIT> indicates that <BIT> has value zero
     */
    USICKCTL = USIDIV_0 + USISSEL_2;

    /* Enable USI */
    USICTL0 &= ~USISWRST;

    /* USER CODE START (section: USI_graceInit_epilogue) */
    /* User code */
    /* USER CODE END (section: USI_graceInit_epilogue) */
}

miércoles, julio 10, 2013

Usar un 74HC165 con el MSP430 y 8 interruptores

Nota:
LD --> PIN_PL
CLK--> PIN_CP
Q7 --> PIN_Q

74hc165.h

/*
 * 74hc165.h
 */

#ifndef FILE_74HC165_H_
#define FILE_74HC165_H_

#include "msp430.h"
#define PISO_IN_PORT P1IN
#define PISO_OUT_PORT P1OUT
#define PIN_PL BIT5
#define PIN_CP BIT4
#define PIN_Q BIT3

#define PIN_CP_HIGH PISO_OUT_PORT |= PIN_CP
#define PIN_CP_LOW PISO_OUT_PORT &= ~PIN_CP
#define PIN_PL_HIGH PISO_OUT_PORT |= PIN_PL
#define PIN_PL_LOW PISO_OUT_PORT &= ~PIN_PL

void init74hc165 (void);
unsigned char read74hc165(void);

#endif /* FILE_74HC165_H_ */

74hc165.c

/*
 * 74hc165.c
 */

#include "74hc165.h"

void pulseClock (void){
 PIN_CP_HIGH;
 PIN_CP_LOW;
}

void init74hc165 (void){
 PIN_PL_HIGH;
 PIN_CP_HIGH;
}

unsigned char read74hc165(void){

 unsigned char i;
 unsigned char ret = 0;
 volatile unsigned char readed;

 PIN_CP_HIGH;
 PIN_PL_LOW;
 PIN_CP_LOW;
 PIN_PL_HIGH;

 for (i=0; i < 8; i++){

  readed = PISO_IN_PORT;

  if ((readed & PIN_Q) == PIN_Q){
   ret = ret + (128 >> (i));
  }

  pulseClock();
 }

 return ret;
}

martes, mayo 21, 2013

ADC10 en el MSP430

El ADC10 se pone en modo automático continuo. El valor de ADC10MEM se lee cada 500 ms. con el temporizador.

main.c
#include <msp430.h>
#include <ti/mcu/msp430/Grace.h>

/*
 *  ======== main ========
 */
int main(void)
{
    Grace_init();                   // Activate Grace-generated configuration
    ADC10CTL0 |= ADC10SC;    // comenzar conversion
    __bis_SR_register(LPM3 + GIE);
}


InterruptVectors_init.c
/*
 *  ======== Timer1_A3 Interrupt Service Routine ======== 
 */
#pragma vector=TIMER1_A0_VECTOR
__interrupt void TIMER1_A0_ISR_HOOK(void)
{
    /* USER CODE START (section: TIMER1_A0_ISR_HOOK) */
    P1OUT ^= BIT0;
 if (ADC10MEM < 512) {
  P2OUT |= BIT0;
  P2OUT &= ~BIT1;
 } else {
  P2OUT &= ~BIT0;
  P2OUT |= BIT1;
 }
    /* USER CODE END (section: TIMER1_A0_ISR_HOOK) */
}


ADC10_init.c
/*
 *  ======== ADC10_graceInit ========
 *  Initialize MSP430 10-bit Analog to Digital Converter
 */
void ADC10_graceInit(void)
{
    /* USER CODE START (section: ADC10_graceInit_prologue) */
    /* User initialization code */
    /* USER CODE END (section: ADC10_graceInit_prologue) */

    /* disable ADC10 during initialization */
    ADC10CTL0 &= ~ENC;

    /* 
     * Control Register 0
     * 
     * ~ADC10SC -- No conversion
     * ~ENC -- Disable ADC
     * ~ADC10IFG -- Clear ADC interrupt flag
     * ~ADC10IE -- Disable ADC interrupt
     * ADC10ON -- Switch On ADC10
     * REFON -- Enable ADC reference generator
     * ~REF2_5V -- Set reference voltage generator = 1.5V
     * MSC -- Enable multiple sample and conversion
     * ~REFBURST -- Reference buffer on continuously
     * ~REFOUT -- Reference output off
     * ~ADC10SR -- Reference buffer supports up to ~200 ksps
     * ADC10SHT_0 -- 4 x ADC10CLKs
     * SREF_1 -- VR+ = VREF+ and VR- = VSS
     * 
     * Note: ~<BIT> indicates that <BIT> has value zero
     */
    ADC10CTL0 = ADC10ON + REFON + MSC + ADC10SHT_0 + SREF_1;

    /* 
     * Control Register 1
     * 
     * ~ADC10BUSY -- No operation is active
     * CONSEQ_2 -- Repeat single channel
     * ADC10SSEL_0 -- ADC10OSC
     * ADC10DIV_0 -- Divide by 1
     * ~ISSH -- Input signal not inverted
     * ~ADC10DF -- ADC10 Data Format as binary
     * SHS_0 -- ADC10SC
     * INCH_1 -- ADC Channel 1
     * 
     * Note: ~<BIT> indicates that <BIT> has value zero
     */
    ADC10CTL1 = CONSEQ_2 + ADC10SSEL_0 + ADC10DIV_0 + SHS_0 + INCH_1;

    /* Analog (Input) Enable Control Register 0 */
    ADC10AE0 = 0x2;

    /* Software delay for REFON to settle */
    __delay_cycles(30000);

    /* enable ADC10 */
    ADC10CTL0 |= ENC;

    /* USER CODE START (section: ADC10_graceInit_epilogue) */
    /* User code */
    /* USER CODE END (section: ADC10_graceInit_epilogue) */
}


main.cfg



Esquema

jueves, mayo 16, 2013

Aplificar un LM35 con un LM358 y un potenciómetro


Sobre potenciómetros

Conectando la patita izquierda a GND y la derecha a VCC se consigue que la del centra vaya al girar de 0 a VCC (Fig. 1)

El potenciómetro funciona como dos resistencias en serie.  Al girar en el sentido horario se incrementa la primera y se disminuye la segunda. El el sentido anti-horario es a la inversa. (Fig. 2)



lunes, septiembre 17, 2012

Autologin e inicio de xfce

Autologin en la consola 6:
En inittab:
c6:2345:respaw:/sbin/agetty -8 -a -s 38400 tty6 linux

Incio automático de xfce:
En ~/.bash_profile:
if [[ -z $DISPLAY && $(tty) = /dev/tty6 ]]; then
    exec startxfce4
fi

miércoles, septiembre 12, 2012

Apuntes de R

Librerías
Instalar librerías:
install.packages("psych")

Cargar librerías:
library(psych)

Ver las librerías cargadas:
search()


Sistema de archivos:
getwd()            #Muestra el directorio actual
setwd("/xxx/xxx")  #Cambia el directorio actual
list.files()       #Muestra contenido del directorio actual
source ("file.R", echo=T) #Ejecuta un script


Datos:
#c() is a function that combines its arguments into a list
data = c(3,3,4,3,3,2)


#Read data into a dataframe called "ratings"
ratings <- read.table("stats.txt", header=T)


#Mostrar las variables en el entorno
ls()


#Explore the contents of the dataframe
class (ratings)     # Returns "data.frame"
names (ratings)     # Returns the names of the columns
head(ratings)       # Muestra 6 primeras filas
tail(ratings)       # Muestra ultimas 5 filas



#Crear una nueva tabla con la condición de que la columna 'cond' contenga el valor "des".
#La nueva tabla no incluye la columna 'cond'
des_group <-subset(data, data$cond=="des", select= -cond)


#Crear una nueva tabla con la condición de que la columna 'cond' No contenga el valor "des".
#La nueva tabla no incluye la columna 'cond'
aer_group <-subset(data, data$cond!="des", select= -cond)


#Crear correlación con las columnas 2,4 y 5:
cor (data[c(2,4,5]))


Histogramas
Ejemplo 1
#Plot histogram
hist (ratings$RedTruck)


Ejemplo 2
#Dibujar histograma de los datos en que la columna 'cond' contiene el valor 'des'.
#Incluye un título con dos lineas de texto.


hist(data$pre.wm.v[data$cond=="des"],
     main="Designed sports training\nPre WM verbal")


Ejemplo 3


hist(fakedata,
  xlab="etiqueta de X",
  ylab="etiqueta de Y",
  main="Titulo")




Layout
Ejemplo 1
# Plot four histograms in one page
layout(matrix(c(1,2,3,4),2,2,byrow=TRUE))
hist(ratings$WoopWoop,xlab="Rating")
hist(ratings$RedTruck,xlab="Rating")
hist(ratings$HobNob,xlab="Rating")
hist(ratings$FourPlay,xlab="Rating")


Ejemplo 2
#layout(matrix(c(1,2,3,4,5,6,7,8),4,2,byrow=TRUE)) # matriz de 2 columnas, 4 filas
layout(matrix(c(1,2,3,4,5,6,7,8),2,4,byrow=TRUE)) # matriz de 4 columnas, 2 filas


O también:
layout(matrix(c(1,2,3,4), nrow = 2, ncol = 2,byrow=TRUE))


Estadísticas
Ejemplo 1
# Get descript statistics
describe (ratings)

Ejemplo 2a
des_group <-subset(data, data$cond=="des", select= -cond)
describe(des_group)

Ejemplo 2b
describe(data[data$cond=="des",])  #Ojo a la coma

domingo, agosto 05, 2012

Minnie Riperton: Loving you


viernes, julio 13, 2012

Libertad y necesidad coherentes

Libertad y necesidad son coherentes, como, por ejemplo, ocurre con el agua, que no sólo tiene libertad, sino necesidad de ir bajando por el canal. Lo mismo ocurre en las acciones que voluntariamente realizan los hombres, las cuales, como proceden de su voluntad, proceden de la libertad, e incluso  como cada acto de la libertad humana y cada deseo e inclinación proceden de alguna causa, y ésta de otra, en una continua cadena (cuyo primer eslabón se halla en la mano de dios, la primera de todas las causas), proceden de la necesidad. Así que a quien pueda advertir la conexión de aquellas causas le resultará manifiesta la necesidad de todas las acciones voluntarias del hombre. Por consiguiente, Dios, que ve y dispone todas las cosas, ve también que la libertad del hombre, al hacer lo que quiere, va acompañada por la necesidad de hacer lo que Dios quiere, ni más ni menos. Porque aunque los hombres hacen muchas cosas que Dios no ordena ni es, por consiguiente, el autor de ellas, sin embargo, no pueden tener pasión ni apetito por ninguna cosa, cuya causa no sea la voluntad de Dios. Y si esto no asegurara la necesidad de la voluntad humana y, por consiguiente, de todo lo que de la voluntad humana depende, la libertad del hombre sería una contradicción y un impedimento a la omnipotencia y libertad de Dios.

Thomas Hobbes, Leviatan, XXI, 4

jueves, junio 07, 2012

Dividir una imagen con ImageMagick

Este comando produce una serie de archivos trozo-0.png, trozo-1.png... cada uno de 10920 x 1080 pixels a partir de la imagen original.

convert -crop 1920x1080 imagen.png trozo.png

jueves, mayo 17, 2012

Sobre ludotecas. Parte II

Extractos del Decreto 43/2011, de 17 de mayo, por el que se aprueba el reglamento de Autorización, Acreditación, registro e Inspección de Centros y Servicios Sociales en el Principado de Asturias.

Partes del reglamento aplicables a ludotecas.

Texto completo en el BOPA

Tal vez te interese la primera parte del artículo

Anexo.
Capítulo I. Disposiciones generales
Artículo 3. Tipología de centros

4. Son centros de atención de menores y familia:
    d) Las ludotecas, que son centros destinados al cuidado de niños y niñas de entre 3 y 14 años, durante un espacio de tiempo no superior a 3 horas, que tiene como primera tarea el desarrollo integral de la personalidad a través del juego y del juguete. Para ello, posibilita y estimula el juego infantil, ofreciendo a los niños y niñas los materiales y espacios de juego, indicaciones, apoyos y acompañamientos que demanden para su desarrollo. dicho recurso prestará el servicio de ludoteca.
Capítulo II. Régimen de autorización y comunicación.
Artículo 6. Autorización administrativa

1. los titulares de centros o servicios privados requerirán de previa autorización administrativa para:
    a) la primera puesta en funcionamiento de un centro, así como la puesta en uso de las obras de ampliación, reforma o modificación sustancial de las condiciones materiales o arquitectónicas que se hubieren hecho en centros ya existentes.
Artículo 7. Comunicación.
1. Deberán ser objeto de comunicación a la consejería competente en materia de bienestar social:
    a) la creación e inicio de actividad de una entidad de servicios sociales, así como los cambios en su denominación, titular o responsable, en el plazo de dos meses desde que se lleven a efecto.
     b) Los cambios de titularidad y dirección de un servicio o centro en el plazo de dos meses desde que se produzcan.
    c) el cese o cierre voluntarios de un centro o servicio con una antelación mínima de dos meses a la fecha en que se lleve a efecto.

2. al escrito por el que se comuniquen las circunstancias descritas en el apartado anterior se acompañará la siguiente documentación e información:
    a) en el caso de creación e inicio de actividad de una entidad de servicios sociales:     — documento nacional de identidad de la persona física o documento de constitución de la entidad, y en su caso modificaciones del mismo, debidamente inscritos en el registro oficial que corresponda, así como copia de sus estatutos.
        — En caso de tratarse de persona distinta a aquella a que se refiere la comunicación, se aportará fotocopia de documento nacional de identidad de la persona que presenta la comunicación así como el documento justificativo de la representación con que actúa.
        — Indicación de la fecha prevista de inicio de la actividad, un domicilio para notificaciones, así como el teléfono, fax y dirección de correo electrónico de la persona titular y del director/a o responsable de la entidad.
        — memoria explicativa de la actividad a desarrollar, con referencia expresa a sus objetivos generales y específicos y ámbito territorial en el que actuará.
    b) Cuando se trate de un cambio de titularidad de una entidad, centro o servicio, se adjuntará:
        — documento en el que la antigua y nueva titularidad acuerden, de manera expresa, la transmisión de la
entidad, centro o servicio por cualquier negocio jurídico admitido en derecho.         — documento acreditativo de la personalidad del/la nuevo/a titular de la entidad, centro o servicio y, en su caso, de la persona que presenta la comunicación así como el documento justificativo de la representación con que actúa. si se trata de una persona jurídica, presentará escritura de constitución, y en su caso modificaciones de la misma, debidamente inscritos en el registro oficial que corresponda, así como copia de sus estatutos.
        — El número o código de identificación fiscal de la persona física o jurídica que asume la titularidad.
    c) Para los cambios en la dirección de un servicio o centro se aportará la aceptación expresa del cargo por parte del nuevo/a director/a y copia compulsada de la titulación y formación complementaria que le sea exigible.
Artículo 8. Cumplimiento de requisitos de funcionamiento.
1. los centros y servicios sociales de titularidad privada deberán cumplir, para la concesión de la autorización de funcionamiento, los requisitos y condiciones que, con carácter básico, se establecen en los artículos siguientes, así como aquellos otros que, en desarrollo de este reglamento, pudieran establecerse. la autorización se entenderá condicionada al mantenimiento de las condiciones y requisitos necesarios para su otorgamiento.
Artículo 9. Requisitos básicos para el funcionamiento de los centros
5. las diferentes instalaciones y servicios que integran el conjunto de equipamientos de los centros de servicios sociales deberán cumplir con las especificaciones técnicas, de mantenimiento y requisitos que para cada uno de ellos estipule la normativa sectorial aplicable. en todo caso:
    a) Los locales o salas con superficie superior a 100 metros cuadrados y permanencia superior a 50 personas dispondrán de 2 salidas.
    b) todos los centros de servicios sociales contarán con una dotación de extintores manuales a razón de 1 por cada 200 metros cuadrados y no menos de 2 por planta.

6. así mismo, los centros contarán con un plan de autoprotección, debidamente implementado, en los términos del real decreto 393/2007, de 23 de marzo, por el que se aprueba la norma Básica de autoprotección de los centros, establecimientos y dependencias dedicados a actividades que puedan dar origen a situaciones de emergencia, que deberá estar informado favorablemente por la consejería u organismo competente en materia de protección civil. Una copia del plan deberá mantenerse en un lugar cerrado y ubicado a la entrada del edificio para uso exclusivo de bomberos.

No obstante lo anterior, y siempre que su superficie construida no exceda los 250 metros cuadrados, podrá sustituirse la obligación de contar con plan de autoprotección por la adopción de las recomendaciones que, a tal efecto, establezca la consejería u organismo competente en materia de protección civil (en ludotecas).

7. los centros de servicios sociales, deberán tener contratada una póliza de seguro de responsabilidad civil con las siguientes coberturas mínimas de riesgo:
    a) 200.000 euros para los centros de hasta 30 plazas.
    b) 350.000 euros para los centros de 31 a 80 plazas.
Artículo 10. Requisitos básicos para el funcionamiento de los servicios. En todo caso, los servicios contarán con un/a director/a o responsable con titulación universitaria y formación complementaria en (...) menores, puericultura (...) o dirección de centros de servicios sociales, según la naturaleza del servicio.

3. Documentación y procedimientos de trabajo:

    a) todos los servicios tendrán, a disposición de la Inspección de servicios sociales, un organigrama, copia de los contratos de trabajo y de la documentación acreditativa de la cotización a la seguridad social de sus trabajadores, titulaciones de éstos, así como la restante documentación que, con carácter obligatorio, pudiera establecerse.

    b) los servicios regulados en este reglamento llevarán un listado de personas usuarias que incluya nombre y apellidos, número del documento nacional de identidad. este listado, que será actualizado diariamente, se encontrará en todo momento en la sede del centro y a disposición de la Inspección de servicios sociales.

    c) en garantía de la voluntariedad de acceso de las personas usuarias al sistema de servicios sociales, al inicio de la prestación de todo servicio se informará a éstas de las condiciones en que se desarrollará, debiendo firmarse el documento en el que la persona usuaria, o su representante, manifiesten su consenti¬miento informado para el acceso a dicho servicio que, en su caso, podrá ser sustituido por la resolución admi-nistrativa que lo autorice o resolución judicial que lo disponga, siendo esta última imprescindible para el acceso al servicio cuando la persona usuaria, no pudiendo manifestar su consentimiento, careciera de representante legal.

    d) Igualmente, los distintos servicios contarán con un dossier de documentación referida a cada persona usuaria que incluirá, al menos, la ficha personal, los documentos para el seguimiento de su evolución que pudieran exigirse para cada tipo de recurso y el consentimiento informado para el acceso al servicio.

    e) todos los servicios aprobarán, y tendrán a disposición del usuario, un reglamento de régimen Interior y un Plan General de Intervención, con obligación de revisión anual de éste último, que incluirán los contenidos que se establezcan, para cada tipo de servicio, en la normativa de desarrollo de este reglamento.

    f) Igualmente, habilitarán y utilizarán los protocolos de trabajo que se establezcan para cada tipo de servicio y en los que se identificará el profesional o profesionales que han de realizar la concreta tarea, modo de ejecutarla de manera correcta y frecuencia, así como las correspondientes hojas de registro de dichas tareas.

    g) aquellos servicios que incluyan la alimentación de las personas usuarias cumplirán las disposiciones establecidas en el reglamento 852/2004, de 29 de abril de 2004, del Parlamento europeo y del Consejo, relativo a la higiene de los productos alimenticios, reglamento 853/2004, de 29 de abril de 2004, del Parlamento europeo y del Consejo, por el que se establecen normas específicas de higiene de los alimentos de origen animal, Real decreto 3484/2000, de 29 de diciembre, por el que se establecen las normas de higiene para la elaboración, distribución y comercio de comidas preparadas y real decreto 1420/2006, de 1 de diciembre, sobre prevención de la parasitosis por anisakis en productos de la pesca suministrados por establecimientos que sirven comida a los consumidores finales o a colectividades o normativa que los sustituya.
Artículo 12. Procedimiento de autorización de centros y servicios sociales de titularidad privada.
1. Para la primera apertura de un centro privado o de la parte del mismo que hubiere sido objeto de modificación sustancial, así como para la puesta en funcionamiento de los servicios de titularidad privada, deberá formularse la oportuna solicitud de autorización administrativa, en modelo normalizado, al que acompañará la siguiente documentación:
    a) En el caso de que el solicitante fuera persona jurídica, certificación de los acuerdos adoptados en relación con la autorización que se solicita.
    b) Cuando la persona que presenta la solicitud sea distinta de la titular del centro o servicio, se aportará fotocopia de documento nacional de identidad de la persona así como el documento justificativo de la representación con que actúa.
    c) nombramiento de la persona que ocupará la dirección del centro y aceptación del cargo por parte de ésta.
    d) Memoria explicativa de la actividad a desarrollar, con referencia expresa a sus objetivos generales y específicos, perfil de las personas usuarias, servicios a ofertar, programas a desarrollar, recursos materiales y humanos con los que se dotará y, en su caso, capacidad prevista.
    e) Copia del reglamento de régimen Interior.
    f) Copia del Plan General de Intervención.
Capítulo IV. Registro de entidades, centros y servicios sociales.
Artículo 23. Sujetos de la inscripción.

Están sujetos a inscripción en el registro todos los centros y servicios sociales, públicos o privados, con o sin ánimo de lucro, incluidos en el ámbito de aplicación del presente decreto, así como las entidades y personas titulares de los mismos.

jueves, mayo 10, 2012

Repartir los archivos de un proyecto en diferentes subcarpetas (en Python)

Supongamos el siguiente árbol de directorios:
proyectoX/
....main.py
....formatos/
........__init__.py
........formato1.py
........formato2.py        
.....filtros/
........__init__.py
.........filtroY.py

En main.py:
import formatos.formato1
import filtros.filtroY

Importante:
Las subcarpetas donde se guardan los módulos tienen que tener un __init__.py para que funcione. Este archivo puede estar vacio.

Referencia (Python tutorial)

viernes, mayo 04, 2012

Janis Ian : At Seventeen

viernes, abril 13, 2012

Trigonometría en C++

Convertir ángulos en grados a radianes:
float anguloRad  = anguloDeg * PI / 180;

Convertir ángulos en radianes a grados:
float anguloDeg = anguloGrad * 180 / PI;

Funciones trigonométricas
C++ trabaja en radianes. Antes de usar las funciones trigonométricas hay que pasar los grados a radianes. Por ejemplo:

float v = cos (anguloDeg * PI / 180);

Al trabajar con tipos float se produce un error de redondeo con ciertos valores. Por ejemplo, utilizando las fórmulas anteriores el coseno de 90 da como resultado -4.37114e-e08. Casi cero pero no del todo. Por cierto, en Python el resultado es diferente:

>>> print math.cos(90 * math.pi / 180)
6.12303176911e-17

A continuación pequeño programa de ejemplo.
#include <iostream>
#include <math.h>

#define PI 3.141592653589793

using namespace std;

void printCoseno (float ang){
 float anguloDeg = ang;
 float anguloRad = anguloDeg * PI / 180;

 cout << "Angulo en grados:" << anguloDeg 
 << " \t\tCoseno:"<< cos(anguloDeg) << endl;

 cout << "Angulo en Radianes:" << anguloRad
 << " \tCoseno:"  << cos(anguloRad) << endl;

 cout << endl;
}

int main() {
 printCoseno (0);
 printCoseno (45);
 printCoseno (90);
 printCoseno (180);
 printCoseno (200);
 printCoseno (270);

 return 0;
}

Salida en pantalla:
Angulo en grados:0              Coseno:1
Angulo en Radianes:0      Coseno:1

Angulo en grados:45             Coseno:0.525322
Angulo en Radianes:0.785398     Coseno:0.707107

Angulo en grados:90             Coseno:-0.448074
Angulo en Radianes:1.5708       Coseno:-4.37114e-08

Angulo en grados:180            Coseno:-0.59846
Angulo en Radianes:3.14159      Coseno:-1

Angulo en grados:200            Coseno:0.487188
Angulo en Radianes:3.49066      Coseno:-0.939693

Angulo en grados:270            Coseno:0.984382
Angulo en Radianes:4.71239      Coseno:1.19249e-08

lunes, abril 02, 2012

Ecce gratum

Ecce gratum
et optatum
Ver reducit gaudia;
purpuratum
floret pratum,
Sol serenat omnia.
Iam iam cedant tristia!
Estas redit,
nunc recedit
Hyemis sevitia.


Iam liquescit
et decrescit
grando, nix et cetera;
bruma fugit,
et iam sugit
Ver Estatis ubera;
illi mens est misera,
qui nec vivit,
nec lascivit
sub Estatis dextera.

Gloriantur 
et letantur 
in melle dulcedinis, 
qui conantur, 
ut utantur 
premio Cupidinis; 
simus iussu Cypridis 
gloriantes 
et letantes 
pares esse Paridis. 





He aquí que la agradable
y deseada
primavera vuelve a traer la alegría;
vestido de púrpura
florece el prado;
el sol lo serena todo.
¡Que se vaya ya la tristeza!
El verano regresa;
ya se aleja
la dureza del invierno.

Ya se derriten
y decrecen
el hielo, la nieve y lo demás;
el invierno huye,
y ya se amamanta
la primavera de los pechos de la estación estival.
Tiene un espíritu miserable
quien no vive
ni disfruta
bajo la protección del verano.

Se glorifican
y se alegran
en la dulzura de la miel
los que se esfuerzan
por gozar
del premio de Cupido.
¡Obedezcamos la orden de Venus
de que, gloriosos
y alegres,
seamos semejantes a Paris!

domingo, abril 01, 2012

Omnia Sol Temperat



Omnia sol temperat
purus et subtilis,
novo mundo reserat
facies Aprilis,
ad amorem properat
animus herilis
et iocundis imperat
deus puerilis.

Rerum tanta novitas
in solemni vere
et veris auctoritas
jubet nos gaudere;
vias prebet solitas,
et in tuo vere
fides est et probitas
tuum retinere.

Ama me fideliter,
fidem meam noto:
de corde totaliter
et ex mente tota
sum presentialiter
absens in remota,
quisquis amat taliter,
volvitur in rota.

* * *

Conforta a todos el sol
puro y fino;
está de nuevo radiante
la cara del mundo en abril;
hacia el amor se apresura
el corazón del hombre,
y sobre un pueblo feliz,
reina el dios de la juventud.

¡Cuántas novedades
en la celebración de la primavera!
Su autoridad
nos ordena estar contentos.
Nos ofrece caminos ya conocidos,
y en tu propia primavera,
es leal y correcto
poseer a tu amante.

Ámame fielmente,
piensa que confío en ti;
con todo mi corazón,
con toda mi voluntad
estoy contigo,
aun cuando yo esté muy lejos.
Quien ama como yo,
está girando en la rueda.


Fuentes:
Recursocoral.com.ar

miércoles, marzo 21, 2012

Haikus de Matsuo Basho

Matsuo Bashō (en japonés,松尾芭蕉) nacido como Matsuo Kinsaku (Ueno, 1644 - Osaka, 28 de noviembre de 1694), fue el poeta más famoso del período Edo de Japón.

Bashō está considerado como uno de los cuatro grandes maestros del haiku ,junto a Yosa Buson, Isa Kobayashi y Masaoka Shiki; Bashō cultivó y consolidó el haiku con un estilo sencillo y con un componente espiritual.

La libélula
Intenta en vano posarse
Sobre una brizna de hierba

Canta el cuclillo:
Un bosque de bambú
Filtra la luna.

Crecen los días
Para el canto incansable
De las alondras.

Piernas enclenques
Tendré, pero está en flor
El monte Yoshino.

Bajo un mismo techo
Durmieron las cortesanas,
La luna y el trébol.

Los crisantemos
Se incorporan etéreos
Tras el chubasco.

Las montañas y el jardín
Se van adentrando
Hasta mi habitación en verano.

Quietud:
Los cantos de la cigarra
Penetran en las rocas.

En el agua
hay un reflejo
Es alguien que va de viaje

Fin de año.
¡Siempre el mismo sombrero
y las mismas sandalias de paja!

¿Es primavera?
La colina sin nombre
se perdió en la neblina

En la lluvia de verano
se acortan
las patas de la garza

Este día tan largo.
Aún muy corto
para el canto de la alondra

A cada soplo del viento
La mariposa
Cambia de lugar en el sauce

¡Silencio!
El canto de las cigarras
tala las rocas.
 Fuentes:
http://es.wikipedia.org/wiki/Matsuo_Bash%C5%8D
http://es.scribd.com/doc/15823164/7540584-Haikus-de-Matsuo-Basho

domingo, marzo 11, 2012

Sobre ludotecas, Parte I

El problema de la definición
La real academia de la lengua, nido de reaccionarios encerrados en torres de marfil definen en la  vigésimo segunda edición de su diccionario la  ludoteca como:
Centro de recreo donde se guardan juegos y juguetes para su uso y préstamo. 
En segundo lugar, la  Wikipedia (nido de trolls, pedantes que se las dan de cultos, liberales, proabortistas, mentirosos, conspiradores, desinformadores, troskos y comunistas) tiene un extenso artículo que no me molesto en copiar. Si quieres consultarlo el enlace está más abajo.

Ahora en serio. La consejería de bienestar social y vivienda del Principado de Asturias define la ludoteca como:

Las ludotecas, que son centros destinados al cuidado de niños y niñas de entre 3 y 14 años, durante un espacio de tiempo no superior a 3 horas, que tiene como primera tarea el desarrollo integral de la personalidad a través del juego y del juguete. Para ello, posibilita y estimula el juego infantil, ofreciendo a los niños y niñas los materiales y espacios de juego, indicaciones, apoyos y acompañamientos que demanden para su desarrollo.
Dicho recurso prestará el servicio de ludoteca.


Pero ¿Qué es una ludoteca?
Una ludoteca es un lugar para hacer felices a los niños / jóvenes/ adultos, ya que no existe nada más esencial que la sonrisa de ellos. Siendo un espacio creado para favorecer y facilitar el juego. En el cual estos miembros de la comunidad educativa van para jugar libremente con todas sus potencialidades y necesidades lúdicas. Se encontrarán con el personaje principal de la ludoteca: el juguete (objeto intermediario y cultural, motivador de nuevas conductas y motor de la creatividad). A través del juego/juguete se pretenderá proporcionar aprendizajes , adquisición de conocimiento , desarrollo de habilidades, de forma natural y agradable, porque en la ludoteca la construcción del conocimiento es una delicada aventura, este lugar es diseñado, imaginado, soñado, para que los jóvenes, niños, adultos, puedan vivir plenamente con toda su curiosidad y entusiasmo.

Los encargados y responsables de cumplir con este objetivo son los ludotecarios o facilitadores de juego
(individual y grupal), además de clasificar y catalogar juegos y juguetes, planificando animaciones lúdicas y eventos especiales de integración, es decir, que actúa facilitando el juego en lugar de dirigirlo, prestando especial atención a la creación de una atmósfera libre de fracaso y a un ambiente que estimule la creatividad, la diversión, elevando el nivel de desarrollo de la persona. Esta propuesta está dirigida a toda institución abierta a las necesidades y a los cambios, donde se trabaje para lograr que sus alumnos alcancen un equilibrio emocional, sensible e intuitivo, fortalecido para enfrentar en un futuro próximo la inserción a la sociedad.



Diferencia entre guardería, ludoteca y escuela infantil
Por alvaceli
Guarderia: Lugar donde "guardan" a los niños mientras los padres trabajan y donde se encargan simplemente de las necesidades básicas (comer y que esten limpios).
Ludoteca: Lugar destinado a actividades lúdicas.
Escuela infantil: Lugar donde, ademas de cuidar de los niños les enseñana normas básicas de comportamiento (conjuntamente con las familias) y todo a través del juego.

Una ludoteca nunca puede ser usada como una escuela infantil, ya que no lo es. Para abrir una ludoteca los requisitos son mucho menores que los que piden para abrir una escuela. El personal de las ludotecas no tiene por qué tener el titulo de educadora infantil (el mínimo requerido en las escuelas infantiles) y la formación requerida es mucho menor.

Es normal llevar a la ludoteca a niños a partir de 3 años a que se entretengan y hagan actividades distintas que en otro sitio no hacen como por ejemplo ver teatro para niños o escuchar a un cuentacuentos, realizar mil manualidades, etc.

Normativa
La normativa aplicable para una ludoteca no es la misma que para una guardería. Una depende de educación (la guardería) y en la otra puede según el caso depender de bienestar social. La cuestión es que ésta última tiene una laguna normativa legal importante. Como hablamos de diversión y no de educación puede abrirse como cualquier negocio. Lo que si hay que preguntar en el ayuntamiento es por las normas sanitarias.

Decreto 43/2011, de 17 de mayo, por el que se aprueba el reglamento de Autorización, Acreditación, registro e Inspección de Centros y Servicios Sociales en el Principado de Asturias.
Extractos relacionados con ludotecas.
Texto completo

Norma Aenor para ludotecas.
La norma UNE 172401:2007 sobre ludotecas permite a las ludotecas tener unos parámetros a la hora de establecer unos mínimos de calidad. Es una recomendación, no es obligatoria.

UNE 172401:2007 (Es de pago, 29 €. ).
Infografía de la normativa Aenor

Ayudas y subvenciones
Buscador de ayudas y subvenciones del Principado de Asturias
Buscador de ayudas del Instituto de Desarrollo Económico del Principado de Asturias (IDEPA
Ayudas a autónomos (SEPE)
Bonificaciones a la contratación laboral
Guía de modalidades de contratos y medidas de fomento de la contratación

Ayudas europeas
Progress microfinanciación
Préstamos para las PYME avalados por la UE


Más información
Autoempleo y apoyo al trabajo autónomo


Sitios de referencia
Trabajastur
Programa de fomento de cultura emprendedora
Autónom_s y emprendedor_s (me niego a reproducir la chorrada de la @)
Centro Municipal de Empresas de Gijón
Sociedad regional de promoción del Principado de Asturias
Dirección general de industria y de la PYME
Portal europeo para las PYMES


Addendum. La educación de los niños según Platón
El niño es la más terrible de las bestias. ¿Cómo instaurar en el alma del bebé un buen carácter? Si se le cría con demasiados mimos se volverá malo e irascible y si se le somete brutalmente se volverá pusilánime, servil y misántropo. Ha de buscarse por tanto el “justo medio”: ni placeres ni dolores en exceso.  Es lo que Platón llama “apacibilidad” y que es considerada la mejor disposición para el desarrollo adecuado del alma.

 Hasta los tres años el movimiento ayuda al desarrollo de la virtud en el alma: sirve para contrarrestar el miedo que no es otra cosa que un movimiento interior “asustadizo y frenético”.

De los tres a los seis años el niño ha de ser educado mediante el juego, aunque ya es necesario aplicar algún correctivo para que no se vuelva caprichoso. En cualquier caso, hay que evitar siempre la humillación, que, como en el caso del castigo a los esclavos, no lleva sino al deseo de venganza.

Después de los seis años los niños deberán separarse de las niñas aunque habrá de procurarse que reciban una educación similar, especialmente en lo que concierne al uso de las armas.


Fuentes:
Ludoteca en la Wikipedia
http://www.google.com/search?q=%22la+real+academia+es+un+nido+de%22
http://www.google.com/search?q=%22la+wikipedia+es+un+nido+de%22
Aula de filosofía

miércoles, febrero 22, 2012

Il nous faut de l’audace, encore de l’audace, toujours de l’audace

"Necesitamos audacia, otra vez audacia, siempre audacia."

lunes, febrero 20, 2012

Derivar una clase a partir de QList

#ifndef NODERECORDLIST_H
#define NODERECORDLIST_H

#include <QList>
#include <QPoint>
#include "pathfinding/noderecord.h"

class NodeRecordList :public QList <NodeRecord>
{
public:
    NodeRecordList();
    NodeRecord findNode (QPoint node);
};

#endif // NODERECORDLIST_H

#include "noderecordlist.h"

NodeRecordList::NodeRecordList()
{
}

NodeRecord NodeRecordList::findNode(QPoint node){
    NodeRecord record;

    for (int i=0; i < this->size(); i++){
        //if (at(i).node() == node){} //Esto da error

        record.copy(at(i));
        if (record.node() == node) {
            return record;
        }
    }
    return record;
}

    NodeRecordList openNodes;
    NodeRecordList closedNodes;