Show Posts
Pages: 1 ... 245 246 [247] 248 249 ... 357
3691  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 05, 2012, 04:43:49 am
petite idée comme ca, pourquoi ne pas utiliser un flux RSS et parser le résultat?
ca alllègerait la charge de traitement.
Tout simplement parce qu'il n'y a pas de flux RSS spécifique à un topic/forum, le seul flux disponible c'est celui global à tout arduino.cc

parce que chercher avec regex, c'est bien, mais vu le nombre de pages, pfffff, à moins de faire une première passe qui va prendre vraiment du temps, puis chaque
Mon systéme n'est plus basé sur des regex mais sur un parseur xml-html (BeautifulSoup4).
Parser une page demande moins de 2sec, par contre récupérer la page depuis arduino.cc demande ~7-8sec smiley-roll

jour faire une comparaison en bash par exemple pour voir s'il y a des changements.
si changement, alors on approfondit les niveaux de posts concernés, sinon ca continue.
on utilise ca sur le forum ou je suis admin pour vérifier des maj sur un site tiers d'assistance pour ressortir les nouveaux messages.
C'est ce que je suis en train de faire, un gros checkout de toute les page, puis une mise à jour partielle par la suite.
Par contre on va avoir de gros problémes avec les suppression de topic et les edit de message :/
3692  International / Français / Re: Question sur l'Atmega + la ram ? on: March 05, 2012, 04:33:23 am
Et sur le 1280... y a la même chose ?  smiley-mr-green
Les m1280 et m2560 possède un port XMEM qui permet d'étendre la ram disponible jusqu'à 60Ko, aprés je sait pas comment se démerde le compilateur pour la gérer ...
3693  International / Français / [1/2 RÉSOLU] Re: Attiny85 - pb timer & I2c slave on: March 05, 2012, 04:28:00 am
C'est peut être un peu bête comme question, mais pourquoi avoir mis CTC1 enable ???
J'ai cherché dans tout le datasheet comment mettre le timer1 en mode CTC (clear on timer compare match) mais j'ai rien trouvé ...
Du coup dans la récap des registre j'ai vu CTC1 ... je me suis dis que ça devait être ça.

Je vais tenter sans mettre (1 << CTC1) peut être que ...

Edit: PROBLÈME 1/2 RÉSOLU

D'aprés le datasheet page 92, section 12.31.1
Quote
Bit 7 – CTC1 : Clear Timer/Counter on Compare Match
When the CTC1 control bit is set (one), Timer/Counter1 is reset to $00 in the CPU clock cycle
after a compare match with OCR1C register value. If the control bit is cleared, Timer/Counter1
continues counting and is unaffected by a compare match.
Mon code travaillait avec OCR1A, qui sert sert à faire de la PWM, je viens de faire le modification, tout fonctionne \o/

Probléme suivant : Pourquoi mon code répond sur l'adresse 0x00 et non 0x20 !?
3694  International / Français / Re: Question sur l'Atmega + la ram ? on: March 05, 2012, 04:25:27 am
Bonjour,

Je me demandais si il était possible de rajouter de la mémoire vive a l'atmega (donc l'arduino) un peut comme sur un pc .. pour certain projet sa pourrai être intéressant d'être moins limité en ram.
Sur certain ATmega comme par exemple le m2560 il y a un port qui permet d'étendre la plage de mémoire ram.
Mais faut pas ce faire d'illusions quand je dis étendre c'est de quelques Ko.

Sinon il existe des mémoire ram I2C ou SPI, mais il faut gérer soit même l'adressage et les types de données.
http://arduino.cc/playground/Main/SpiRAM
3695  International / Français / Re: Attiny85 - pb timer & I2c slave on: March 04, 2012, 05:03:52 pm
Bon j'ai placé PCKE à 0 ce qui devrait faire que le timer1 tourne à 16MHz

Sauf que sur ch1 pour 69 j'ai bien 340Hz, mais sur ch2 ... 122Hz ... smiley-yell

Voile la derniére version de mon code :

Code:
/*
 * TinySound - Simple, I2C controled, 2 channel music generator
 * Coded by SkyWodd <skyduino.wordpress.com>
 *
 * Based on arduino-playtune (http://code.google.com/p/arduino-playtune/)
 *      and miditones (http://code.google.com/p/miditones/)
 */

/*
 * ATtiny85 Fuses :
 * PLL Clock; Start-up time PWRDWN/RESET: 1K CK/14 CK + 4 ms; [CKSEL=0001 SUT=00]
 * Brown-out detection level at VCC=4.3 V; [BODLEVEL=100]
 * Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
 * Serial program downloading (SPI) enabled; [SPIEN=0]
 */
 
 /* Includes */
#include <avr/interrupt.h> /* For Timer Interrupt */
#include <avr/pgmspace.h>  /* For PROGMEM */
#include "usiTwiSlave.h"   /* For I2C Slave */
#include <avr/io.h>        /* For I/O usage */

/* I2C Node Address */
#define I2C_NODE_ADDRESS 0x20

 /* PinMapping Definition */
#define SOUND_OUT_1_BIT 3
#define SOUND_OUT_2_BIT 4
#define WORKING_LED_BIT 1

/* Usage Macro */
#define setLedOn() PORTB |= (1 << WORKING_LED_BIT)
#define setLedOff() PORTB &= ~(1 << WORKING_LED_BIT)
#define setLedToggle() PORTB ^= (1 << WORKING_LED_BIT)

#define setChan1On() TIMSK |= (1 << OCIE0A)
#define setChan1Off() TIMSK &= ~(1 << OCIE0A); PORTB &= ~(1 << SOUND_OUT_1_BIT)

#define setChan2On() TIMSK |= (1 << OCIE1A)
#define setChan2Off() TIMSK &= ~(1 << OCIE1A); PORTB &= ~(1 << SOUND_OUT_2_BIT)

/* Chromatic Frequency Table */
const uint16_t PROGMEM tune_freq[128] =
{
    16,17,18,19,21,22,23,24,26,28,29,31,33,35,37,39,41,
    44,46,49,52,55,58,62,65,69,73,78,82,87,92,98,104,110,
    117,123,131,139,147,156,165,175,185,196,208,220,233,
    247,262,277,294,311,330,349,370,392,415,440,466,494,
    523,554,587,622,659,698,740,784,831,880,932,988,1047,
    1109,1175,1245,1319,1397,1480,1568,1661,1760,1865,1976,
    2093,2217,2349,2489,2637,2794,2960,3136,3322,3520,3729,
    3951,4186,4435,4699,4978,5274,5588,5920,6272,6645,7040,
    7459,7902,8372,8870,9397,9956,10548,11175,11840,12544,
    13290,14080,14917,15804,16744,17740,18795,19912,21096,
    22351,23680,25088
};

/* Timer0 Interrupt */
ISR(TIMER0_COMPA_vect) {
    PORTB ^= 1 << SOUND_OUT_1_BIT;
}

/* Timer1 Interrupt */
ISR(TIMER1_COMPA_vect) {
    PORTB ^= 1 << SOUND_OUT_2_BIT;
}

/* Tune Channel to frequency */
void set_channel(uint8_t channel, uint8_t note) {
uint8_t prescalarbits;
uint16_t ocr, freq2 = pgm_read_word(tune_freq + note);

// make sure the note isn't too low to be playable
if (note < 12) return;  // ignore if so

    ocr = F_CPU / freq2 - 1;
    prescalarbits = 0b001; // ck/1
    if (ocr > 255) {

ocr = F_CPU / freq2 / 8 - 1;
prescalarbits = (channel == 1) ? 0b010 : 0b100; // ck/8
if (ocr > 255) {

ocr = F_CPU / freq2 / 64 - 1;
prescalarbits = (channel == 1) ? 0b011 : 0b111; // ck/64
if (ocr > 255) {

ocr = F_CPU / freq2 / 256 - 1;
prescalarbits = (channel == 1) ? 0b100 : 0b1001; // ck/256
if (ocr > 255) {

ocr = F_CPU / freq2 / 1024 - 1;
prescalarbits = (channel == 1) ? 0b101 : 0b1101; // ck/1024
}
}
}
}

if (channel == 1) {
TCCR0B = (TCCR0B & 0b11111000) | prescalarbits;
OCR0A = ocr & 255;
} else {
TCCR1 = (TCCR1 & 0b11110000) | prescalarbits;
OCR1A = ocr & 255;
}
}

/* Entry Point */
int main(void) {
/* Variables */
uint8_t channel;
uint8_t note;

/* Channels & Led Pin As Output */
    DDRB |= (1 << SOUND_OUT_1_BIT) | (1 << SOUND_OUT_2_BIT) | (1 << WORKING_LED_BIT);

/* Seting up Timer To CTC Mode */
/* Timer0 */
TCCR0A = 1 << WGM01;
TCCR0B = 1 << CS00;

/* Timer1 */
TCCR1 = (1 << CS10) | (1 << CTC1);
PLLCSR &= ~(1 << PCKE);

/* Stop Interrupt */
setChan1Off();
setChan2Off();
setLedOff();

/* Seting up I2C Slave */
usiTwiSlaveInit(I2C_NODE_ADDRESS);
sei();

/* Forever loop */
for(;;) {
/* If Data Sent Over I2C */
if(usiTwiDataInReceiveBuffer()) {
setLedToggle();
channel = usiTwiReceiveByte();
note = usiTwiReceiveByte();
switch(channel) {
case 0:
if(note == 1) {
setChan1Off();
} else if(note == 2) {
setChan2Off();
}
break;

case 1:
set_channel(1, note & 127);
setChan1On();
break;

case 2:
set_channel(2, note & 127);
setChan2On();
break;
}
}
}
}
3696  International / Français / Re: [c++] tableau de constantes dans class on: March 04, 2012, 04:51:38 pm
Bonjour,

Tu ne peut pas mettre d'initialisation dans la déclaration de ta classe.
Tu doit déclarer le tableau dans le .h, mais le remplir dans le constructeur de la classe.
3697  International / Français / Re: Attiny85 - pb timer & I2c slave on: March 04, 2012, 03:05:03 pm
Ouaip effectivement y avait une petite faute de frappe.

Par contre j'ai 30Hz pour note=69 au lieu de 440Hz et pour note=100 j'ai 900Hz smiley-eek
Ça passe d'un son trés grave à un son trés aigu sur une trés courte plage ... 90 -> 100Hz, 100 -> 900Hz ...

Je crois que mon probléme vient du fait que le timer1 utilise un signal d'horloge différent de timer0
D'aprés le datasheet timer0 utilise les 16MHz du cpu alors que timer1 utilise le signal en sortie de la PLL soit 64MHz (ou 32MHz j'ai pas trop compris !?).

Une petite idée de comment m'en sortir ?
3698  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 04, 2012, 12:00:10 pm
Moi de mon coté je continu de faire mon script pour dump les topic.

La partie récup d'une page web selon son numéro de page est ok.
Par contre je vais revoir la partie traitement des données, ma version à grand coup de regex est mégaaa leeenttte ... 12 secondes pour parser 1 topic ... ya 20 topic par page ... et 78 pages ...

Donc en résumé regex -> beautiful Soup
3699  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 04, 2012, 11:31:25 am
Je ne connaissais pas piwik, mais prés de 700 ms de latence çà ne me donne pas une bonne image  smiley-eek-blue
-> http://demo.piwik.org

A coté google analytics c'est rien ... vive big brother
3700  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 04, 2012, 11:18:48 am
Tient au passage :
Code:
<!-- Piwik -->
(...)
<!-- End Piwik Tracking Code -->

La team arduino utilise piwik ... et aprés ils se demandent pourquoi leurs serveur rament ...

http://stats.arduino.cc/piwik/piwik.php -> "SQLSTATE[08004] [1040] Too many connections"
3701  International / Français / Re: Accéder à une page sur serveur distant sans ip ? on: March 04, 2012, 10:01:55 am
Sauf que si je mets l'ip dans le navigateur j'arrive sur une page de free avec une erreur et pas sur mon site
C'est parce que les serveurs de free sont des serveurs mutualisé, la même ip hébergeur plein de site différent.
Tu doit spécifié le host: monsite.free.fr lors de la requéte sinon le serveur ne sait pas qu'elle site tu veut consulter.
3702  International / Français / Re: Accéder à une page sur serveur distant sans ip ? on: March 04, 2012, 09:52:41 am
Quote
Je reste sur le c*l ... tu as utilisé quoi comme IP pour retransmettre ta requête !?

J'ai fait un ping sur l'adresse de mon site, cela m'a retourné une IP, j'ai utilisé celle la.
Ok sur l'adresse de TON site, tu te connecte bien à ton site, donc tu ne passe pas par une ip de google par exemple pour demande la page.
3703  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 04, 2012, 09:39:11 am
Quote
Il suffit de parser chaque page du forum, et placer les résultat d'une série de regex dans une base de données type sqlite ou mysql.
Je n'y aurait même pas pensé !!! Mais cela sous entend d'externaliser le moteur ???
Externaliser le moteur et la base de donnée, ou avoir un accord d'accès à celle déja existante (on peut toujours rêver smiley-mr-green).
Externalisé -> avoir un controle total -> pouvoir optimiser selon NOS besoin.

Cà j'y avait déjà pensé, mais pour une toute autre utilité, celle du nettoyage du forum que nous commençons smiley-wink
A vrai dire, j'ai une flemmingite aigüe grave, même un simple pavuk me fait horreur en ce moment  smiley-mr-green Ainsi l'image récuperée aurait subie un traitement recursif.
L'avantage d'avoir une copie de travail c'est de pouvoir la journaliser, en cas d'erreur on ne touche jamais à l'original.
Et aussi de pouvoir envoyer des requête / script trés puissant pour manipuler les post très rapidement et de manière totalement automatisé.

Dans l'idée génerale, nous avions déjà évoqué les problèmes relatifs au moteur de recherche, même si il contient les options qui permettent une recherche spécifique, si nous pouvions faciliter son utilisation et le contenir au forum francophone, je suis 100% partant.
J'avais déja fait un client en java pour le forum korben .info, donc si d'autre membres sont partant pour ce lancer dans le projet pourquoi pas.


EDIT: J'ai renverser la mise en forme du forum, tout le design est basé sur des <table> <tr> <td>.

je suis en train de faire un script python qui va générer une bdd contenant les info suivante :
icône du topic,
nom du topic,
nom du membre rédacteur,
nombre de reply,
nombre de vue,
date du derniers post,
nom du membre rédacteur du derniers post,
lien vers le topic

En parallèle je vais faire en sort qu'il génère une table des membres avec les info suivante :
nom du membre, lien vers son profil

Affaire à suivre, pour le contenu des topics je verrais dans un second temps.

Problème que je viens de découvrir, il n'est pas possible d'avoir un avertissement en cas de post édité, je sait pas comment je vais faire pour détecter les éditions de post, enfin je verrai ça plus tard.

(Je suis sur le point de générer 1520 requêtes http, je vais devoir limiter le nombre de requêtes par seconde sinon je vais me faire tuer.)
3704  International / Le bar / Re: [Projet/Idée] Rendre le forum plus agréable pour tout le monde on: March 04, 2012, 09:38:18 am
C'est fait.

J'ai du mettre ton premier message en citation dans mon premier message, je n'arrive pas à changer les dates de créations, ce qui influence l'ordre des message dans le topic.
Ok no problém.
C'est ennuyeux quand même ce probléme de timestamp des post ... ça veut dire que tu ne peut pas fusionner deux topic sans que les post se mélange ?
Ce serait un truc à dire aux admin pour qu'il ajoute un fonction "timeshift" pour déplacer dans le temps tout une série de post.
3705  International / Le bar / nettoyage du forum et recherche on: March 04, 2012, 09:24:36 am
Ok, je vais faire un topic dédié.
Tu pourra déplacer les post à partir de ton post http://arduino.cc/forum/index.php/topic,94783.msg712996.html#msg712996 ?
Pages: 1 ... 245 246 [247] 248 249 ... 357