Search Results

Search found 35363 results on 1415 pages for 'long click'.

Page 731/1415 | < Previous Page | 727 728 729 730 731 732 733 734 735 736 737 738  | Next Page >

  • WMIC returns error when querying product

    - by Stu
    I'm trying to automate the installation of an MSI on my server, however before the installation can go ahead I need to uninstall the previous version from the server. Searching on the internet I've found that WMIC is the tool required but there seems to be a problem with the setup of WMI on the server. Running the following command gives errors: command promptwmic then inside the tool /trace:on product get name This returns a long string of successes and one failure: FAIL: IEnumWbemClassObject->Next(WBEM_INFINITE, 1, -, -) Line: 396 File: d:\nt\admin\wmi\wbem\tools\wmic\execengine.cpp Node - ENTECHORELDEV ERROR: Code = 0x80041010 Description = The specified class is not valid. Facility = WMI I'm trying to run this on a standard install of Windows Server 2003 R2 with administrator privelages. Thanks Stu

    Read the article

  • A story from SQLvdb and Idera

    - by Peter Larsson
    A year or so back, I struggled with some consistency problems so I figured out I needed a way to "mount" backup files as a virtual database. At the time (SQL Server 2005 and SQL Server 2008) my choice fell on Idera's SQLvdb because it felt easy enough to use. I used it a few times and it worked great. Some time later we upgraded to SQL Server 2008R2 and I didn't use SQLvbd for a long time. Until yesterday... I was upset that suddenly SQLvbd took more than 2 hours to mount the backup file (if it succeeded at all). I uninstalled the application and went for lunch. After lunch, I decided to give SQLvbd another chance so I emailed their tech support and got a response within 30 minutes or so. Now, since I am a SQL Server MVP, they gave me another serial number than my first and I downloaded and installed a newer version. But also this version was really slow. I emailed back to them with the additional information they requested and to my surprise I had got an email this morning when I came back to work, where Idera explained some of the issues (bugs) and asked my to test a newer version. I did, and now a fresh mount of a 100GB database (compressed to 20GB with native compression) located on our SAN takes less than 6 minutes! Thank you. //Peter

    Read the article

  • Recommended website performance monitoring services? [closed]

    - by Dennis G.
    I'm looking for a good performance monitoring service for websites. I know about some of the available general monitoring services that check for uptime and notify you about unavailable services. But I'm specifically looking for a service with an emphasis on performance. I.e., I would like to see reports with detailed performance statistics from multiple locations world-wide, with a break-down on how long it took to fetch the different website resources, including third-party scripts such as Google Analytics and so on (the report should contain similar details such as the FireBug Net tab). Are there any such services and if so, which one is the best?

    Read the article

  • Is it just me or is this a baffling tech interview question

    - by Matthew Patrick Cashatt
    Background I was just asked in a tech interview to write an algorithm to traverse an "object" (notice the quotes) where A is equal to B and B is equal to C and A is equal to C. That's it. That is all the information I was given. I asked the interviewer what the goal was but apparently there wasn't one, just "traverse" the "object". I don't know about anyone else, but this seems like a silly question to me. I asked again, "am I searching for a value?". Nope. Just "traverse" it. Why would I ever want to endlessly loop through this "object"?? To melt my processor maybe?? The answer according to the interviewer was that I should have written a recursive function. OK, so why not simply ask me to write a recursive function? And who would write a recursive function that never ends? My question: Is this a valid question to the rest of you and, if so, can you provide a hint as to what I might be missing? Perhaps I am thinking too hard about solving real world problems. I have been successfully coding for a long time but this tech interview process makes me feel like I don't know anything. Final Answer: CLOWN TRAVERSAL!!! (See @Matt's answer below) Thanks! Matt

    Read the article

  • Did Microsoft designers got their butts kicked 3 years ago?

    - by John Conwell
    This is something I've been wondering about for about a year now.  Microsoft has a history of creating very useful products, with lots of useful features.  But useful does not mean usable.  A lot of stuff coming out of Redmond the past 10 years don't really seem to have been well thought out from a user design point of view.  Lots of extra steps, lots of popup windows...very little innovative thinking going on about the user experience of these products.But about a year ago I started seeing changes in the new products coming out of Microsoft.  Windows 7 is a good example of a big change.  They really got their asses handed to them on Vista, so they had to make a change.  But it looks like this change in philosophy has bled over to other areas.  The new Office (2010) lineup has a lot of changes in it to make it way more usable. Given that big changes like this take about 3 years to go from start to actually shipping product, I'm curious what happened internally at Microsoft that really drove this change in product design.  I think that Microsoft got so focused on just adding new functionality for so long, they forgot about the little things that can really make or break a product.  Office 2010 is full of these little things that make it much nicer to use.  I just hope its not too late for them.

    Read the article

  • Oracle Industrial Manufacturing Forum, Nov 8, W Hotel-Chicago

    - by Stephen Slade
    As global markets mature and new customer segments emerge, top industrial manufacturers are restructuring their businesses for growth. Oracle's annual Industrial Manufacturing Forum was created to help these companies focus on revolutionizing product and service innovation, maximize organizational performance, and deliver exceptional customer experiences. Key themes of this year's event are redefining "Lean," transforming service, and modernizing the manufacturing enterprise.  This informative forum will be held at the W Hotel and include a Keynote from Eaton's VP of IT who led the firm through a dramatic supply chain transformation. This jouney led Eaton to win the Manufacturer of the Year award in 2011 from Managing Automation/Manufacturing Executive publication. Other featured presentations include:  Value of BI Applications & EAM Analytics for Industrial Manufacturing: Regal Beloit,  Sales & Operating Planning: GE Healthcare,   Advanced Financial Controls/Leveraging Change Controls: Eaton,   Customer Experience (CX): Pella,  Creating The Strategic Service Chain: Entercoms Register today at: MANUFACTURING_FORUM Oracle Industrial Manufacturing ForumThursday, November 8, 2012 9:30 a.m. – 6:00 p.m. W Hotel City Center172 West Adams Street, Chicago, IL 60603 Click here to register now or call 1.800.820.5592 ext. 10954.

    Read the article

  • Where to download the lastest Windows ISO (legally)?

    - by Doon
    I have the dreamspark MS license. However, everytime I have to install Windows on my PC, I get many updates and this process is long and boring. Is there any way to download the lastest Windows ISO with updates? I'm trying to install Windows 7 (but Windows 8 would also be helpful). Note: I don't want just download windows. I want to download the OS with the lastest updates, those that are downloaded with Windows update after installing it!! Thanks!

    Read the article

  • Ubuntu not shutting down ( going to black screen ) 12.04

    - by Orrin Fox
    I am currently using a USB persistent install of ubuntu. its a simple 4GB drive with a 2.8GB partition ( casper-rw storage partition ). I setup an administrator account and set it to login automatically. I also removed ubiquity to simply use this as a go anywhere install. Heres my issue. Im logged in as my account, and I click the top right gear and select "shut down". Text pops up showing its quitting processes.. etc. and then goes to the plymouth animation. But... The screen goes black, and then it goes to the login screen. Now when im at the login screen i go into terminal ( alt+F2 ) and dont you know, im logged in as Ubuntu. so then I try the following: ubuntu@ubuntu:~$ sudo shutdown now It goes to the plymouth screen again as if its shutting down, AND the screen goes black once again but the computer has not turned off, as in the usb is still flashing the light, the fans are still on, the only thing off is the screen. Is this a bug? If not maybe i did something wrong? Perhaps its that I made an account but... if there is a work around for this please let me know. Thanks again, Fox

    Read the article

  • Unmount Mass Storage USB Device from the Command Line in Linux

    - by Casey
    I've searched high and low, and can't figure this one out. I have a older Olympus Camera (2001 or so). When I plug in the USB connection, I get the following log output: $ dmesg | grep sd [20047.625076] sd 21:0:0:0: Attached scsi generic sg7 type 0 [20047.627922] sd 21:0:0:0: [sdg] Attached SCSI removable disk Secondly, the drive is not mounted in the FS, but when I run gphoto2 I get the following error: $ gphoto2 --list-config *** Error *** An error occurred in the io-library ('Could not lock the device'): Camera is already in use. *** Error (-60: 'Could not lock the device') *** What command will unmount the drive. For example in Nautilus, I can right click and select "Safely Remove Device". After doing that, the /dev/sg7 and /dev/sdg devices are removed. Some things I've tried already are sdparm and sg3_utils, however I am unfamiliar with them, so it's possible I just didn't find the right command.

    Read the article

  • Friday Fun: Doom Triple Pack

    - by Mysticgeek
    Thankfully it was only a 4 day work week, but that is enough to get sick of the TPS reports. Today we go retro and experience three classic first-person PC shooter games with the Doom Triple Pack. Doom Triple Pack The Doom Triple Pack brings you your favorite classic first-person PC shooter games in Flash format. The games include Doom, Heretic, and Hexen…just select which one you want to play. Click on Controls to learn how to navigate your characters through the games.   Each on has in-game options you can use to control the style of play. The ever famous DOOM…each game runs smoothly for what they are provided you have a decent internet connection. If you’re tired of spreadsheets and meetings and want to live some of you favorite retro PC gaming days, the Doom Triple Pack can be a lot of fun. If you’re looking for other fun ways to waste time at the office check out the games in the How-To Geek Arcade. Play the Doom Triple Pack Similar Articles Productive Geek Tips Transform your XP Computer to a Modern LookSupport for Some Versions of Windows is EndingSet Automatic Defrag Options for All Drives in Vista Service Pack 1Friday Fun: Portal, the Flash VersionHow to Play .OGM Video Files in Windows Vista TouchFreeze Alternative in AutoHotkey The Icy Undertow Desktop Windows Home Server – Backup to LAN The Clear & Clean Desktop Use This Bookmarklet to Easily Get Albums Use AutoHotkey to Assign a Hotkey to a Specific Window Latest Software Reviews Tinyhacker Random Tips Xobni Plus for Outlook All My Movies 5.9 CloudBerry Online Backup 1.5 for Windows Home Server Snagit 10 Use ILovePDF To Split and Merge PDF Files TimeToMeet is a Simple Online Meeting Planning Tool Easily Create More Bookmark Toolbars in Firefox Filevo is a Cool File Hosting & Sharing Site Get a free copy of WinUtilities Pro 2010 World Cup Schedule

    Read the article

  • How can I find out which user deleted a directory?

    - by Rob S.
    My Ubuntu server has about roughly 30 active users on it. I personally know everyone using the server. Recently, a few friends and I were working on project. We made a new directory for the project and since everyone knows everyone we didn't bother protecting our work under a bunch of permissions. We should have though, because we woke up this morning to find that someone removed our entire directory. Our work is backed up every night so it's really not a big deal to restore our work. However, we would like to find out who removed it so we can confront them. So far the best thing we've come up with for finding our culprit is checking everyone's bash history but this is long and tedious and chances are that if there was a malicious intent behind the directory removal that our culprit probably modified theirs to cover their tracks (or of course they might use a different shell). So, basically, what is the easiest and quickest way to find out who deleted a directory? Thanks in advance for your time.

    Read the article

  • Problems installing Ruby 1.9.2 and rvm on Debian Lenny

    - by Dave Everitt
    I have currently have Ruby 1.9.1 (bad) and want to install 1.9.3 under rvm. However, rvm requirements gives a long list: install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion But I've hit a problem here: /# apt-get install libreadline6 Reading package lists... Done Building dependency tree Reading state information... Done E: Couldn't find package libreadline6 ...and (I imagine after just hunting down a Debian source to download curl) finding these packages isn't going to be a picnic. Given that there are few packages to install before I can get rvm to install Ruby 1.9.3, what's a good way forward? My sources.list: deb http://archive.debian.org/debian/ lenny main contrib

    Read the article

  • Windows Server 2003 Synchronize Not Sticking

    - by lkessler
    We have a Windows Server 2003. It had Raid running on 2 disks. One disk failed and the Raid Controller failed. We replaced the disk and controller and restored everything. No data was lost. The users of that server found that there were a number of directories that appeared empty. We found that from their machine, we could right-click on the directory and select "Synchronize" and the files in the directory would now be visible to them. However, when opening Internet Explorer and browsing the web and ftp'ing to a web site, the files in the directory would vanish. We would have to "Synchronize" them again to get them to reappear. What is going on to cause this need to Synchronize and then re-Synchronize again? What do we need to do to fix this so that the directories are permanently visible?

    Read the article

  • Move flag for follow of a specific color to a folder in Outlook 2003

    - by Campo
    I have a user request to be able to create a rule that would move an email in outlook 2003 that the user flagged for follow up to a specific folder. That seemed simple enough till he requested that depending on the flag color they were to be moved to a specific folder. Issue is that in outlook 2003 that's not an option when creating a rule. I know that this is very straight forward in outlook 2007 and 2010 and using the categories feature is very convenient as it displays as a list when you right click.... Though in 2003 categories are not so convenient. as an example the user will flag for follow up as so... Red Flag for sales Blue Flag for requests Green Flag for personal They want a rule that will move all items with a red flag to the sales folder, Green flag to the requests folder and so on.... Thank you for your suggestions.

    Read the article

  • SharePoint 2010 Search - not search additional content sources

    - by Chris W
    I've got SP 2010 crawling a secondary intranet system that we'll run in parallel as part of a long running migration to SharePoint when it releases. Whilst it's crawling the pages without problem I can't see how to get the results to appear as part of the Quick Search results if the user does a search from the little search dialog box on the home page. Searches completed within a My Sites pages lists results from port the SharePoint installation and the external content source. Searches from the main search dialog only list results of SharePoint items. I tried adding the drop down option to select the site to search but this list only includes the name of the current site and doesn't offer an 'All Sites' scope option which I think would include the content. What am I doing wrong?

    Read the article

  • Forwarding emails from a domain

    - by Euwyn
    I generally use Google Apps to handle email domains. I'm unfortunately stuck in an infinite loop with Google [1] for one the domains I recently picked up. Right now I use Zerigo's awesome DNS services. How can I get [email protected] forwarded to my Gmail account? Better yet if this is a free/cheap solution and can work with multiple aliases going to different real email addresses ([email protected] - [email protected], [email protected] - [email protected]) [1] Long story. I alternate between "Sorry, you've reached a login page for a domain that isn't using Google Apps." and "This domain has already been registered with Google Apps." Seems like many others are having this issue and Google isn't doing anything about it.

    Read the article

  • Inconsistencies between ipod and itunes

    - by user10826
    Hi, I have an ipod with 100G of music. Then I open itunes on my Mac, and I can use coverflow for some music files that are on the mac, where the itunes library resides. But I can not see coverflow from itunes, when i click on my ipod, and I have covers for almost all of the albums. Is it normal or just another of the typical inconsistencies of apple that apple fans do not dare to recognize? My question, btw, is, how can i use coverflow on iTunes on the Mac but browsing songs that are on myr (connected) iPod, and using coverflow Thanks

    Read the article

  • SSDT gotcha – Moving a file erases code analysis suppressions

    - by jamiet
    I discovered a little wrinkle in SSDT today that is worth knowing about if you are managing your database schemas using SSDT. In short, if a file is moved to a different folder in the project then any code analysis suppressions that reference that file will disappear from the suppression file. This makes sense if you think about it because the paths stored in the suppression file are no longer valid, but you probably won’t be aware of it until it happens to you. If you don’t know what code analysis is or you don’t know what the suppression file is then you can probably stop reading now, otherwise read on for a simple short demo. Let’s create a new project and add a stored procedure to it called sp_dummy. Naming stored procedures with a sp_ prefix is generally frowned upon and hence SSDT static code analysis will look for occurrences of this and flag them. So, the next thing we need to do is turn on static code analysis in the project properties: A subsequent build causes a code analysis warning as we might expect: Let’s suppose we actually don’t mind stored procedures with sp_ prefixes, we can just right-click on the message to suppress and get rid of it: That causes a suppression file to get created in our project: Notice that the suppression file contains a relative path to the file that has had the suppression placed upon it. Now if we simply move the file within our project to a new folder notice that the suppression that we just created gets removed from the suppression file: As I alluded above this behaviour is intuitive because the path originally stored in the suppression file is no longer relevant but you’re probably not going to be aware of it until it happens to you and messages that you thought you had suppressed start appearing again. Definitely one to be aware of. @Jamiet   

    Read the article

  • Ubuntu 12.04 LTS: Error message "Failed to execute child process"

    - by Ron
    I am an Ubuntu-newbie and just started working with Ubuntu (version 12.04 LTS) a couple of days ago. I wanted to add a launcher icon to desktop for launching an application I previously installed. Up to now I can only launch it by typing setsid matlab -desktop into my terminal. Now there is the following problem with the execution via the desktop icon: Whenever I click the desktop icon, I get the following error message: "Failed to execute child process" I would like to add a screenshot, but unfortunately as a new user, I am not allowed to... In the main menu from where I added the icon via drag'n'drop to desktop there is also a permission to execute the .desktop file. I also tried to look for advice on the error message "Failed to execute child process..." but could not find anything useful. Now does anybody have an idea what I am missing? Sorry if this is a stupid question ;) ...but as I just said: I just started with Ubuntu... Thanks to everybody in advance for their help! :) And let me know if you should need any more information... Regards, Ron

    Read the article

  • Pluscom MAC address shows up but "wireless unavailable"

    - by Luigi
    I've got a pluscom pci card plugged into my desktop and although the mac address shows up in network manager, it says "Wireless unavailable". I'm using Ubuntu 12.10 Gnome Shell Remix... edgar@edgarQuantal:~$ iwconfig eth0 no wireless extensions. lo no wireless extensions. wlan0 IEEE 802.11bg ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off edgar@edgarQuantal:~$ ifconfig eth0 Link encap:Ethernet HWaddr 6c:f0:49:02:1f:b8 inet addr:192.168.0.7 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::6ef0:49ff:fe02:1fb8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1425 errors:0 dropped:0 overruns:0 frame:0 TX packets:1393 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:995753 (995.7 KB) TX bytes:134079 (134.0 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:363 errors:0 dropped:0 overruns:0 frame:0 TX packets:363 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:40828 (40.8 KB) TX bytes:40828 (40.8 KB) It looks the same as the problem as here, seems quite complicated: http://ubuntuforums.org/showthread.php?t=1993226 Tried downloading the driver but i get this: "Unpacking firmware-ralink (from .../firmware-ralink_0.36_all.deb) ... dpkg: error processing /home/edgar/Downloads/firmware-ralink_0.36_all.deb (--install): trying to overwrite '/lib/firmware/rt2870.bin', which is also in package linux-firmware 1.95"

    Read the article

  • How to share problem solving knowledge in a multiteam group?

    - by jonathan
    I've been working in multiteam groups for as long as I'm a webdeveloper, for me a team can be a lonely soldier or several people, generally a company will have multiple teams working in different projects and once the project is out in the wild, any team can perform the maintenance. This is a small picture since I'm not talking only about project wise knowledge, but "craft wise" knowledge, but it gives the picture of how I'm used to work, so: Since we work on modularised teams, sometimes I feel like the teams are too tightly enclosed in their projects, I've seen cases where after an hour of discussion, someone asked the question aloud and other person totally unrelated answered in a much simpler fashion. The problem is not so simple to solve as people tend not to be available all the time, also sometimes people can't afford the time to go through a problem with the "asker", but could do it alone. I've thought about software based solutions, something in the lines of SE, but I'd like to know other programmers opinions on the subject. EDIT I don't know if this is a wikipedia complex, but I feel that Wikis don't encourage the user to actually ask questions, but rather to write articles, and sometimes we don't know the knowledge we need, before needing it.

    Read the article

  • Music but no voices on headphones

    - by TheEmeritus
    I have a laptop with Windows 7 and I have headphones for a couple of months, and only recently they started to play only the music, while the voices are there, but just very faint. I tried to connect them to another computer (PC, windows XP) and they worked fine, which made me think the problem isn't with the headphones but with the laptop. I've searched online and found a few solutions, none of the seemed to work. Such as: plugging in and out my jack until you can hear better, checking the headphones on other computers. Other relevant info: The headphones come with a mic if I right click the sound icon - sound devices. Then I dont see any 'headphones', not even if I tell it to show disabled devices. All I see is a 'speakers' icon, yet it's there even if the headphones are disconnected, and is always active. So if anyone has any idea I'd appreciate it :) Thanks!

    Read the article

  • ANTS Performance Profiler 7.0 has been released!

    - by Michaela Murray
    Please join me in welcoming ANTS Performance Profiler 7 to the world of .NET. ANTS Performance Profiler is a .NET code profiling tool. It lets you identify performance bottlenecks within minutes and therefore enables you to optimize your application performance. Version 7.0 includes integrated decompilation: when profiling methods and assemblies with no source code file, you can generate source code right from the profiler interface. You can then browse and navigate this automatically generated source as if it was your own. If you have an assembly's PDB file but no source, integrated decompilation even lets you view line-level timings for each method, pinpointing the exact cause of performance bottlenecks. Integrated decompilation is powered by .NET Reflector, but you don't need Reflector installed to use the functionality. Watch this video to see it in action. Also new in ANTS Performance Profiler 7.0: · Full support for SharePoint 2010 - No need to manually configure profiling for the latest version of SharePoint · Full support for IIS Express · Azure and Amazon EC2 support, enabling you to profile in the cloud Please click here, for more details about the ANTS Performance Profiler 7.0.

    Read the article

  • Page Inspector and Visual Studio 2012

    - by nikolaosk
    In this post I will be looking into a new feature that has been added to theVS 2012 IDE. I am talking about Page Inspector that gives developers a very good/handy way to identify layout issues and to find out which part of server side code is responsible for that HTML snippet of code.If you are interested in reading other posts about VS 2012 and .Net 4.5 please have a look here and here.This tool is integrated into the VS 2012 IDE.We can launch it in different ways. 1) We will create a new ASP.Net MVC application (an Internet application). I will not add any code.2) In the Solution Explorer I choose my project and right-click. From the available options select View in Page InspectorHave a look at the picture below.  3) We can launch Page Inspector from the Standard Toolbar. Please have a look at the picture below.   4) Let's view our application with Page Inspector. First I inspect the About link-menu.I can see very quickly the HTML that is rendering for that link to appear. I also see the server side code (the actual view, _Layout.cshtml) that is responsible for that link. This is something developers always craved for. We can also see the CSS styles that are used to style this link (About).Have a look at the picture below Obviously there are similar tools that I have been using in the past when I wanted to change a part of the HTML or see what piece of CSS code affects my layout. I used Firebug when viewing my web applications in the Firefox browser. Internet Explorer and Chrome have also great similar tools that help web developers to identify issues with a site's appearance/issues.Please bear in mind that Page Inspector works with all forms of the ASP.Net stack e.g Web Forms,Web Pages.Hope it helps!!!!!

    Read the article

  • array and array_view from amp.h

    - by Daniel Moth
    This is a very long post, but it also covers what are probably the classes (well, array_view at least) that you will use the most with C++ AMP, so I hope you enjoy it! Overview The concurrency::array and concurrency::array_view template classes represent multi-dimensional data of type T, of N dimensions, specified at compile time (and you can later access the number of dimensions via the rank property). If N is not specified, it is assumed that it is 1 (i.e. single-dimensional case). They are rectangular (not jagged). The difference between them is that array is a container of data, whereas array_view is a wrapper of a container of data. So in that respect, array behaves like an STL container, whereas the closest thing an array_view behaves like is an STL iterator (albeit with random access and allowing you to view more than one element at a time!). The data in the array (whether provided at creation time or added later) resides on an accelerator (which is specified at creation time either explicitly by the developer, or set to the default accelerator at creation time by the runtime) and is laid out contiguously in memory. The data provided to the array_view is not stored by/in the array_view, because the array_view is simply a view over the real source (which can reside on the CPU or other accelerator). The underlying data is copied on demand to wherever the array_view is accessed. Elements which differ by one in the least significant dimension of the array_view are adjacent in memory. array objects must be captured by reference into the lambda you pass to the parallel_for_each call, whereas array_view objects must be captured by value (into the lambda you pass to the parallel_for_each call). Creating array and array_view objects and relevant properties You can create array_view objects from other array_view objects of the same rank and element type (shallow copy, also possible via assignment operator) so they point to the same underlying data, and you can also create array_view objects over array objects of the same rank and element type e.g.   array_view<int,3> a(b); // b can be another array or array_view of ints with rank=3 Note: Unlike the constructors above which can be called anywhere, the ones in the rest of this section can only be called from CPU code. You can create array objects from other array objects of the same rank and element type (copy and move constructors) and from other array_view objects, e.g.   array<float,2> a(b); // b can be another array or array_view of floats with rank=2 To create an array from scratch, you need to at least specify an extent object, e.g. array<int,3> a(myExtent);. Note that instead of an explicit extent object, there are convenience overloads when N<=3 so you can specify 1-, 2-, 3- integers (dependent on the array's rank) and thus have the extent created for you under the covers. At any point, you can access the array's extent thought the extent property. The exact same thing applies to array_view (extent as constructor parameters, incl. convenience overloads, and property). While passing only an extent object to create an array is enough (it means that the array will be written to later), it is not enough for the array_view case which must always wrap over some other container (on which it relies for storage space and actual content). So in addition to the extent object (that describes the shape you'd like to be viewing/accessing that data through), to create an array_view from another container (e.g. std::vector) you must pass in the container itself (which must expose .data() and a .size() methods, e.g. like std::array does), e.g.   array_view<int,2> aaa(myExtent, myContainerOfInts); Similarly, you can create an array_view from a raw pointer of data plus an extent object. Back to the array case, to optionally initialize the array with data, you can pass an iterator pointing to the start (and optionally one pointing to the end of the source container) e.g.   array<double,1> a(5, myVector.begin(), myVector.end()); We saw that arrays are bound to an accelerator at creation time, so in case you don’t want the C++ AMP runtime to assign the array to the default accelerator, all array constructors have overloads that let you pass an accelerator_view object, which you can later access via the accelerator_view property. Note that at the point of initializing an array with data, a synchronous copy of the data takes place to the accelerator, and then to copy any data back we'll see that an explicit copy call is required. This does not happen with the array_view where copying is on demand... refresh and synchronize on array_view Note that in the previous section on constructors, unlike the array case, there was no overload that accepted an accelerator_view for array_view. That is because the array_view is simply a wrapper, so the allocation of the data has already taken place before you created the array_view. When you capture an array_view variable in your call to parallel_for_each, the copy of data between the non-CPU accelerator and the CPU takes place on demand (i.e. it is implicit, versus the explicit copy that has to happen with the array). There are some subtleties to the on-demand-copying that we cover next. The assumption when using an array_view is that you will continue to access the data through the array_view, and not through the original underlying source, e.g. the pointer to the data that you passed to the array_view's constructor. So if you modify the data through the array_view on the GPU, the original pointer on the CPU will not "know" that, unless one of two things happen: you access the data through the array_view on the CPU side, i.e. using indexing that we cover below you explicitly call the array_view's synchronize method on the CPU (this also gets called in the array_view's destructor for you) Conversely, if you make a change to the underlying data through the original source (e.g. the pointer), the array_view will not "know" about those changes, unless you call its refresh method. Finally, note that if you create an array_view of const T, then the data is copied to the accelerator on demand, but it does not get copied back, e.g.   array_view<const double, 5> myArrView(…); // myArrView will not get copied back from GPU There is also a similar mechanism to achieve the reverse, i.e. not to copy the data of an array_view to the GPU. copy_to, data, and global copy/copy_async functions Both array and array_view expose two copy_to overloads that allow copying them to another array, or to another array_view, and these operations can also be achieved with assignment (via the = operator overloads). Also both array and array_view expose a data method, to get a raw pointer to the underlying data of the array or array_view, e.g. float* f = myArr.data();. Note that for array_view, this only works when the rank is equal to 1, due to the data only being contiguous in one dimension as covered in the overview section. Finally, there are a bunch of global concurrency::copy functions returning void (and corresponding concurrency::copy_async functions returning a future) that allow copying between arrays and array_views and iterators etc. Just browse intellisense or amp.h directly for the full set. Note that for array, all copying described throughout this post is deep copying, as per other STL container expectations. You can never have two arrays point to the same data. indexing into array and array_view plus projection Reading or writing data elements of an array is only legal when the code executes on the same accelerator as where the array was bound to. In the array_view case, you can read/write on any accelerator, not just the one where the original data resides, and the data gets copied for you on demand. In both cases, the way you read and write individual elements is via indexing as described next. To access (or set the value of) an element, you can index into it by passing it an index object via the subscript operator. Furthermore, if the rank is 3 or less, you can use the function ( ) operator to pass integer values instead of having to use an index object. e.g. array<float,2> arr(someExtent, someIterator); //or array_view<float,2> arr(someExtent, someContainer); index<2> idx(5,4); float f1 = arr[idx]; float f2 = arr(5,4); //f2 ==f1 //and the reverse for assigning, e.g. arr(idx[0], 7) = 6.9; Note that for both array and array_view, regardless of rank, you can also pass a single integer to the subscript operator which results in a projection of the data, and (for both array and array_view) you get back an array_view of rank N-1 (or if the rank was 1, you get back just the element at that location). Not Covered In this already very long post, I am not going to cover three very cool methods (and related overloads) that both array and array_view expose: view_as, section, reinterpret_as. We'll revisit those at some point in the future, probably on the team blog. Comments about this post by Daniel Moth welcome at the original blog.

    Read the article

< Previous Page | 727 728 729 730 731 732 733 734 735 736 737 738  | Next Page >