DAQmx : Synchronisation de deux compteurs

Bonjour,
Je commence à travailler avec DAQmx et je tombe sur un os. De multiples recherches un peu partout n'ayant pas résolu mon problème (pourtant simple), je me décide à envoyer un message sur ce forum.
J'ai un boîtier USB-6212 et je souhaite générer deux trains d'impulsions (en fait, une horloge et une impulsion de fréquence variable). L'impulsion a une durée égale à une demie période d'horloge et doit impérativement avoir son front montant alors que l'horloge est à son état bas.
Pour cela, je pensais utiliser les deux compteurs ctr0 et ctr1. J'arrive parfaitement à générer l'horloge et l'impulsion, mais seulement en mode de cadencement "Implicite (compteur)" et évidemment, elles ne sont pas synchronisées entre elles. Quand j'essaye de passer en mode "Horloge d'échantillonage", j'ai droit à deux erreurs selon le cas: l'une qui me dit que je n'ai pas le droit d'utiliser le mode "échantillons continus" et que je dois utiliser "point à point", et l'autre qui me dit que "point à point" n'est pas supporté.
Connaissez-vous un moyen de contourner le problème ?
Je joins mon vi (qui ne marche pas...).
Merci de votre aide et bonne soirée !
JB
Pièces jointes :
Essai_Synch.vi ‏29 KB

Bonjour et merci de ta réponse.
Je ne suis pas sûr de bien comprendre comment faire ce que tu dis. DAQmx a encore beaucoup de zones d'ombres pour moi... 
Dans le vi joint, j'ai essayer de faire ce que tu dis. Il fonctionne, mais les deux pulses ne sont pas synchrones.
Est-ce que STP tu pourrais le regarder rapidement et me dire si c'est bien ce à quoi tu pensais ?
Merci beaucoup !
JB
Pièces jointes :
Essai_Sync_3.vi ‏25 KB

Similar Messages

  • PCI-6602: deux compteurs

    Bonjour,
    J'ai une carte PCI-6602 et j'aimerais utiliser deux compteurs:
    - un compteur 0 dont la source (SRC0: PFI39) est reliée à un détecteur qui m'envoye des fronts montants que je veux compter
    - un compteur 1 dont la sortie (OUT1: PFI32) est reliée à la gate du compteur 0 (GATE0: PFI38).
    En fait, le signal doit être acquis avec la meilleure résolution temporelle possible et je dois convertir ce signal en nombre d'événements par seconde. Je dois donc savoir compter les évenements mais aussi savoir combien il y en a eu par seconde.
    J'ai un vieux code (que quelqu'un a généré au labo y'a 10 ans) que j'utilisait avec les anciens drivers. Je dois refaire un code similaire et du coup, j'aimerais coder ça proprement avec les drivers NIDAQmx.
    J'ai du mal à comprendre comment générer un code pour faire cela. J'ai tenté le VI d'exemple Count Digital Events Pause Trig mais je ne comprends tjs pas comment géré quand je veux le compteur 1 qui décide quand je compte les data du compteur 0.
    Merci pour votre aide.
    Sébastien

    Bonjour,
    Il semblerait que vous ayez oublié de joindre le code.
    D'autre part, quelles sont vos versions de LabVIEW, de DAQmx et de DAQ Trad installé sur vos deux machines?
    Voici plusieurs liens qui pourraient vous être utiles :
    Why Do I Receive Error 10401 When Using Traditional DAQ Compatibility VI's And My Old Program?
    Error -10401 When Running My LabVIEW Program (Unknown Device Error)
    AI Continuous Scan Gives Error 10401 When the Iteration Input is Used
    Cordialement,
    Jérémy C.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Synchroniser 2 tâches DAQmx

    Bonjour,
    J'ai apparemment un soucis qui a déjà été rapporté sur ce forum : il s'agit de synchroniser deux sorties (1 numérique et 1 analogique).
    cf. DAQmx : Synchronisation de deux compteurs
    Je pense avoir fait le tour de la librairie d'exemple et j'ai déjà passé beaucoup de temps à essayer différentes combinaisons de triggers... Rien n'y a fait, dans les meilleurs cas je constate de la sortie numérique est en retard de 1 à 5 ms (variable au cours de l'execution) par rapport à la sortie analogique.J'ai bien du mal à croire qu'il n'existe aucun moyen d'annuler ou même de fixer ce déphasage.
    Je vous joins une copie d'écran de mon diagramme. Je précise que je travaille avec LabVIEW 2009 (sous windows xp) et je dispose d'une carte NI USB-6259.
    Merci pour toute aide.
    Cordialement,
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    2011-07-29_105649.png ‏52 KB

    Bonjour Frosties,
    Dans votre application vous avez utilisé une horloge commune pour les deux tâches (analogique & digitale) externe ce qui signifie que l'horloge d'échantillonge sera sensiblement la même (avec une fréquence fixe). Cependant il vous manque un élément de trigger permettant de démarrer les deux tâches simultanément. Le temps de décalage que vous visualisez provient certainement du VI DAQmx Start qui ne s'éxecute pas parfaitement en même temps pour les deux tâches.
    Pour réaliser cette opération de synchronisation & déclanchement, je vous encourage à prendre connaissance de l'exemple ci-dessous:
    Synchronizing Analog Output and Digital Output Signals with DAQmx and LabVIEW
    https://decibel.ni.com/content/docs/DOC-5374
    Cordialement,
    Rémi D.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...

  • Synchronisation signal compteur

    Bonjour,
    Actuellement en stage, je dois faire un programme permettant la synchronisation
    de deux signaux distincts.
    Je travaille avec un Cristal liquide et une caméra. J'utilise la version 2012
    de labview ainsi qu'un boîtier NIDAQ9184 contenant les modules suivants: NI
    9401 ( qui sert de compteur) et NI 9263 ( qui sert à générer les signaux).
    Je voudrais que le signal généré pour trigger la caméra se déclenche à un
    moment bien précis et qu'il soit synchronisé avec la génération du signal
    envoyé au cristal liquide (CL). Le signal envoyé au CL est un signal carré
    (avec plusieurs paliers de tension) et modulé à 2kHz.
    L'objectif est d'envoyer un signal de front montant à la caméra afin d'acquérir
    des images. Lorsqu'on choisit un nombre d'image égal à 1, cela signifie que
    pour chaque palier de tension du signal CL, un pic de tension est envoyé à la
    caméra. Ces pics de tension (ou front montant) doivent être synchronisés avec
    le signal CL d'après une horloge commune.
    Dans un premier temps, on a tenté de visualiser les signaux: signal CL et
    signal CAMERA en sortie du module 9401 sur un oscilloscope: (référencé comme
    "génération des signaux CL et camera ok" dans le VI) et ça marche (l'horloge
    est présente (référencée comme "configuration de l'horloge" dans le VI))
    Puis nous avons tenté de rajouter un compteur (référencé comme "voie qui permet
    la communication avec la caméra" dans le VI) qui permet d'envoyer le signal à
    la caméra. cependant nous ne visualisons que le signal CL sur l'oscilloscope et
    nous n'arrivons pas à établir une communication efficace avec la caméra.
    L'erreur -201133 nous indique que la voie est déjà utilisée.
    Il me semble donc que le problème réside dans la façon dont je communique avec
    la caméra. Pourriez-vous m'indiquer si une erreur est présente dans le VI que
    j'utilise?
    Ci-joint les photos du boîtier nidaq ainsi que notre VI complet et un schéma de
    la synchronisation souhaitée.
    En vous remerciant d'avance
    cordialement
    Justine LETIEN 

    Bonjour,
    Voici un lien relatif à l'erreur que vous obtenez
    http://digital.ni.com/public.nsf/allkb/0495B7D5E2345DF386257730007EFD17?OpenDocument
     

  • Affichage temporelle de deux signaux cDAQ

    Bonjour,
    Tout d'abord je tiens à remercier les personnes qui vont répondre à mon problème.
    Premiérement je vous expose l'objectif de mon application, l'idée est de relever le temps de réponse/réaction d'une electrovanne, pour cela j'envoie (écriture) un signal de commande PWM à mon actionneur(electrovanne) et je fais l'acquisition (lecture) de la pression associée, j'utilise un CompactDAQ 9178 avec deux modules d'acquisitions et de commande (NI9239 et NI9269).
    Le problème que je rencontre est l'absence de toute notions de temps lors de l'acquisition (échelle de temps érroné) est cela malgré l'utilisation de Waveform Chart, et donc je ne  peux pas synchroniser les deux signaux pour savoir a combien de temps ma pression baisse lorsque j'actionne l'electrovanne par exemple.
    PS: code source en PJ
    Cordialement

    Bonjour,
    il ne faut pas configurer deux type entrées / sortie différent sur une même ligne de tâche. en allant sur aide/recherche d'exemple et en sélectionnant le vi se trouve sur ce chemin vous trouverez un exemple de configuration de sortie démarrant sur un trigger:  

  • Synchronis​ation des deux dispositif​s ??

    J'ai deux
    cartes d’acquisition  (NI DAQ Card 6024E  et NI USB-6009 OEM2) je voudrais savoir les étapes
    pour
    synchroniser les deux dispositifs (acquisition de données analogiques).
    Quelqu’un peut-il
    m'aider s'il
    vous plaît
    Connaissez-vous
    un exemple avec les deux dispositifs ??
    Merci
    Franco

    Bonjour,
    et merci d'avoir posté sur nos forums.
    La synchronisation de la 6024 avec la plupart des périphériques NI ne pose pas de problème, mais malheureusement, les cartes USB-6008 et 6009 font exception. Ces deux boitiers d'acquisition ne permettent en effet par l'importation d'une horloge sur les lignes PFI. Il est donc impossible de totalement synchroniser votre acquisition.
    Le mieux que vous puissiez faire est de partager un trigger entre vos deux cartes pour démarrer vos tâches simultanément. En spécifiant la même vitesse d'horloge sur les deux cartes, vous pourrez avoir une synchronisation "artificielle", mais seulement pendant un temps. Après cela, pour aurez probablement une dérive de l'une des horloges, provoquant une désynchonisation.
    Cordialement,
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Acquisition DAQmx read

    Bonjour,
    Je suis en train de réaliser une application qui fait l'acquisitionde deux signaux en sortie d'accéléromètre!!
    Mon problème est quand je fais le contrôle du bruit j'ai une erreur qui s'affiche (voir capture), et ça vients de mon DAQmx Read
    Les deux vi en piece jointe sont pour l'acquisition d'une des voies, et en faite j'ai exactement les mêmes pour l'autre voie j'ai juste changé la chaîne que je lis!!!
    Si vous avez une idée merci
    Arnaud
    Pièces jointes :
    Essai Projet final.zip ‏32 KB
    Acquisiton.JPG ‏15 KB

    Je viens d'utiliser ton vi qui marche plutôt bien!!! Par contre je vois pas trop comment faire pour indexer mon tableau!!
    Après mon traitement du signal, j'ai un 1D array of Cluster of 3 éléments et je sais pas comment choisir ma courbe a afficher!!!
    Pièces jointes :
    Affichage.JPG ‏192 KB

  • Camera raw dans CS6

    Bonjour,
    J'ai un souci dans Camera Raw : quand une image est ouverte et que je fais un premier réglage avec le curseur "exposition" avant de passer au curseur "contraste", le fait de toucher au curseur contraste semble valider mon précédent réglage au curseur "exposition" en le ramenant sur des valeurs entières comme -1, 0 ou +1 ; les valeurs intermédiaires comme 0,75  ne sont pas prises en compte. Le curseur revient à 0 dans ce cas là et si j'étais à +1,15, il reviendrait à +1.
    En essayant de résoudre ce problème, je m'aperçois que dans les métadonnées de Bridge, à la rubrique Camera Raw, la version du processus affichée est 6.7 alors que par Photoshop/A propos des modules externes/cameraraw, il m'est indiqué : le plug-in a une version 8.3  Est-ce normal et si cela ne l'est pas, comment peut-on synchroniser les deux versions ?
    Merci de votre aide,

    Double discussion: http://forums.adobe.com/thread/1402860?tstart=0

  • Ni 5133 compte front montant sens de rotation

    bonjour
    je cherche à réaliser un programme comptant le nombre de fronts montants délivrés par un codeur (60 stries) d'un volant de jeu ainsi que l'information du sens de rotation pour connaître à chaque instant la position angulaire du volant.
    J'utilise une carte NI-usb 5133 pour acquérir le signal (ni-scope) mais le programme que je réalise semble sauter des fronts et l'info sens de rotation change en permanence.
    Existe-t-il un programme sur lequel je puisse m'appuyer pour résoudre ce problème?
    merci
    Attachments:
    1.pdf ‏372 KB
    1.pdf ‏372 KB

    Bonjour,
    la carte USB 6211 intègre deux compteurs que vous pouvez configurer pour faire du comptage. Je vous adresse en pièce jointe un exemple.
    N'hésitez pas à consulter ce document sur la mesure d'encodeur :
    http://www.ni.com/white-paper/7109/fr/
    Il explique comment utiliser les compteurs pour faire de la mesure d'encodeur.
    Cordialement
    Guillaume D
    Pièces jointes :
    exemple compteur .vi ‏53 KB

  • PCI-6602 comment generer un signal non peridodique

    "bonjour,
    je voudrais simuler un signal non périodique et synchrone sur une seul des sorties de compteur de la PCI-6602.
    Cependant j arrive a simuler mon signal mais j utilise deux compteurs :
    pour cela j ai utilisé un des sous VI de multiple pulse train c est a dire "configure and arm counters phase(NI-TIO)(with phase delayed)"
    mais j ai enlevé le sous vi "counters start triggers "
    j'ai voulu synchronisé mon signal via un generateur externe dont j ai definie les parametres dans le diagramme de mon vi (numero de PFI).Puis j'ai décomposer mon signal en 2(voir attached files).Une fois que je suis arrivé a visionné mes signaux sur l'oscilloscope,
    j ai relier mes 2 signaux a une "porte ou" à 2 entrées.
    soit S
    la sortie de la porte logique on obtient donc:
    S = compteurs 0 ou compteur 1
    merci"
    Attachments:
    chronogramme_des_signaux.doc ‏22 KB

    Je ne parle plus le francais. Il y a 20 ans depuis je l'etudie. Je pense que je peux vous aider, mais seulement en englais.
    S'il vous plait, trouvez quelqu'un qui peut lire l'englais et expliquer mon reponse ici:
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=50650000000800000059CD0000&UCATEGORY_0=_32_%24_12_&UCATEGORY_S=0
    Bon chance!

  • Comptage front codeur ni6211

    Bonjour
    je cherche à faire l'acquisition et le comptage des fronts montant délivré par un codeur de volant de jeu vidéo ( obtenir l'angle et le sens de rotation)
    Avec la carte oscillo et aussi une carte ni6211, j'arrive à acquérir le signal mais je n'arrive pas à effectuer le comptage: j'ai un décompte mais très farfelu.
    Existe-t-il des applications qui permettent de réaliser ceci ou un programme..
    Voilà un des programmes que j'ai réalisé en simulation qui fonctionne dans une certaine mesure mais qui ne débouche sur rien quand je veux acquérir un vrai signal.
    ChF
    Pièces jointes :
    Simulation Codeur volant.vi ‏96 KB

    Bonjour,
    la carte USB 6211 intègre deux compteurs que vous pouvez configurer pour faire du comptage. Je vous adresse en pièce jointe un exemple.
    N'hésitez pas à consulter ce document sur la mesure d'encodeur :
    http://www.ni.com/white-paper/7109/fr/
    Il explique comment utiliser les compteurs pour faire de la mesure d'encodeur.
    Cordialement
    Guillaume D
    Pièces jointes :
    exemple compteur .vi ‏53 KB

  • PCI 6602 signal no periodic

    bonjour,
    je voudrais simuler un signal non périodique et synchrone sur une seul des sorties de compteur de la PCI-6602.
    Cependant j arrive a simuler mon signal mais j utilise deux compteurs :
    pour cela j ai utilisé un des sous VI de multiple pulse train c est a dire "configure and arm counters phase(NI-TIO)(with phase delayed)"
    mais j ai enlevé le sous vi "counters start triggers "
    j'ai voulu synchronisé mon signal via un generateur externe dont j ai definie les parametres dans le diagramme de mon vi (numero de PFI).Puis j'ai décomposer mon signal en 2(voir attached files).Une fois que je suis arrivé a visionné mes signaux sur l'oscilloscope,
    j ai relier mes 2 signaux a une "porte ou" à 2 entrées.
    soit S la sortie de la porte l
    ogique on obtient donc:
    S = compteurs 0 ou compteur 1
    merci""
    Attachments:
    chronogramme_des_signaux.doc ‏22 KB

    With this setting, the edges of the internal 20MHz timebase of the PCI-6602 are counted !
    Change Edge Source to /Dev1/PFI39 (--> CTR 0 source --> signal A of the encoder with your wiring) and try again.
    See page 3-7 of the user manual for the PFI numbers.
    Some examples ship with LabVIEW.
    Message Edité par JB le 03-13-2008 08:44 AM

  • Comment générer un signal carré de rapport cyclique très faible?

    Bonjour,
    je voudrais générer un signal carré dont la période est d'environ 5 secondes. Mais le rapport cyclique que je désire est de l'ordre de 0,7E-6 !!! Le problème est que si petites valeurs de rapport cyclique ne peuvent être réalisées avec les fonctions "Easy I/O for Data Acquisition" de CVI. Comment faire ?

    Bonjour,
    Au vu de ce que vous me dites, votre carte d'acquisition semble être une carte de la série E, ou du moins vous utilisez un compteur 24 bits.
    Or pour faire une période de 5s avec un rapport cyclique de 0,7E-6, vous devez utiliser une base de temps de 20MHz (disponible sur votre compteur 100KHz ou 20MHz). 5 secondes avec une base de temps de 20MHz correspondent à 100000000 counts, or votre compteur 24 bits, ne peut compter que jusqu'à 2E24, soit 16777216.
    Donc vous avez deux solutions, soit acheter une carte avec un compteur 32 bits (type PCI-6602, ou série M), méthode la plus simple, ou utiliser deux compteurs de votre carte. Dans ce dernier cas de figure, il vous faut générer un train d'impulsions de période 5s et rapport cyclique 0,5, et de se servir du front montant pour déclencher une impulsion simple "re-triggerable" sur le deuxième compteur. Voir la fonction "DelayedPulseGenConfig".
    Gianni Martinico
    NI France.
    Cordialement,
    Gianni Martinico
    NI France

  • Acquisition fréquence variable et basse fréquence

    Bonjour,
    Je suis débutant en LV et dois mesurer la vitesse de rotation d'un moteur qui ralenti. Pour cela, un capteur de vitesse
    me délivre un signal traité par une carte électronique. Un signal carré est issu de cette carte
    dont la fréquence est image de la vitesse de rotation du moteur (160 Hz => 1600 tr/min et 0 Hz => 0 tr/min).
    La carte électronique apporte quelque fluctuation de fréquence, j'utilise donc deux compteur large gamme
    pour mesurer la fréquence.
    Mon problème est le suivant:
    Mon objectif est d'avoir en "temps réel" ( juste une indication, pas de "vrai" temps réel)
    sur ma face avant la vitesse de ralentissement de mon moteur. Cela fonctionne lorsque celui ci tourne
    jusqu'à 150 tr/min environ (15 Hz) en dessous mon VI bloque et je viens même dépasser le time out fixé lors
    de l'acquisition. Il faudrai au moins que j'observe le ralentissement jusqu'à 10 tr/min.
    Si quelqu'un a une idée pour pallier ce problème.
    Par avance merci pour votre aide
    Vincent V.
    Pièces jointes :
    Ralentissement.vi ‏83 KB

    C'est toujours le même soucis quand on a (le grand plaisir) de rencontrer un débutant : 
    1) un Block Diagramme qui fait plusieurs écrans
    2) des dizaines de variables locales partout, partout 
    3) ... bravo !!!! ... tu es passé a côté de la 3eme chose qui caractérise un débutant .... les structures séquences    il n'y en a pas (ouf)
    Pourquoi utiliser toutes ces variables locales ???
    ... alors que tu disposes sur le Diagramme de toutes les informations .
    Pourquoi ne cables-tu pas directement sur le terminal correspondant ? (au llieu de RE-lire l'info via une variable locale)
    Je ne vois aucune gestion de l'erreur sur ton Diagramme.
    Tu as plusieurs noeuds de propriété "de réinitialisation" ... ces noeuds sont flottant !!!
    Qui te dis que cette "réinitialisation" se fera en début d'exécution et pas à la fin ?
    Avec labview, le séquencement du code se fait via le "flux de données" .... sans flux de données l'ordre d'exécution est inconnu.
    Cabler les entrées/sorties d'erreur permet d'établir un flux de données.
    La première chose :
    réduire ton code à UN écran (au passage, aligne, fait "du propre")
    supprime tes variables locales.
    crée un flux de données pour tes noeuds de propriété.

  • Alazar count edges synchronization

    Hello,
    We have an Alazar AT9350 of which the acquisition has to be synchronised with the acquisition of a Count-Edges channel on an NI-6259 DAQ board. Running them synchronously is easy, for we run the Alazar board with a trigger signal (50KHz) that we can route to the NI board as well. However, starting them synchronously poses more of a challenge. The original solution was to input the trigger on the NI-board and reroute it when the count edges VI starts. However, the board needs one counter to create the sample clock (or receive the trigger signal), and one counter to output the signal. This leaves no counter for the Count-Edges channel (our NI board has only two counters). 
    I have come up with a possible solution for synchronisation, but it is a bit ugly. I output the task just after the start task VI to an indicator, and create a local variable. I connect a read version of the local variable to the acquisition while loop of my alazar board. My assumption: because the while loop has to wait till all data flows have presented data to him, the while loop must start synchronously with the start task. The actual program is much bigger, that's why I'm using a local variable here. A direct wire is also possible, but it would look even uglier. 
    I have put a snapshot of a simplified version of my program as an attachment. I realise I am not actually saving any data or outputting what the Count-Edges reads, of course this is different in my real version. 
    Is my method viable or should I use a different method? (or perhaps it is viable, but I should still use a different method).  
    Solved!
    Go to Solution.
    Attachments:
    labview program.JPG ‏114 KB

    Dear GerdW,
    Thanks for your suggestions.
    [quote]Probably not "real time"… When you use DAQmx to read your input data you can synchronize input channels. Have you looked in the example VIs for that case? [\quote] I use an NI board with DAQmx drivers to acquire the Count Edges. I use an Alazar board with their own SubVI's for the other acquisition. Therefore I cannot use the DAQmx synchronisation (which would've been quite easy indeed). And indeed, by "real-time", I of course mean that the amount of data I process per second is the same as the amount of data that I acquire per second .
    I changed my example, hope I finally understood you well. I added a wait function to the loop that sends the notification. Otherwise the notification is sent on the same time, but there is still no synchronisation because the notifier is retrieved upon reaching the loop (and it essentially does nothing). To make sure I know when I start the two loops synchronously, I will add a high-resolution relative seconds to both loops and subtract them in another loop. If there is a better way to test synchronisation I'd happily take any suggestions. (Though perfect synchronisation is the best, one or two ticks off won't do much harm). 
    Attachments:
    MinimalExampleWhileLoopSynchronisation.PNG ‏14 KB

Maybe you are looking for

  • Boot from second hard drive with ZFS in Solaris 10 x86

    Hi, The usual menu.lst to boot Solaris10 x86 with a boot environment that contains a ZFS boot loader is this one title Solaris 10 5/08 s10x_nbu6wos_nightly X86 findroot (pool_rpool,0,a) kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS module /platf

  • Display a message while loading using EMBED tag

    Hi I am using an Embed tag to pull a pdf from the backend. the pdf files are huge so it takes time to load and I want a loading message to be displayed till the form is completely loaded, so i am using onload attribute of Embed tag, but i dont think

  • Importing Duplicate photos from backup cd's

    I just upgraded to iPhoto 6 and want to organize my many backup cds to dvd. Unfortunately , many contain duplicates. What is the easiest way to delete or prevent from importing dupes from cd's other than iPhoto diet, which isn't upgraded to iPhoto 6

  • Occasionally Connected LightSwitch HTML Apps Using JayData

    JayData, as many are probably aware from prior blog posts and discussions on this forum, is a powerful JavaScript utility library for OData providers, including LightSwitch.  Recently, the JayData developers have expanded the provider offerings to in

  • Dreamweaver CS4 Beta

    Has anyone else had trouble activating the CS4 Beta with their CS3 serial? Is the activation server having issues again? They have made some funky changes!