Article: Lenovo collects data to use on ThinkPad and ThinkCentre, ThinkStation PCs

Hello

I have concerns about this article which shows on Slashdot.org.

"Suite of blunders of Lenovo on the Superfish malware and the modified BIOS, Michael Horowitz to ComputerWorld reports he bought a refurbished ThinkPad includes Lenovo spyware in the guise of"Customer Feedback"." "After some searching around, he found the following in a document of support:" Lenovo said here that all ThinkPad and ThinkCentre ThinkStation PCs, running Windows 7 and 8.1, can download "non-personal and non-identifiable information on the use of software applications Lenovo" to 112.2o7.net. ""

I always trust that Lenovo grab/use my personal information, but I don't like that one my information "not private" are shared Omniture for them to make money without asking for it, when I paid full retail for this machine price.

For now I'm 'Customer experience Lenovo' UN-installing my machine program and deleting:

-C:\Program Files (x 86) \Lenovo\Customer program feedback.

-C:\Program Files (x 86) \Lenovo\MetricCollectionSDK

- and any trace of 'Lenovo.TVT.CustomerFeedback.Agent.exe '.

I hope that this does not affect the performance of other software from Lenovo.

I know a lot of people said "who cares, it's just to share some silly information", but in my case, my choice is not not to share it.

Concerning

Hi Martin,

Thanks for your questions on this topic.

Lenovo released an official statement here

Tags: Lenovo Products

Similar Questions

  • collecting data by using Multi DAQ and computer

    I use a USB-6251 and a 2.00 GHz Dell Latitude 2 Duo CPU 1.95 GB RAM

    How the computer affects the speed, samples can be processed after the acquisition of data collection the data? I looked up the specs on the data acquisition card and it can taste

    • 16 analog inputs (16-bit), 1.25 MECH. / s single-channel (aggregate of 1. MECH / s)

    I take an analog input, which is the voltage of a photodiode reading. I've got the assist DAQ making 40 000 samples to 20,000 per second.

    I'm not quite firmilar to know how everything works and what are my limits?

    What is the max I can sample using this material I have and do a FFT of the information?

    Hi Tony88a,

    Welcome to the forums EITHER!  While it would be difficult to put an exact number on the rate, you can process the data on your computer, you shouldn't have a problem reading the 40 000 samples at 20 kHz.  Essentially, you must ensure that your loop that calls the DAQmx reading runs fast enough to track incoming data.  If you read 40 000 samples at once and are sampling at 20 kHz, this means that the loop must run once every two seconds which should not be a problem.  Don't forget that the rate of the loop will be not quite compatible, unless you use a real-time operating system.

    For further clarification, you could taste all the way up to 1.25 MS/s (if you use a single channel) specced on your map.  If the use of multiple channels, you can enjoy all the way up to 1 Mech. / s divided by the number of channels you get.  Of course, you would need to increase the number of samples you purchase per call to maintain an appropriate ratio if the loop cannot follow.  Perform an FFT on a larger block of data will take more time, so that would be another consideration.

    You can consider using the architecture of producer/consumer to shift processing outside of your loop.  This will benefit from multi-cores of your CPU and allow the DAQmx read the function to run more frequently inside its own dedicated loop.  If you have any questions on this subject, be sure to let me know.  Thanks for posting and have a great day!

    -John

  • I get an error (twelve updates), trying to update CS5 Master Collection.  I used the chat and was told to come here.

    I get an error (twelve updates), trying to update CS5 Master Collection.  I used the chat and was told to come here.

    update directly, http://www.adobe.com/downloads/updates/

  • Automation and scripts data flow using ODI API AND SDK in Oracle Data Integrator (ODI) 11g

    Hi team,

    We have a requirement of scripts and automation of stream using ODI API and SDK. The requirement must use source ODI API and SDK to target cards in Excel (mapping map) is read and can use the SDK to create interfaces for Excel sheets. I am a novice to Groovy and Java script. Please help me on what should be the approach.


    I am able to create individual objects of ODI as 'Projects', 'Models', 'Interfaces' and 'Packages' by using the 'Groovy' editor that comes with ODI 11 g.

    Thank you very much in advance!

    Best regards

    Dos Santos.

    Take a look at the post by Dave Allen who will in the sense of what you're trying to achieve:

    https://blogs.Oracle.com/warehousebuilder/entry/odi_11g_interface_builder

  • Need to collect data every hour

    Hello

    I'm relatively new to labVIEW and need help with this particulare VI. It is configured to collect data of vibration at noon and midnight. What I need to be able to have it changed so I would be able to collect data from every 1 hr. And eventaully I want to collect every 4 hours. Any help would be appreciated.

    I would be created something like this:

    The seconds time lets get a cluster of the time.  We just need the hours, Minutes and seconds of the cluster.  For the hours, use the Quotient and remainder divided by what you increment.  Add remaining with the seconds and minutes.  If the sum is 0, then you can start your recording.

  • How to collect data on the programs of LabView and VC ++ at the same time?

    Hello

    There are two programs in LabVIEW and another is in VC ++. The two programs to collect hardware data.

    Therefore, for the experience, it is necessary to begin to collect data at the same time and lag must be

    less than millisecond (it is essential for the experience). How can this be achieved? BTW, I'm new to LabView.

    I think on the use of network socket to get the message for both applications.

    I was wondering if there is a better way.

    Thank you.

    MARK002-MAB wrote:

    Hello

    There are two programs in LabVIEW and another is in VC ++. The two programs to collect hardware data.

    Therefore, for the experience, it is necessary to begin to collect data at the same time and lag must be

    less than millisecond (it is essential for the experience). How can this be achieved? BTW, I'm new to LabView.

    I think on the use of network socket to get the message for both applications.

    I was wondering if there is a better way.

    Thank you.

    You do not say if two programs access the same material, but I guess not. Because if they did, you probably get conflicts when the two programs try to access the same material at the same time.

    In either case, the only really reliable way to ensure that your needs of< 1ms="" would="" be="" hardware="" triggering.="" one="" hardware="" unit="" is="" programmed="" to="" provide="" a="" hardware="" trigger,="" typically="" a="" digital="" signal="" and="" the="" other="" is="" programmed="" previous="" to="" the="" desired="" start="" point,="" to="" wait="" for="" that="" trigger="" and="" start="" automatically="" when="" it="" is="" received.="" if="" both="" hardware="" units="" are="" ni="" daq="" cards="" you="" can="" do="" that="" fairly="" easily="" using="" the="" rtsi="" bus="" or="" in="" case="" of="" pxi="" the="" pxi="" trigger="" lines.="" if="" they="" are="" different="" hardware="" then="" it="" can="" get="" more="" complicated="" to="">

  • Create a data streaming from C++ stream and read it in LabView

    Hi all.

    I'm working on a project that is to connect to a tracker of movement and reading data of position and orientation of this in real time. The code to get the data is in c ++, so I decided that the best way to do it would be to create a c++ DLL that contains all the functions necessary to first connect to the device and it reads the data and use the node to call a library function to power the Labview data.

    I have a problem, because, ideally, I would like a continuous flow of data from the code c ++ in Labview, and I don't know how to do this. Put the node function of library call for a while loop seems like an obvious solution, but if I do it this way I'd have to reconnect to the device whenever I get the data, which is quite a bit too slow.

    So my question is, if I created c ++ function that creates a data stream, could I read that in Labview without continually having to call a function? I would rather have only to call a function once, and then read the data stream until a stop command is given.

    I'm using Labview 2010, version 10.0.

    Apologies if the question is badly worded, thank you very much for your help.

    Dave

    dr8086 wrote:

    This method resembles an excellent suggestion, but I have a few questions where I don't think I understood fully.

    I understand the basic principle is to use a call library function node to access a DLL that creates an instance of the device object and passes a pointer too in labview. Then a separate call library function node would pass this pointer to another DLL that could access the device object, update and read the data. This part could be in a while loop, then continue on reading the data until a stop command is given.

    That's all. I'm including some skeleton for example code. I am also including the code because I don't know how you experience multi threading so I show how you can use critical sections to avoid interactions between threads so that they do not lead to questions.

    // exported function to access the devices
    extern "C"  __declspec(dllexport) int __stdcall init(uintptr_t *ptrOut)
    {
        *ptrOut= (uintptr_t)new CDevice();
        return 0;
    }
    
    extern "C"  __declspec(dllexport) int __stdcall get_data(uintptr_t ptr, double vals[], int size)
    {
        return ((CDevice*)ptr)->get_data(vals, size);
    }
    
    extern "C"  __declspec(dllexport) int __stdcall close(uintptr_t ptr, double last_vals[], int size)
    {
        int r= ((CDevice*)ptr)->close();
        ((CDevice*)ptr)->get_data(last_vals, size);
        delete (CDevice*)ptr;
        return r;
    }
    
    // h file
    // Represents a device
    class CDevice
    {
    public:
        virtual ~CDevice();
        int init();
        int get_data(double vals[], int size);
        int close();
    
        // only called by new thread
        int ThreadProc();
    
    private:
        CRITICAL_SECTION    rBufferSafe;    // Needed for thread saftey
        vhtTrackerEmulator *tracker;
        HANDLE              hThread;
        double              buffer[500];
        int                 buffer_used;
        bool                done;       // this HAS to be protected by critical section since 2 threads access it. Use a get/set method with critical sections inside
    }
    
    //cpp file
    
    DWORD WINAPI DeviceProc(LPVOID lpParam)
    {
        ((CDevice*)lpParam)->ThreadProc();      // Call the function to do the work
        return 0;
    }
    
    CDevice::~CDevice()
    {
        DeleteCriticalSection(&rBufferSafe);
    }
    
    int CDevice::init()
    {
        tracker = new vhtTrackerEmulator();
        InitializeCriticalSection(&rBufferSafe);
        buffer_used= 0;
        done= false;
        hThread = CreateThread(NULL, 0, DeviceProc, this, 0, NULL); // this thread will now be saving data to an internal buffer
        return 0;
    }
    
    int CDevice::get_data(double vals[], int size)
    {
        EnterCriticalSection(&rBufferSafe);
        if (vals)   // provides a way to get the current used buffer size
        {
            memcpy(vals, buffer, min(size, buffer_used));
            int len= min(size, buffer_used);
            buffer_used= 0;                 // Whatever wasn't read is erased
        } else  // just return the buffer size
            int len= buffer_used;
        LeaveCriticalSection(&rBufferSafe);
        return len;
    }
    
    int CDevice::close()
    {
        done= true;
        WaitForSingleObject(hThread, INFINITE); // handle timeouts etc.
        delete tracker;
        tracker= NULL;
        return 0;
    }
    
    int CDevice::ThreadProc()
    {
        while (!bdone)
        {
            tracker->update();
            EnterCriticalSection(&rBufferSafe);
            if (buffer_used<500)
                buffer[buffer_used++]= tracker->getRawData(0);
            LeaveCriticalSection(&rBufferSafe);
            Sleep(100);
        }
        return 0;
    }
    

    dr8086 wrote:

    My main concern is that the object can get out of memory or be deallocated since it would not take place to any namespace or whatever it is.

    As you create the object with the new, the object expire not until the dll is unloaded or the process (LabVIEW) closes. If the object will remain valid between condition LabVIEW dll calls not a not unload the dll (who does if the screws are closed). When that happens, I don't know exactly what happens to the active objects (that is, if you forgot to call close), I guess the system recovers the memory, but the device could still be opened.

    What to do to make sure that everything is closed when the dll before I could call unloads close and remove the object is whenever I create a new object in the dll that I add to a list when the dll is unloaded, if the object is still on the list, that I'm deleting it.

    dr8086 wrote:

    I also have a more general question of programming on the purpose of the buffer. The buffer would essentially be a large table of position values, which are stored until they can be read in the rest of the VI?

    Yes, see the code example.

    However, according to the frequency with which you need to collect data from the device you have this buffer at all. That is, if take you a sample on every 100ms, then you can remove all threads and buffer related functions and instead to read data from the read feature itself like this:

    double CDevice::get_data()
    {
        tracker->update();
        return tracker->getRawData(0);
    }
    

    Because you need only a buffer and a separate if thread you collect data at a high frequency and you can not lose any data.

    Matt

  • My verse ATT modem (non apple devices to use this modem} is connected to the ATT line, Time Capsule (iPhones, Macs Time Capsule use) via ethernet Uverse.) Non apple devices can collect data from iPhones or Mac using the time Capsule?

    My verse ATT modem ({use of devices not apple wifi of this modem} is connected to the ATT line, Time Capsule (iPhones, Macs use the wifi of the time Capsule) and connect to the Uverse modem via ethernet.)

    Both devices are set to the highest security and each uses separate passwords.

    Non apple devices can collect data from iPhones or Mac using the time Capsule?

    With a bit of work by someone who knows how to do such things, not Apple computers could read some files on the Mac if file sharing is configured on the network... devices non-Apple and... He knew the device passwords or administrator for Macs.

    Mac could also play the files on other Macs if file sharing has been implemented and the device password or admin was known.

    If you ask if a PC can read the files on the Time Capsule, the answer is Yes, without doubt, assuming that the PC knew the password of device for the time Capsule.

  • Strange behavior when using Labview to collect data from Tektronix oscilloscope tds8200

    I hit a wall in trying to understand this one. The problem I have is that my application will not start the oscilloscope when it should.

    I use an oscilloscope Tektronix TDS8200. My goal is to collect data from the oscilloscope using Labview waveform. First of all, my program initializes and configures the oscilloscope; This part of the program works very well.

    The second part of the program begins the acquisition of data with the function 'Tktds8k Start or Stop Aquisitions.vi', which is to press the button run on the scope. The function "tktds8k to Waveform.vi" is used and should ideally return data, which I connected to a waveform playback graph.

    When I run my program, the first part runs without a problem, but as soon as the program comes to the service get the waveform, the run button in the scope, which is green when running, turns off; the program then expires, and no data is collected.

    Here is where it gets weird. I went through the debugging to try to understand this point, and I put breakpoints on the beginning and get shape wave functions so that I could scroll through the last part of the program. The program continues with the departure function, and the button run in scope is green. The breakpoint for the function get the waveform is reached and when I press on continue, turns the Run button and turns it off then back on almost immediately. data are collected, the waveform graph appears and the program ends without error.

    I thought that the timetable could be the problem, so I did the program wait as long as five seconds between the functions of start and get the waveform and that did not work. I also tried to move the start function to before the configuration functions and remove start completely; no method worked.

    is there any ideas on why, the program works when I enabled breakpoints and isn't when breakpoints are disabled? I'm sure there is an easy solution, but I was not able to find a solution.

    I have attached a pdf that contains information about the functions of the Oscilloscope (tktds8k.pdf), and I have also attached my program.


  • Data Modeler: how to create and use the collection type

    Hello
    essentially of departure I don't understand how (for example) create and use the data based on the type of data varray type.

    Please notify.
    Thank you
    Andrew

    Hi André,.

    You can create new types of collection (varray/table) in two ways:
    (1) in the browser - find 'Types of data' > 'Types of Collection' node menu dropdown - there just 'create new collection type' it
    (2) in the types of data model diagram - you can create collection "some type structured" or collection of references to the it - use 'new Collection... '. "tool and click first on sight structured type and after the structured type that will contain the collection - new attribute is added to the latter and if there is none this type of collection already didn't set the new collection type are created and you can change it later.

    Philippe

  • Collect data from specific frequency of the power spectrum

    Hello

    I want to know how to collect data from specific frequency of power spectrum file. I'm trying to separate data from specific frequency of the original file.

    This will depend on much how your data is stored. You will need a way to read the file in LabVIEW and then a way to identify the data you want. I often record data in a .csv file, then I use "Reading worksheet" to get the data in a table. Then, you can simply use 'Index Array' to get the datapoints you need.

  • How to start collecting data through digital triggering entry user GOLD

    Hello

    I have a vi with which I would like to collect data. It is configured to start to perceive when the start trigger is detected, which works perfectly, but I would also create a user can start the process of data collection by pressing a button instead of apply the trigger. I am at a loss on how to do it. I thought that the structure of the event would work well; However, the relaxation has no Boolean value I can associate it with. If that were the case, I could then perform a logical comparison between the trigger and the button to determine if the collection of data should begin.

    So, how can I represent a trigger activated as a Boolean value? Or is there a better way to reach my goal?

    I think I can make things clearer by expressing in linear programming that it is, I'm trying to achieve:

    If (trigger == true: button == true) {}

    begin to collect data

    }

    I have attached my vi where someone feels useful.

    Hello

    You're right, 6229 USB is certainly not compatible with NO-Sync. However, you should be able to do with the DAQmx driver functions.

    If I understand correctly, you want to generate a graph of your analog input and have this file based on a triggered event entry. A line using PFI will not work for this particular function, but you can create a task digital input instead and pass the thread to a D e/s instead of a PFI line line. You can then use for/no-write the analog input file using a case structure depending on the State of the digital line.

    I hope this helps! Let me know if you have any other questions.

  • get comments while collecting data

    I have a program which collects data in the lab and displays on the screen as he goes.  I want to add a comment feature, so that if the user sees something interesting she could click on "Comment" and add a comment that will be saved in a text file at the end of the session of data acquisition.  I would like to 'time stamp', comment by using the time (since the beginning of the acquisition) when you press button "comment."  So, I wrote a piece of code (enclosed) test, that does not work as you wish.  When the code begins, he's waiting for the user to start a timer (data acquisition would begin at this point, the full blown program).  Then start the timer, and the program waits for the user to click on 'Stop' and then displays the time elapsed between start and stop.  At least it is supposed to work this way.  While he waits for the shutdown, it monitors the "Comment" button and gets user input if the comment is.  He adds the time current for the comment by the user, as you wish.  It's just, the program pays attention to the comment button and does not pay attention to the Stop button. This program does not stop when the user presses Stop.  I want to enable zero, one or more user comments in the period between 'Start' and 'Stop '. What should do?  Thank you.

    Try running this execution highlighting (icon in the toolbar "bulb") and you will see what happens.  Your code is, in fact, attentive to the stop button - just not when you want.  If you click on 'Stop' and then click on the "Comment" button, you will find that your code stops as expected.  The problem is that your inner while loop (check the 'Comment' button) runs continuously, and the code checks the condition of the outside loop while (the one that is connected to the "Stop" button) until the inside while the loop ends.

    A better solution would be to eliminate all the structures of the sequence and all nested in loops and replace it with a single while loop.  Inner loop while could check to the Stop button to terminate the loop and the code to manage the comment function within a structure of business wired to your comment button.

  • LabVIEW 'Summary' Collecting data points

    Hi all

    I am currently using LabView for my project of end of studies to the University of Amsterdam. The installation is with LabView, I do a HP 33120 A function generator transmit a Gaussian pulse in a material through the electric Piezo transducers and these sensors also collect the signal. It is then amplified by a physical Accaustics 1220A preamplifier to transfer the signal in an oscilloscope Tektronix DPO2014, which transfers in Labview data points again.

    The time of the collection is set to 125000 points, and that is the problem. It used to work perfectly, but now that she sees another 125000 points of data, of which only 3000 points contain the entire signal. The rest is sort of 0. In other words, the usual response of 125,000 points is now summarized in 3000 points.

    Do you have an idea what could be the problem? Or the solution?

    With sincere friendships.

    Matthijs

    I've added a PDF file with the explanation of the VI that I use.

    Solution is found. Apparently with windows update the drivers of the oscilloscope has changed. So: Problem solved!

  • Almost any time I use the usb climb on my computer (with flash or ipod players) it freezes and crashes windows. I am up to date with drivers with Microsoft and HP, what can I do to stop this?

    I have no problem with the usb drives but in recent times, this happens all the time.  I can go into Device Manager and uninstall my usb drivers and allows that, sometimes, but it's a temporary solution.  I am up to date with drivers with Microsoft and HP, what can I do to stop this?

    Hello

    You can try to use your boot USB storage device and check if that helps. A clean boot helps eliminate software conflicts.

    The following link has steps showing how to perform the clean boot. http://support.Microsoft.com/kb/929135  
    (1) perform the clean boot
    i. Click Start, type msconfig in the search box and press ENTER.
    If you are prompted for an administrator password or a confirmation, type the password, or click on continue.
    II. in the general tab, click Selective startup.
    III. under Selective startup, clear the check box load startup items.
    IV. click the Services tab, select the hide all Microsoft Services check box and then click Disable all.
    v. click OK.
    VI. When you are prompted, click on restart.
    VII. after the computer starts, check if the problem is resolved.

    (2) enable half the services
    (3) determine whether the problem returns
    (4) enable half of the startup items
    (5) determine if the problem returns
    (6) repeat the steps above until you find out which program or service is causing the issue
     
    After you determine the startup item or the service that is causing the problem, contact the manufacturer of the program to determine if the problem can be solved. Or, run the System Configuration utility, and then click to clear the check box of the element of the problem.
     
    Note: Please make sure that the computer is configured to start as usual by following step 7 of article http://support.microsoft.com/kb/929135 .

    Reset the computer to start as usual

    When you are finished troubleshooting, follow these steps to reset the computer to start as usual:
    (i) click Start, type msconfig.exe in the start search box and press ENTER. If you are prompted for an administrator password or for confirmation, type your password, or click on continue.
    (II) on the general tab, click the Normal startup option, and then click OK.

Maybe you are looking for