Very subtle DB corruption ?

Hello all,
    I'm experiencing what I call a very subtle bug. Subtle because there are no exceptions, no memory leak, not even an error message.
    My application uses BDB XML and it inserts, updates, removes and searches documents - pretty basic functionality. But after some time of use, my users are calling me saying the searches never return any results. I mean, they send a request, then it's sent to BDB, but it doesnt return.
    First I thought it was another memory leak, but memory cosumption is high as always, but it is stable at some point. Just for checking, I restarted the server and tried searching again - dog slow, no return, even with 600MB free RAM.
    The only solution was to run recovery, which I chose to do manually at this time (and I dont do it automatically yet). Started the server, and then it returns to its normal state.
     So, I can just wonder what can possibility cause this? The containers are getting corrupted (although no corruption messages appear)? My Environment is managed by this class:
package br.gov.al.delegaciainterativa.controles;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import javax.naming.LimitExceededException;
import br.gov.al.delegaciainterativa.utils.Dir;
import com.sleepycat.db.DatabaseException;
import com.sleepycat.db.Environment;
import com.sleepycat.db.EnvironmentConfig;
import com.sleepycat.dbxml.XmlContainer;
import com.sleepycat.dbxml.XmlContainerConfig;
import com.sleepycat.dbxml.XmlException;
import com.sleepycat.dbxml.XmlManager;
import com.sleepycat.dbxml.XmlManagerConfig;
public class EnvironmentInit {
    private Environment myEnv; // objeto ambiente
    private XmlManager myManager;
    private XmlManagerConfig managerConfig;
    private File envPath;
    private boolean ismyEnvOpen = false;
    private String nomeAmbiente;
    private String separador;
    private String envHome;
    private ArrayList containersAbertos;
    public EnvironmentInit(String envHome, String nomeAmbiente)
            throws Throwable {
        this.nomeAmbiente = nomeAmbiente;
        containersAbertos = new ArrayList();
        separador = System.getProperty("file.separator"); // pega o separador
        this.envHome = envHome + separador + nomeAmbiente;
         System.out.println(".EnvironmentInit:iniciar");       
        iniciar();
    public EnvironmentInit(String envHome, String nomeAmbiente, XmlManager mgr)
    throws Throwable {
        this.nomeAmbiente = nomeAmbiente;
        this.myManager = mgr;
        containersAbertos = new ArrayList();
        separador = System.getProperty("file.separator"); // pega o separador
        this.envHome = envHome + separador + nomeAmbiente;
        iniciar();
    private void iniciar() throws Exception {
        Dir.criarDiretorio(this.envHome); // cria o diretorio
        envPath = new File(this.envHome); // converte o caminho de String p/ File, requerido pelo construtor do Environment
        //System.out.println(envPath);
        if (!envPath.isDirectory()) {
//            System.out.println("Criando dir.. " + envHome);
//            Dir.criarDiretorio(this.envHome);
            throw new Exception(envPath.getPath()
                    + " does not exist or is not a directory.");
        try {
            EnvironmentConfig envConf = new EnvironmentConfig();
            //envConf.setCacheSize(50 * 1024 * 1024); //let default cache size.
            envConf.setAllowCreate(true); // If the environment does not
                                          // exits,create it.
            envConf.setInitializeCache(true); // Turn on the shared memory
                                              // region.
            envConf.setInitializeLocking(true); // Turn on the locking
                                                 // subsystem
            envConf.setInitializeLogging(true); // Turn on the logging subsystem
            envConf.setTransactional(true); // Turn on the transactional
                                            // subsystem - Passo 1 para setar transa??????es.
            //envConf.setLogInMemory(true);
            //envConf.setLogBufferSize(10 * 1024 * 1024); //100 Mbs de log. Logs são usados para recuperação do banco em caso de corrupção.
            envConf.setErrorStream(System.err);
            //envConf.setRunRecovery(true); // Roda o recovery automaticamente
            myEnv = new Environment(envPath, envConf);
            managerConfig = new XmlManagerConfig();
            managerConfig.setAdoptEnvironment(true); // autoriza ao XmlManager, quando for fechado, fechar tamb???m o ambiente
            //  managerConfig.setAllowAutoOpen(true); // autoriza a abrir um
                                                  // container automaticamente
            //managerConfig.setAllowExternalAccess(true); // acesso externo
            myManager = new XmlManager(myEnv, managerConfig);
            myManager.setDefaultContainerType(XmlContainer.WholedocContainer);
            ismyEnvOpen = true;
        } catch (DatabaseException de) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar - erro no banco");
        } catch (FileNotFoundException fnfe) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar - Config faltando");
        } catch (Exception e) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar  \n" + e.toString());
    //Returns the path to the database environment
    public File getDbEnvPath() {
        return envPath;
    //Returns the database environment encapsulated by this class.
    public Environment getEnvironment() {
        return myEnv;
    //Returns the XmlManager encapsulated by this class.
    public XmlManager getManager() {
        return myManager;
     * Reabre o container com as configura??????es j??? preparadas. ??? necess???rio
     * re-abrir posteriormente os containers
    public void reabrir() {
        if (ismyEnvOpen == false) {
            try {
                iniciar();
                //System.out.println(".EnvironmentInit: reabrir()");
            } catch (Exception e) {
                System.err.println("[erro] EnvironmentInit:iniciar - Erro ao tentar reabrir ambiente!");
                //e.printStackTrace();
    public String getName() {
        return nomeAmbiente;
    public void cleanup() throws DatabaseException {
        ismyEnvOpen = false;
        fechaContainersAbertos();
        try {
            if (myManager != null) {
                // myEnv.close(); // fechado automaticamente pelo myManager
                //myManager.close();
                myManager.delete(); //trocado pelo close() pois é mais seguro.
                ismyEnvOpen = false;
        } catch (Exception de) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar - N�o conseguiu fechar o banco");
        System.out.println(".EnvironmentInit:cleanup");
    private void registraContainerAberto(XmlContainer container) {
        containersAbertos.add(container);
    private void fechaContainersAbertos() {
        for (int i = 0; i < containersAbertos.size(); i++) {
            try {
                System.out.println(".EnvironmentInit:fechaContainer:" + ((XmlContainer) containersAbertos.get(i)).getName());
                ((XmlContainer) containersAbertos.get(i)).closeContainer();
                ((XmlContainer) containersAbertos.get(i)).delete(); //realmente garante o fechamento, destruindo o objeto associado.
            } catch (XmlException e) {
                System.err
                        .println("[erro] EnvironmentInit:iniciar - Erro ao tentar fechar container");
                e.printStackTrace();
        containersAbertos.clear();
    public XmlManagerConfig getXmlManagerConfig() {
        return managerConfig;
    public XmlContainer abrirContainer(String nome) {
        int ind = indiceContainerRegistrado(nome);
        XmlContainer container = null;
        if (ind >= 0) {
            //System.out.println(".EnvironmentInit:abrirContainer (j??? aberto) : " + nome + " - ambiente aberto!");
            return (XmlContainer) containersAbertos.get(ind);
        boolean existe = Dir
                .existeArquivo(envPath.toString() + separador, nome);
        try {
            if (!existe) {
                container = myManager.createContainer(nome);               
                System.out.println(".EnvironmentInit:abrirContainer (create) : " + nome + " - criando container");
                return null;
            } else {
                 System.out.println(".EnvironmentInit:abrirContainer - nome = '" nome "'");
                XmlContainerConfig conf = new XmlContainerConfig();
                conf.setAllowCreate(true);
                conf.setTransactional(true);
                 container = myManager.openContainer(nome, conf);
                //System.out.println(".EnvironmentInit:abrirContainer (open) : " + nome + " - ambiente aberto!");
            registraContainerAberto(container); // registra que o container foi
            // aberto
            return container;
        } catch (XmlException e) {
            e.printStackTrace();
        return null;
    public boolean removeContainer(XmlContainer c) {
        String path = null;
        try {
            path = envPath.toString() + separador + c.getName();
            //.closeContainer();
            c.delete(); //trocado pelo close acima por ser mais seguro.
            myManager.removeContainer(path);
            System.out.println(".EnvironmentInit:removeContainer : " + path);
            return true;
        } catch (XmlException e) {
            System.err.println("[erro] EnvironmentInit:iniciar - Erro ao tentar remover container ");
            //e.printStackTrace();
        return false;
    public int indiceContainerRegistrado(String nome) {
        try {
            for (int i = 0; i < containersAbertos.size(); i++) {
                XmlContainer cont = (XmlContainer)containersAbertos.get(i);
                if (cont.getName().compareTo(nome) == 0)
                    return i;
        } catch (Exception e) {
        return -1;
    Is there anything wrong with it, that could be causing this? Any help would be much appreciated.
thanks,
-- Breno Costa

Hello all,
    I'm experiencing what I call a very subtle bug. Subtle because there are no exceptions, no memory leak, not even an error message.
    My application uses BDB XML and it inserts, updates, removes and searches documents - pretty basic functionality. But after some time of use, my users are calling me saying the searches never return any results. I mean, they send a request, then it's sent to BDB, but it doesnt return.
    First I thought it was another memory leak, but memory cosumption is high as always, but it is stable at some point. Just for checking, I restarted the server and tried searching again - dog slow, no return, even with 600MB free RAM.
    The only solution was to run recovery, which I chose to do manually at this time (and I dont do it automatically yet). Started the server, and then it returns to its normal state.
     So, I can just wonder what can possibility cause this? The containers are getting corrupted (although no corruption messages appear)? My Environment is managed by this class:
package br.gov.al.delegaciainterativa.controles;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import javax.naming.LimitExceededException;
import br.gov.al.delegaciainterativa.utils.Dir;
import com.sleepycat.db.DatabaseException;
import com.sleepycat.db.Environment;
import com.sleepycat.db.EnvironmentConfig;
import com.sleepycat.dbxml.XmlContainer;
import com.sleepycat.dbxml.XmlContainerConfig;
import com.sleepycat.dbxml.XmlException;
import com.sleepycat.dbxml.XmlManager;
import com.sleepycat.dbxml.XmlManagerConfig;
public class EnvironmentInit {
    private Environment myEnv; // objeto ambiente
    private XmlManager myManager;
    private XmlManagerConfig managerConfig;
    private File envPath;
    private boolean ismyEnvOpen = false;
    private String nomeAmbiente;
    private String separador;
    private String envHome;
    private ArrayList containersAbertos;
    public EnvironmentInit(String envHome, String nomeAmbiente)
            throws Throwable {
        this.nomeAmbiente = nomeAmbiente;
        containersAbertos = new ArrayList();
        separador = System.getProperty("file.separator"); // pega o separador
        this.envHome = envHome + separador + nomeAmbiente;
         System.out.println(".EnvironmentInit:iniciar");       
        iniciar();
    public EnvironmentInit(String envHome, String nomeAmbiente, XmlManager mgr)
    throws Throwable {
        this.nomeAmbiente = nomeAmbiente;
        this.myManager = mgr;
        containersAbertos = new ArrayList();
        separador = System.getProperty("file.separator"); // pega o separador
        this.envHome = envHome + separador + nomeAmbiente;
        iniciar();
    private void iniciar() throws Exception {
        Dir.criarDiretorio(this.envHome); // cria o diretorio
        envPath = new File(this.envHome); // converte o caminho de String p/ File, requerido pelo construtor do Environment
        //System.out.println(envPath);
        if (!envPath.isDirectory()) {
//            System.out.println("Criando dir.. " + envHome);
//            Dir.criarDiretorio(this.envHome);
            throw new Exception(envPath.getPath()
                    + " does not exist or is not a directory.");
        try {
            EnvironmentConfig envConf = new EnvironmentConfig();
            //envConf.setCacheSize(50 * 1024 * 1024); //let default cache size.
            envConf.setAllowCreate(true); // If the environment does not
                                          // exits,create it.
            envConf.setInitializeCache(true); // Turn on the shared memory
                                              // region.
            envConf.setInitializeLocking(true); // Turn on the locking
                                                 // subsystem
            envConf.setInitializeLogging(true); // Turn on the logging subsystem
            envConf.setTransactional(true); // Turn on the transactional
                                            // subsystem - Passo 1 para setar transa??????es.
            //envConf.setLogInMemory(true);
            //envConf.setLogBufferSize(10 * 1024 * 1024); //100 Mbs de log. Logs são usados para recuperação do banco em caso de corrupção.
            envConf.setErrorStream(System.err);
            //envConf.setRunRecovery(true); // Roda o recovery automaticamente
            myEnv = new Environment(envPath, envConf);
            managerConfig = new XmlManagerConfig();
            managerConfig.setAdoptEnvironment(true); // autoriza ao XmlManager, quando for fechado, fechar tamb???m o ambiente
            //  managerConfig.setAllowAutoOpen(true); // autoriza a abrir um
                                                  // container automaticamente
            //managerConfig.setAllowExternalAccess(true); // acesso externo
            myManager = new XmlManager(myEnv, managerConfig);
            myManager.setDefaultContainerType(XmlContainer.WholedocContainer);
            ismyEnvOpen = true;
        } catch (DatabaseException de) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar - erro no banco");
        } catch (FileNotFoundException fnfe) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar - Config faltando");
        } catch (Exception e) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar  \n" + e.toString());
    //Returns the path to the database environment
    public File getDbEnvPath() {
        return envPath;
    //Returns the database environment encapsulated by this class.
    public Environment getEnvironment() {
        return myEnv;
    //Returns the XmlManager encapsulated by this class.
    public XmlManager getManager() {
        return myManager;
     * Reabre o container com as configura??????es j??? preparadas. ??? necess???rio
     * re-abrir posteriormente os containers
    public void reabrir() {
        if (ismyEnvOpen == false) {
            try {
                iniciar();
                //System.out.println(".EnvironmentInit: reabrir()");
            } catch (Exception e) {
                System.err.println("[erro] EnvironmentInit:iniciar - Erro ao tentar reabrir ambiente!");
                //e.printStackTrace();
    public String getName() {
        return nomeAmbiente;
    public void cleanup() throws DatabaseException {
        ismyEnvOpen = false;
        fechaContainersAbertos();
        try {
            if (myManager != null) {
                // myEnv.close(); // fechado automaticamente pelo myManager
                //myManager.close();
                myManager.delete(); //trocado pelo close() pois é mais seguro.
                ismyEnvOpen = false;
        } catch (Exception de) {
            // Exception handling goes here
            System.err.println("[erro] EnvironmentInit:iniciar - N�o conseguiu fechar o banco");
        System.out.println(".EnvironmentInit:cleanup");
    private void registraContainerAberto(XmlContainer container) {
        containersAbertos.add(container);
    private void fechaContainersAbertos() {
        for (int i = 0; i < containersAbertos.size(); i++) {
            try {
                System.out.println(".EnvironmentInit:fechaContainer:" + ((XmlContainer) containersAbertos.get(i)).getName());
                ((XmlContainer) containersAbertos.get(i)).closeContainer();
                ((XmlContainer) containersAbertos.get(i)).delete(); //realmente garante o fechamento, destruindo o objeto associado.
            } catch (XmlException e) {
                System.err
                        .println("[erro] EnvironmentInit:iniciar - Erro ao tentar fechar container");
                e.printStackTrace();
        containersAbertos.clear();
    public XmlManagerConfig getXmlManagerConfig() {
        return managerConfig;
    public XmlContainer abrirContainer(String nome) {
        int ind = indiceContainerRegistrado(nome);
        XmlContainer container = null;
        if (ind >= 0) {
            //System.out.println(".EnvironmentInit:abrirContainer (j??? aberto) : " + nome + " - ambiente aberto!");
            return (XmlContainer) containersAbertos.get(ind);
        boolean existe = Dir
                .existeArquivo(envPath.toString() + separador, nome);
        try {
            if (!existe) {
                container = myManager.createContainer(nome);               
                System.out.println(".EnvironmentInit:abrirContainer (create) : " + nome + " - criando container");
                return null;
            } else {
                 System.out.println(".EnvironmentInit:abrirContainer - nome = '" nome "'");
                XmlContainerConfig conf = new XmlContainerConfig();
                conf.setAllowCreate(true);
                conf.setTransactional(true);
                 container = myManager.openContainer(nome, conf);
                //System.out.println(".EnvironmentInit:abrirContainer (open) : " + nome + " - ambiente aberto!");
            registraContainerAberto(container); // registra que o container foi
            // aberto
            return container;
        } catch (XmlException e) {
            e.printStackTrace();
        return null;
    public boolean removeContainer(XmlContainer c) {
        String path = null;
        try {
            path = envPath.toString() + separador + c.getName();
            //.closeContainer();
            c.delete(); //trocado pelo close acima por ser mais seguro.
            myManager.removeContainer(path);
            System.out.println(".EnvironmentInit:removeContainer : " + path);
            return true;
        } catch (XmlException e) {
            System.err.println("[erro] EnvironmentInit:iniciar - Erro ao tentar remover container ");
            //e.printStackTrace();
        return false;
    public int indiceContainerRegistrado(String nome) {
        try {
            for (int i = 0; i < containersAbertos.size(); i++) {
                XmlContainer cont = (XmlContainer)containersAbertos.get(i);
                if (cont.getName().compareTo(nome) == 0)
                    return i;
        } catch (Exception e) {
        return -1;
    Is there anything wrong with it, that could be causing this? Any help would be much appreciated.
thanks,
-- Breno Costa

Similar Messages

  • Please help, very important file corrupt

    Hi,
    I am writing my final thesis, (more than 100 pages) and indesign crashed this moring while writing. Now the file can't open anyware anymore. I am using CS6 trial version, and even on other mac and pc it will not open anymore.
    How can I get my file back? Please help me..
    Thanks a lot!

    It's usually a bad sign when the file will no longer open even on another computer. Do you get any error messages?
    Find, and empty, the InDesign Recovery folder in your user library to keep ID from crashing over and over when it tries to open the bad recovery data. (The recovery folder is in the same folder where the InDesign SavedData file is stored, and the path information for your OS can be found in Replace Your Preferences Note that this folder is gong to be a hidden folder if you run Lion, so you need to display hidden folders in your search).
    Once that is done, start InDesign and use FIle > Open... to navigate to the original location where the file is saved. Tick the radio button to "Open as a COPY" and cross your fingers. If you are REALLLLLLY lucky it will open, and if it does, IMMEDIATELY export to .idml, then save the file with a new name as a backup, too. File > Open... and open the .idml file you just made, Save As to yet another name and you should be good to go.
    If it doesn't open, do you have any backup copies someplace? If not, you best hope is probably Markzware: Bad InDesign or Quark File Recovery Submission Form
    Now some advice on preventing this from happening again (though a crash is outside your control). First, never work directly off a removeable drive, if that's your habit. Copy the file to the hard drive, edit, then copy back to the removeable drive. Do a Save As from time to time to clear out the old, useless and inaccessible change data from previous sessions and reduce the file size. Make backup copies every day. If you do the save as each time you are done working, and add a versioning sequence to the name or something similar you take care of two birds with one stone.

  • Subtle knocking sound coming from right side of MacBook

    Since a few weeks my MacBook makes a very subtle but hearable knocking noise coming in irregular intervals from the right side (I put my ear on the MacBopk and waited). Coincidentally I did two things around the time the noise started: I bought a new hard drive (Western Digital Scorpio, 2.5", 8MB Cache, 250GB) and installed Leopard. Since the sound definitely comes from the right side it can't be hard drive related. According to Disk Utility the hard drive seems to be okay too.
    Since the only component with moving parts is the optical drive I suspect that this might be the source of the noise. The problem is, that it's not reproducable and only occours irregularly. Plus every disk I insert plays fine (there was one incident with a DVD of "Lost" which went to pause every minute or so without pressing any button though).
    Any suggestions? Thanks!

    Thanks for your answer, impulse_telecom. Unfortunately I really can't tell these operations apart (especially since this noise comes and goes without any special action ...) so I don't really know what the drive is doing when it's making the noise. The (relatively) good news is that it's been making this noise for about a month now and I haven't noticed any data loss or read/write errors. But it could also be that since my hard drive is 250GB it might take a while for these errors to pop up. Since Leopard my boot caches had to be updated twice (never saw that under Tiger) when rebooting and I don't really know if that's a good thing and/or related to this.
    I'll try and record the noise today and post it.
    (I wanted to mark your comment as helpful too but there seems to be a limit per thread/day ... sorry).

  • Illustrator CS4 exporting images with subtle grid overlaye

    I've run in to a rather troubling issue where Illustrator seems to be exporting images with a very subtle white grid overlay.
    The raw images do not have this grid, neither do the images as viewed in Illustrator.
    The grid appears when exporting as .png and .jpg in a variety of resolutions.
    Any ideas what's going on or how to remedy?

    The images were part of a web mockup that was created in AI.
    "Save for Web" did not change the outcome.
    I defaulted to Photoshop, which fixed my immediate problem.. but still does not answer my question as to why this is now happening when I have completed this process trouble-free numerous times before.

  • Aperture Library corrupted

    I have my 2007-08 Aperture Library on a external drive (2nd gen DROBO) with essentially all of my pictures as referenced files. A couple of days ago, I got a warning that said there was an inconsistency in the library and that I should do a consistency check. I did that, and after about 2 hours of VACUUM everything seemed to come back and was working fine. Yesterday, after exporting 600 images in three file formats to the Drobo, I got another inconsistency warning. I have started aperture with the command-option key down again and it still running VACUUM. Using Activity Monitor, Aperture seems to be doing something with Mach Messages Out, Mach System Calls, and Context Switches changing..going up.
    QUESTION: Is Aperture hung and not really do anything or is it still working away at a very nasty database corruption?
    If I get my database back, I will move it off the Drobo as I suspect (no proof) that there is something strange going on between their RAID structure and the continual updating of Aperture Library.

    OK...this is a remarkable story and I post it in case anyone else does a search on VACUUM, the software that seems to run when one does a consistency check.
    So I let the consistency check run overnight (CPU time was 13 hrs in Activity Monitor, but total elapsed time was about 24 hours. It was still running this morning so I decided to do a forced quit. Opened the Library on the Drobo drive and much to my amazement, it opened without difficulty and all the pictures were visible and it seemed fine.
    Having been spooked about what was happening to the AP Library (size 60 GB) on the Drobo when I exported files, under the Finder did a drag and drop of the Library over to my internal drive. Opened the Library on my internal drive and it successfully found all of my referenced pictures on the Drobo and seemed to function fine. Checked several of the projects and the few seemed ok.
    Have now done a SuperDuper backup of my internal drive to an external FW drive (part of the routine)
    Don't know whether the next time I do a large export to the Drobo whether I will have problems again with the Library, but I will provide an update to these notes in the future.

  • This is a Very Good Mastering App - Free!

    Hi there ...
    I recently discovered this app. I used it on my already mastered stereo GarageBand files and noticed a very professional result ...
    Especially on a funk number ... there is more punch, presence, and eveness of dynamics ... but not robbed of them ..
    It is very subtle and transparent ... but obviously quite powerful ...
    I have not yet used it on an umastered track ... but I assume the results would be even more dramatic ...
    It is a combination of compression .. normalization .. and limiting ...
    Have a look at ...
    http://www.jakeludington.com/downloads/20060930the_levelator_easy_audiooptimizer.html

    I'm working on a job app, and they ask for personal references, not former employers or family. This is kind of hard for me as I am putting internships, some volunteer work, my consulting down as experience. I have letters of recommendation from 2 clients, and one place I interned at (as the other is where I'm applying). 
    I'm just not sure what I should do for personal references maybe use a teacher or two from college, maybe a friend or classmate? A friend or neighbor maybe I did some small computer job for maybe? I don't know if I need to somehow make it tech related or they are looking more for something else in these reference.
    This topic first appeared in the Spiceworks Community

  • How to create subtle slowmotion from 30p to 24p?

    Hi,
    What's the best way to create a very subtle slowmotion from 30p to 24p in Motion? Is it to create a 24p project, import the 30p footage and then change the timing speed to 80%? Do I have to use any kind of 'frame blending'?
    Thank u very much for your answers!

    Select your imported video. In Properties > Timing... slow down the video Speed to 80%. You can apply a frame blending from the dropdown (if you want to... try them out!) but I don't see where you'd have to if the playback is 24p, unless you want to add the effect to the video (optical flow might be interesting).

  • Video on ipod nano very blocky: can someone help me with this issue?

    So the new ipod nano with 4GB is very nice, and video was a big reason I wanted it. Unfortunatelly, a few videos turn up very, very blocky and corrupted while they look smooth as ever on my computer screen in all it's MPEG4 glory. 2 minute video with file sizes as large as 10 MB end up looking like junk. But, even though I use the same file types (MPEG4) among all my videos, some videos work great while others don't.
    Is this a problem with my iPod and I need a new one?

    What type of videos are these? From DVDs, itunes, ect? Or lower quality stuff like Youtube? Are you using a program to convert video files so you can use them on your nano? If so what app? The nano and ipod classic seem to work best with the file format h.264 up to 640x480 res.
    lenn

  • Will subtle banding in gradient print?

    I apologize for yet another topic about gradients and banding, however i could not find a reassuring answer to my question.
    As you can see, my gradient created in InDesign shows (subtle) banding on screen, both in InDesign as in Acrobat.
    I know capable RIPs handle gradients in way that's optimized for the device to prevent banding as good as possible. But... are RIPs capable of producing better results than adobe's screen rendering?
    What's the best way?
    1. Trust the RIP, and send the pdf with "real" gradients (smooth shades are they called i believe) in the pdf.
    OR
    2. Recreate the gradient in Photoshop with dither, which makes it look perfect on screen.
    The printer handles files up to pdf1.7, so assume their RIP is capable of optimizing smooth shades.

    I got the results of the prints. The printed versions look almost identical, but there is a noticible difference:
    The real gradient:
    - shows banding on screen
    - shows NO banding in print! The gradient looks really clean.
    The photoshop dithered gradient:
    - looks better on screen (no banding)
    - no banding in print either, but a VERY subtle noise (the dither) is visible
    Conclusion (with this printer anyway): leave the gradient as a gradient!

  • Corrupted iTunes Song?

    I recently bought and downloaded Harry Belafonte's Day-O song from his "Island In The Sun" album. It plays beautifully up until the 2:37 mark when some audio anomoly occurs. It's very subtle and I wouldn't have noticed, except that at the 2:52 and 2:58 marks there is a very noticable skipping/scratching sound. I originally thought it was just a bad download, so I removed it from my library, deleted it, and redownloaded it from iTunes, but the anomoly remained.
    I wasn't sure about where or who to tell. I just thought someone at Apple should know about a bad song in iTunes.

    It is not a bad song.  It is a good song for which you were delivered a defective audio file.
    Contact iTunes Customer Service for a refund or replacement.

  • Repairing a Damaged / Corrupt .sparsebundle

    After spending a couple days searching around the internet for anyone having a similar problem and coming up almost empty handed, I've decided to make a post and see if anyone can help me.
    I made a Time Machine backup to an external drive back in November, November 11th to be exact (not that it matters). While all was fine and good, in the end I decided to not use Time Machine and delete the backup sparse bundle. Fast forward a bit to December 4th. It's been a month and I get on the train in the morning like I do every day, and open my Macbook - I'm greeted with a black screen; I reboot and get the dreaded 'folder with question mark' icon on boot. My MacBook's hard drive has died.
    I tried all sorts of restoration tools on the drive, and in the end decided that there was no way to get my data back, the drive won't even show as attached to a controller card in any machine I tried it on. Then I had an idea.. I remembered that I made and deleted a Time Machine backup a month earlier, and so I searched for some sort of undelete program. Long story a bit shorter, I was able to recover about 98% of the original sparse bundle file, with only 13 of the band files either damaged or missing entirely.
    Unfortunately it seems the sparse bundle format is very intolerant to corruption, because even though the majority of the bundle is intact I can't mount it in OS X at all. I managed to find this thread: http://discussions.apple.com/thread.jspa?messageID=6028077 which helped me to get the sparse bundle detected using Mac data recovery software, but that leads me to my next issue..
    When searching the drive for files using either Data Rescue II or TechTool Pro 4, it'll find the entirety of the directory structure in the sparse bundle, but whenever I try to recover files they're completely messed up. By messed up, I mean a jpeg file will show up with the correct filename, size, attributes, etc.. but the data will be from another file. For example, I might have a file named DCIM_002.jpg with a filesize of 42.2kb, and upon opening it in Preview it's "corrupt", when I open it in TextEdit I'll see for example, the contents of a XML file or a Readme file, even parts of another jpeg.
    It seems like all the information is shifted around because of the missing or damaged band files.
    Now using the aforementioned software, I can also do a recovery where it finds files by scavenging through the entire image and manually detecting file types, but this will result in a directory full of jpeg001.jpg jpeg002.jpg, jpeg003.jpg ... jpeg4012.jpg files, simply due to the large amount of pictures I had on the drive. The pictures aren't corrupt when I do this, but it'll take me months to restore my iPhoto library by this route - and that's just considering restoring my pictures, I still have other data I'd like to get back from this image.
    So I'm asking you guys if anyone knows of a method to get my data back from a corrupt sparse bundle. Maybe there's something I haven't tried, maybe there's a way to rebuild the image and my brain is just fried from messing with this stuff for a couple days. (I just bought a hard drive btw, that's why the Macbook died in December, and I'm just now making a post about it). Quite possibly, there might be no way to do what I'm asking, and this is my payback for not backing up on a regular or even semi-regular basis. Either way, I'm still somewhat hopeful. =)
    Thanks in advance to any who respond.

    Welcome to Discussions.
    Try asking on the the Using Mac OS X Leopard forum. You also might want to see if FileSalvage does a better job.
    File Salvage
    http://www.subrosasoft.com/OSXSoftware/index.php?mainpage=product_info&productsid=1

  • IOS4.0.x: I just don't understand. Please explain...

    ...how exactly the same hardware (give or take physical tolerences) loaded with exactly the same software, can run differently on everyone's phones?
    So many people are saying that they've lost this, lost that, this doesn't work, that doesn't work.
    Surely all phones should be exactly the same shouldn't they? It's exactly the same software going onto everyone's phone so, assuming there is no third party software interfering with the Apple processes, they should all behave the same way.
    Why do they not appear to be doing that?
    Just asking

    Surely all phones should be exactly the same shouldn't they?
    Assuming no defect, the hardware would be the same, yes, other than the size of the flash RAM. But some devices do indeed have hardware defects, some obvious and some very subtle; for instance, a small defect in RAM can cause all sorts of strange problems not easily traced to a specific hardware problem.
    It's exactly the same software going onto everyone's phone so, assuming there is no third party software interfering with the Apple processes
    That, however, is an assumption that it is incorrect to make. Very few people have exactly the same load of software, since few people have no third-party apps at all. And misbehaved apps, or corrupted cache or data files (which could occur even with nothing but Apple's software on the iPhone), can cause problems, something which has been well established by the number of people for whom restoring their iPhone as a new phone rather than restoring a backup has cured the problems being experienced.

  • PPT to Captivate 3: image import issue

    Hi,
    I'm creating a Captivate project by importing a PowerPoint
    2003 project. After I import them (but not in PowerPoint), some of
    the slides have weird images or words that show up. Sometimes
    there's a grey or black blob in the upper left corner, sometimes
    there's words like "class," "operations," and "situation," on
    various parts of the slide, and sometimes there's lines. I think
    they are something messed up in the code, but I'm not a programmer
    so I don't know how to access that or fix it.
    Has anyone ever encountered something like this? I've tried
    re-importing the slides, but that doesn't work. And, sometimes the
    images change, so I can't even just blot them out and call it good.
    Any help would be greatly appreciated.
    -Gretchen

    Well, I figured out that the PowerPoint file had a very
    subtle corruption that was fixed by basically extracting the
    content and pasting it into a new PowerPoint project. Converting it
    to Captivate, everything then showed up just fine.

  • Unable to pair Apple Remote App with iTunes

    I am running a Toshiba Satellite L505D-S5965 with Windows Vista SP 2. My iTunes software is 8.2.1.6, and my iPhone 3GS is running OS 3.0.1 (7A400). Both the Satellite and iPhone are connected to the same WiFi local network, and yet the App "Remote" by Apple Software is unable to communicate with iTunes to allow the entry of the four digit code to establish control of the iTunes library. Shortly after purchasing the iPhone 3GS I purchased the Satellite, but in the couple of weeks between the purchases the Remote App worked fine on my Gateway running Windows XP SP2. I have been through Apple Telephone support twice, and have really run one of the technicians through the mill researching possible solutions. I have visited an Apple Store Genius, who could find no reason for the problem. The iPhone and Remote App worked perfectly well on the store's WiFi and Mac, but his iPhone also wouldn't work with my laptop. I have been through Kaspersky's technical support system to ensure that there isn't a firewall issue. They have assured me, after reviewing logs from my laptop, that this is not the case. I even went so far as to uninstall all my Kaspersky product, but the Apple Remote App still would not function properly. I have updated the router's firmware, and checked that the laptop's wireless card is running the latest driver. At this point I can't think of anything else to try but would really appreciate any suggestions. Thanks, Steve

    Monday 7th Jan.
    Just to say that Apple did call me this am to discuss the problem on foot of a call I made last week.
    In the meantime the remote worked with both a 2007 IMac and a 2009 laptop but not on the m-mini.
    When I tried  pairing this morning during the call by pressing Menu and next together it paired.
    The change is very subtle, it just says paired in the advanced section of the security et sl section as referred before, with a fleeting 2 intersecting rings icon.
    The big difference is that Front Row is gone....
    The remote only works to a limited degree within some apps such as iTunes and iPhotos.
    In theory it controls the volume in iTunes but as of now for me  it doesnt....:( need to look more.
    As to what the problem was:
    It seems there is a set of keyboard combinations that can be used to force a  reset the ID of the remote, the suggestion is  MAYBE that by getting it to work on the iMac and laptop in some way reset the ID.
    This stuff  is WAY beyond my skill level:)
    I did impress upon Apple the need to look at the issue in threads like this....
    Message was edited by: qazxsw52

  • Why is it not possible to access lightroom catalouge trough a Network (ready nas)

    As the Topic title says why i can´t use My LRM Catalouge when it´s hosted on my Network hard drive or why I can´t create a catalouge an an Network Share (ready Nas)
    With friendly Regards
    Colin

    No, it will not work ever as long as the database of LR is SQLite.
    This is said to be very vulnerable against corruption in case of short link outages during write commands.
    On the other hand changing the DB underneath LR seems not to be easy either.
    There are some requests in the feature request forum around that topic, e.g. http://feedback.photoshop.com/photoshop_family/topics/multi_user_multi_computer.
    Add your vote if you agree with the proposal.

Maybe you are looking for