Search Results

Search found 13275 results on 531 pages for 'deep copy'.

Page 153/531 | < Previous Page | 149 150 151 152 153 154 155 156 157 158 159 160  | Next Page >

  • Handling bugs, quirks, or annoyances in vendor-supplied headers

    - by supercat
    If the header file supplied by a vendor of something with whom one's code must interact is deficient in some way, in what cases is it better to: Work around the header's deficiencies in the main code Copy the header file to the local project and fix it Fix the header file in the spot where it's stored as a vendor-supplied tool Fix the header file in the central spot, but also make a local copy and try to always have the two match Do something else As an example, the header file supplied by ST Micro for the STM320LF series contains the lines: typedef struct { __IO uint32_t MODER; __IO uint16_t OTYPER; uint16_t RESERVED0; .... __IO uint16_t BSRRL; /* BSRR register is split to 2 * 16-bit fields BSRRL */ __IO uint16_t BSRRH; /* BSRR register is split to 2 * 16-bit fields BSRRH */ .... } GPIO_TypeDef; In the hardware, and in the hardware documentation, BSRR is described as a single 32-bit register. About 98% of the time one wants to write to BSRR, one will only be interested in writing the upper half or the lower half; it is thus convenient to be able to use BSSRH and BSSRL as a means of writing half the register. On the other hand, there are occasions when it is necessary that the entire 32-bit register be written as a single atomic operation. The "optimal" way to write it (setting aside white-spacing issues) would be: typedef struct { __IO uint32_t MODER; __IO uint16_t OTYPER; uint16_t RESERVED0; .... union // Allow BSRR access as 32-bit register or two 16-bit registers { __IO uint32_t BSRR; // 32-bit BSSR register as a whole struct { __IO uint16_t BSRRL, BSRRH; };// Two 16-bit parts }; .... } GPIO_TypeDef; If the struct were defined that way, code could use BSRR when necessary to write all 32 bits, or BSRRH/BSRRL when writing 16 bits. Given that the header isn't that way, would better practice be to use the header as-is, but apply an icky typecast in the main code writing what would be idiomatically written as thePort->BSRR = 0x12345678; as *((uint32_t)&(thePort->BSSRH)) = 0x12345678;, or would be be better to use a patched header file? If the latter, where should the patched file me stored and how should it be managed?

    Read the article

  • Copying kernel and initrd problem while setting up a server

    - by user3452627
    I'm trying to set up a server using PXE and following this (clickable) instruction. But I have a problem in part Creating your NFS installation Right here: Copy kernel and initrd to tftp root. Run these commands ON THE SERVER sudo cp ~/vmlinuz-`uname -r` /tftpboot/ sudo cp ~/initrd.img-`uname -r` /tftpboot/ Actually, I don't know which kernel (server's or client's) should be copied. There isn't any files like those in my home folder on server. Can anybody tell me how to fix it?

    Read the article

  • How to install packages without internet connection

    - by user114874
    I'm just beginner to linux operating system I have following doubts 1.Now i am using ubuntu 10.10 version i dont have net connection in my home So how can i install packages manually for ex: if me and my friend have same version and same hardware config if he installed installed all packages in his laptop can i install all his packages by copy packages from his lap to mine ?? if there is a way then how to do it?? Thx guys in advance..... :)

    Read the article

  • Why are the man pages for gvfs-commands not in Ubuntu?

    - by Pili Garcia
    These are the man pages for gvfs-cat gvfs-less gvfs-monitor-dir gvfs-move gvfs-rm gvfs-trash gvfs-copy gvfs-ls gvfs-monitor-file gvfs-open gvfs-save gvfs-tree gvfs-info gvfs-mkdir gvfs-mount gvfs-rename gvfs-set-attribute http://www.unix.com/man-pages.php?query=gvfs-info&apropos=0&section=1&os=opensolaris Every year I see that there are more commands without manpage nor apropose description, nothing! Is that the path?

    Read the article

  • Oracle Weblogic 12c Launch

    - by Robert Baumgartner
    Am 1. Dezember 2011 wird Oracle WebLogic Server 12c weltweit vorgestellt. Um 19:00 findet ein Execuite Overview mit Hasan Rizvi, Senior Vice President, Product Development, statt. Um 20:00 findet ein Developer Deep-Dive mit Will Lyons, Director, Oracle WebLogic Server Product Management, statt. The new release of Oracle WebLogic Server is: • Designed to help customers seamlessly move into the public or private cloud with an open, standards-based platform • Built to drive higher value for customers’ current infrastructure and significantly reduce development time and cost • Enhanced with transformational platforms and technologies such as Java EE 6, Oracle’s Active GridLink for RAC, Oracle Traffic Director, and Oracle Virtual Assembly Builder Hier geht es zur Anmeldung: Anmeldung

    Read the article

  • Online ALTER TABLE in MySQL 5.6

    - by Marko Mäkelä
    This is the low-level view of data dictionary language (DDL) operations in the InnoDB storage engine in MySQL 5.6. John Russell gave a more high-level view in his blog post April 2012 Labs Release – Online DDL Improvements. MySQL before the InnoDB Plugin Traditionally, the MySQL storage engine interface has taken a minimalistic approach to data definition language. The only natively supported operations were CREATE TABLE, DROP TABLE and RENAME TABLE. Consider the following example: CREATE TABLE t(a INT); INSERT INTO t VALUES (1),(2),(3); CREATE INDEX a ON t(a); DROP TABLE t; The CREATE INDEX statement would be executed roughly as follows: CREATE TABLE temp(a INT, INDEX(a)); INSERT INTO temp SELECT * FROM t; RENAME TABLE t TO temp2; RENAME TABLE temp TO t; DROP TABLE temp2; You could imagine that the database could crash when copying all rows from the original table to the new one. For example, it could run out of file space. Then, on restart, InnoDB would roll back the huge INSERT transaction. To fix things a little, a hack was added to ha_innobase::write_row for committing the transaction every 10,000 rows. Still, it was frustrating that even a simple DROP INDEX would make the table unavailable for modifications for a long time. Fast Index Creation in the InnoDB Plugin of MySQL 5.1 MySQL 5.1 introduced a new interface for CREATE INDEX and DROP INDEX. The old table-copying approach can still be forced by SET old_alter_table=0. This interface is used in MySQL 5.5 and in the InnoDB Plugin for MySQL 5.1. Apart from the ability to do a quick DROP INDEX, the main advantage is that InnoDB will execute a merge-sort algorithm before inserting the index records into each index that is being created. This should speed up the insert into the secondary index B-trees and potentially result in a better B-tree fill factor. The 5.1 ALTER TABLE interface was not perfect. For example, DROP FOREIGN KEY still invoked the table copy. Renaming columns could conflict with InnoDB foreign key constraints. Combining ADD KEY and DROP KEY in ALTER TABLE was problematic and not atomic inside the storage engine. The ALTER TABLE interface in MySQL 5.6 The ALTER TABLE storage engine interface was completely rewritten in MySQL 5.6. Instead of introducing a method call for every conceivable operation, MySQL 5.6 introduced a handful of methods, and data structures that keep track of the requested changes. In MySQL 5.6, online ALTER TABLE operation can be requested by specifying LOCK=NONE. Also LOCK=SHARED and LOCK=EXCLUSIVE are available. The old-style table copying can be requested by ALGORITHM=COPY. That one will require at least LOCK=SHARED. From the InnoDB point of view, anything that is possible with LOCK=EXCLUSIVE is also possible with LOCK=SHARED. Most ALGORITHM=INPLACE operations inside InnoDB can be executed online (LOCK=NONE). InnoDB will always require an exclusive table lock in two phases of the operation. The execution phases are tied to a number of methods: handler::check_if_supported_inplace_alter Checks if the storage engine can perform all requested operations, and if so, what kind of locking is needed. handler::prepare_inplace_alter_table InnoDB uses this method to set up the data dictionary cache for upcoming CREATE INDEX operation. We need stubs for the new indexes, so that we can keep track of changes to the table during online index creation. Also, crash recovery would drop any indexes that were incomplete at the time of the crash. handler::inplace_alter_table In InnoDB, this method is used for creating secondary indexes or for rebuilding the table. This is the ‘main’ phase that can be executed online (with concurrent writes to the table). handler::commit_inplace_alter_table This is where the operation is committed or rolled back. Here, InnoDB would drop any indexes, rename any columns, drop or add foreign keys, and finalize a table rebuild or index creation. It would also discard any logs that were set up for online index creation or table rebuild. The prepare and commit phases require an exclusive lock, blocking all access to the table. If MySQL times out while upgrading the table meta-data lock for the commit phase, it will roll back the ALTER TABLE operation. In MySQL 5.6, data definition language operations are still not fully atomic, because the data dictionary is split. Part of it is inside InnoDB data dictionary tables. Part of the information is only available in the *.frm file, which is not covered by any crash recovery log. But, there is a single commit phase inside the storage engine. Online Secondary Index Creation It may occur that an index needs to be created on a new column to speed up queries. But, it may be unacceptable to block modifications on the table while creating the index. It turns out that it is conceptually not so hard to support online index creation. All we need is some more execution phases: Set up a stub for the index, for logging changes. Scan the table for index records. Sort the index records. Bulk load the index records. Apply the logged changes. Replace the stub with the actual index. Threads that modify the table will log the operations to the logs of each index that is being created. Errors, such as log overflow or uniqueness violations, will only be flagged by the ALTER TABLE thread. The log is conceptually similar to the InnoDB change buffer. The bulk load of index records will bypass record locking. We still generate redo log for writing the index pages. It would suffice to log page allocations only, and to flush the index pages from the buffer pool to the file system upon completion. Native ALTER TABLE Starting with MySQL 5.6, InnoDB supports most ALTER TABLE operations natively. The notable exceptions are changes to the column type, ADD FOREIGN KEY except when foreign_key_checks=0, and changes to tables that contain FULLTEXT indexes. The keyword ALGORITHM=INPLACE is somewhat misleading, because certain operations cannot be performed in-place. For example, changing the ROW_FORMAT of a table requires a rebuild. Online operation (LOCK=NONE) is not allowed in the following cases: when adding an AUTO_INCREMENT column, when the table contains FULLTEXT indexes or a hidden FTS_DOC_ID column, or when there are FOREIGN KEY constraints referring to the table, with ON…CASCADE or ON…SET NULL option. The FOREIGN KEY limitations are needed, because MySQL does not acquire meta-data locks on the child or parent tables when executing SQL statements. Theoretically, InnoDB could support operations like ADD COLUMN and DROP COLUMN in-place, by lazily converting the table to a newer format. This would require that the data dictionary keep multiple versions of the table definition. For simplicity, we will copy the entire table, even for DROP COLUMN. The bulk copying of the table will bypass record locking and undo logging. For facilitating online operation, a temporary log will be associated with the clustered index of table. Threads that modify the table will also write the changes to the log. When altering the table, we skip all records that have been marked for deletion. In this way, we can simply discard any undo log records that were not yet purged from the original table. Off-page columns, or BLOBs, are an important consideration. We suspend the purge of delete-marked records if it would free any off-page columns from the old table. This is because the BLOBs can be needed when applying changes from the log. We have special logging for handling the ROLLBACK of an INSERT that inserted new off-page columns. This is because the columns will be freed at rollback.

    Read the article

  • Can't see my iPod

    - by Tom Brito
    When I plug in my 32GB iPod Touch 4G, it mounts a 1GB drive. Rhythmbox does not react, neither does Banshee. Any ideas how to copy my music? The output of df is: Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 28834716 4347480 23022512 16% / udev 1026788 288 1026500 1% /dev none 1026788 1496 1025292 1% /dev/shm none 1026788 204 1026584 1% /var/run none 1026788 0 1026788 0% /var/lock none 1026788 0 1026788 0% /lib/init/rw /dev/sda6 96124904 62709456 28532496 69% /home

    Read the article

  • How can I make a universal construction more efficient?

    - by VF1
    A "universal construction" is a wrapper class for a sequential object that enables it to be linearized (a strong consistency condition for concurrent objects). For instance, here's an adapted wait-free construction, in Java, from [1], which presumes the existence of a wait-free queue that satisfies the interface WFQ (which only requires one-time consensus between threads) and assumes a Sequential interface: public interface WFQ<T> // "FIFO" iteration { int enqueue(T t); // returns the sequence number of t Iterable<T> iterateUntil(int max); // iterates until sequence max } public interface Sequential { // Apply an invocation (method + arguments) // and get a response (return value + state) Response apply(Invocation i); } public interface Factory<T> { T generate(); } // generate new default object public interface Universal extends Sequential {} public class SlowUniversal implements Universal { Factory<? extends Sequential> generator; WFQ<Invocation> wfq = new WFQ<Invocation>(); Universal(Factory<? extends Sequential> g) { generator = g; } public Response apply(Invocation i) { int max = wfq.enqueue(i); Sequential s = generator.generate(); for(Invocation invoc : wfq.iterateUntil(max)) s.apply(invoc); return s.apply(i); } } This implementation isn't very satisfying, however, since it presumes determinism of a Sequential and is really slow. I attempted to add memory recycling: public interface WFQD<T> extends WFQ<T> { T dequeue(int n); } // dequeues only when n is the tail, else assists other threads public interface CopyableSequential extends Sequential { CopyableSequential copy(); } public class RecyclingUniversal implements Universal { WFQD<CopyableSequential> wfqd = new WFQD<CopyableSequential>(); Universal(CopyableSequential init) { wfqd.enqueue(init); } public Response apply(Invocation i) { int max = wfqd.enqueue(i); CopyableSequential cs = null; int ctr = max; for(CopyableSequential csq : wfq.iterateUntil(max)) if(--max == 0) cs = csq.copy(); wfqd.dequeue(max); return cs.apply(i); } } Here are my specific questions regarding the extension: Does my implementation create a linearizable multi-threaded version of a CopyableSequential? Is it possible extend memory recycling without extending the interface (perhaps my new methods trivialize the problem)? My implementation only reduces memory when a thread returns, so can this be strengthened? [1] provided an implementation for WFQ<T>, not WFQD<T> - one does exist, though, correct? [1] Herlihy and Shavit, The Art of Multiprocessor Programming.

    Read the article

  • Google I/O 2010 - What's the hubbub about Google Buzz APIs?

    Google I/O 2010 - What's the hubbub about Google Buzz APIs? Google I/O 2010 - What's the hubbub about Google Buzz APIs? Social Web 101 Chris Chabot, Marco Kaiser (Seesmic), Ming Yong (Socialwok) Google Buzz is a new way to share updates, photos, videos and more, and start conversations about the things you find interesting. In this session, we'll take a deep dive into building with the Buzz APIs and the open standards it uses, such as ActivityStrea.ms, PubSubHubbub, OAuth, Salmon and WebFinger. For all I/O 2010 sessions, please go to code.google.com From: GoogleDevelopers Views: 3 0 ratings Time: 50:37 More in Science & Technology

    Read the article

  • Cloud Integration White Paper - Now Available

    - by Bruce Tierney
    Interested in expanding your existing application infrastructure to integrate with cloud applications?  Download the new Oracle White Paper "Cloud Integration - A Comprehensive Solution" to learn not just about connectivity but the other key aspects of successful cloud integration. The paper includes three technical examples of cloud integration with Oracle Fusion Applications, Saleforce, and Workday and follows with the importance of taking a comprehensive approach to also include service aggregation, service virtualization, cloud security considerations and the benefit of maintaining a unified approach to monitoring and management despite an increasingly distributed hybrid infrastructure. To keep the integration architecture from being defined "accidentally" as new business units subscribe to additional cloud vendors outside the participation of IT, a discussion on the "Accidental SOA Cloud Architecture" is included: As shown in the table of contents below, the white paper provides a combination of high-level awareness about key considerations as well as a technical deep dive of the steps needed for cloud integration connectivity: Hope you find the White Paper valuable.  Please download from the following link

    Read the article

  • Installing software on an offline Ubuntu server

    - by Muhammad Gelbana
    Assuming that I have a server with Ubuntu server newly installed on it. I was thinking of installing the very same version on Virtual Box (Or any other virtualization software), connect it to the internet and use apt-get to only download the packages for upgrading the system and the new software such as (tomcat7, openjdk6-default-headless..etc). Then copy the downloaded packages from the archive folder to the offline server's archive folder through a USB stick. So now the virtual system won't actually be upgraded nor have any new software installed. But would running the very same apt-get commands on the offline system without the download directive -d be executed without issues ? *EDIT:*This needs to be as simple as possible because I'll have to write a guide for our client to do this on his own and so it won't be acceptable to require deep Linux knowledge to do this.

    Read the article

  • Developer Webinar Today: "Writing Solaris 11 Device Drivers"

    - by user13333379
    Oracle's Solaris Organization is pleased to announce a Technical Webinar for Developers on Oracle Solaris 11: "Writing Solaris 11 Device Drivers" By Bill Knoche (Principal Software Engineer) today June 5, 2012 9:00 AM PDT This bi-weekly webinar series (every other Tuesday @ 9 a.m. PT) is designed for ISVs, IHVs, and Application Developers who want a deep-dive overview about how they can deploy Oracle Solaris 11 into their application environments. This series will provide you the unique opportunity to learn directly from Oracle Solaris ISV Engineers and will include LIVE Q&A via chat with subject matter experts from each topic area. Any OTN member can register for this free webinar here. 

    Read the article

  • empirical studies about the benefit of q&a sites on programming [on hold]

    - by nico1510
    I'm looking for empirical papers which investigate if a user can benefit from q&a sites like Stack Overflow. I welcome any papers related to this topic e.g: an experiment, investigating if a specific task can be executed faster, an analysis, investigating if a user understands the solutions on q&a sites or if he just does copy&paste without thinking about it, a comparative analysis of the code quality of users with access to q&a sites in contrast to users without internet access (but just offline documentation of APIs)

    Read the article

  • Google Maps in .NET Problem

    - by H(at)Ni
    Hello, I've been struggling with Google maps till I found that someone implemented a wrapper so that you can use Google Map as an ASP.Net user control which is a great effort indeed. You can download it from this link. However, after using it for a while, I've found out that it is storing the Google map object only once in the session and getting it from there whenever needed which was a problem for me that when you update the map in some page, you'll find it updated on another page. So, I've digged deep in the code and updated it so that it stores the map object with a unique identifier that you set it as a property in the user control object like that: this.googleMapCtrl.ControlID = Guid.NewGuid().ToString(); You can download the updated control files from here. Cheers,

    Read the article

  • Boost Targeted Traffic and Online Sales Leads by Spring Cleaning Your Website

    Spring is here - so this is a great time to do some important housekeeping on your website. This type of house cleaning will help attract more visitors to your online home, which allows you to present your line of products and/or services to an increasingly larger targeted audience. Here are several key areas to focus on in your site cleaning: keyword strategy, web page content, on-page elements (besides copy) and off-page elements. This article shares easy-to-understand tips on exactly what to do - and how it will benefit your site!

    Read the article

  • Google Analytics Views - Why Use Them?

    - by pee2pee
    I've been reading about Google Analytics views but still not sure why I would use them. I'm the only person in the company who understands and uses Google Analytics. We have no subdomains. Is there any reason why I would want to use views? Google Analytics has been going for some years now and I just created a copy of the original view but this has zero data, so I can't see how it would benefit me.

    Read the article

  • The /usr/bin/x11 folder

    - by WrecklessT
    Why does the /usr/bin/x11 folder hold another x11 folder and when you open that === x11 you get another x11 and then another and another??? I did it about 6 times and got frustrated so I have no idea how deep this goes but What is the purpose (or is it a glich?)? Is this eating disk space more than it should? (I was going to delete one or more but thought I better ask first before I end up !fucked ) and finally Is it just me and I am going crazy maybe the pills are wearing off or maybe they are kicking in.. I am not sure but an answer would help. I can see no reason why this should be happening at all.

    Read the article

  • Apress Deal of the Day - 5Mar/2011 - Crafting Digital Media: Audacity, Blender, Drupal, GIMP, Scribus, and other Open Source Tools

    - by TATWORTH
    Today's Apress $10 deal of the day at http://www.apress.com/info/dailydeal has been on before. I have a copy and it is useful read on open source applications for Windows. Crafting Digital Media: Audacity, Blender, Drupal, GIMP, Scribus, and other Open Source Tools Open source software, also known as free software, now offers a creative platform with world-class programs. Crafting Digital Media is your foundation course in photographic manipulation, illustration, animation, making music, video editing, and more using open source software.

    Read the article

  • Is there a term for "Use procedures that execute a single task"?

    - by Tom
    I'm having a discussion with a fellow developer, and I'm trying to argument this in something like a short "term". SoC (Separation of Concerns) is pretty straight forward design practice, but it dwells deeper. If we want to pick on it's deep corners, we can Google it and there are plenty of articles that pop up, and after taking a glimpse, we know a lot more, and might find some examples. But, what about "Use procedures that execute a single task"? That's also a great design principle to use when writing applications and it becomes more and more rewarding, the larger the application gets. Is there a term for Use procedures that execute a single task?

    Read the article

  • How to bring an application from Sublime Text to a web IDE for sharing?

    - by Kyle Pennell
    I generally work on my projects locally in Sublime Text but sometimes need to share them with others using things like Jsfiddle, codepen, or plunker. This is usually so I can get unstuck. Is there an easier way to share code that doesn't involve purely copy pasting and the hassle of getting all the dependencies right in a new environment? It's taking me hours to get some of my angular apps working in plunker and I'm wondering if there's a better way.

    Read the article

  • can't run this shell script

    - by user2413
    So I'm trying to install this script I do copy the folder in ~/Documents/icambridge-get-shit-done-1222b6b change .bashrc (the one in the user directory, is that the right one?) by adding a line PATH=:~/Documents/icambridge-get-shit-done-1222b6b”${PATH}” set the files in icambridge-get-shit-done-1222b6b as execs using sudo chmod +x type sudo ./get-shit-done and i get: /usr/bin/env: php: No such file or directory What is the problem?

    Read the article

  • 55 and counting: ADF and Forms sessions at Oracle World

    - by Grant Ronald
    There is a phenomenal agenda of Forms, ADF and JDeveloper running at Oracle World this year.  So far, I can see about 55 sessions which are directly related to my product areas (Forms, JDeveloper and Oracle ADF).  These range from high-level strategic keynotes, to deep dives and hands on sessions from some of the best known names in ADF and Forms.  As we get nearer the kick off date I'm going to call out a number of these sessions but if you are considering whether OracleWorld is a good way of spending your training dollars my answer would be an emphatic YES!

    Read the article

  • Creating SparseImages for Pivot

    - by John Conwell
    Learning how to programmatically make collections for Microsoft Live Labs Pivot has been a pretty interesting ride. There are very few examples out there, and the folks at MS Live Labs are often slow on any feedback.  But that is what Reflector is for, right? Well, I was creating these InfoCard images (similar to the Car images in the "New Cars" sample collection that that MS created for Pivot), and wanted to put a Tag Cloud into the info card.  The problem was the size of the tag cloud might vary in order for all the tags to fit into the tag cloud (often times being bigger than the info card itself).  This was because the varying word lengths and calculated font sizes. So, to fix this, I made the tag cloud its own separate image from the info card.  Then, I would create a sparse image out of the two images, where the tag cloud fit into a small section of the info card.  This would allow the user to see the info card, but then zoom into the tag cloud and see all the tags at a normal resolution.  Kind'a cool. But...I couldn't find one code example (not one!) of how to create a sparse image.  There is one page on the SeaDragon site (http://www.seadragon.com/developer/creating-content/deep-zoom-tools/) that gives over the API for creating images and collections, and it sparsely goes over how to create a sparse image, but unless you are familiar with the API already, the documentation doesn't help very much. The key is the Image.ViewportWidth and Image.ViewportOrigin properties of the image that is getting super imposed on the main image.  I'll walk through the code below.  I've setup a couple Point structs to represent the parent and sub image sizes, as well as where on the parent I want to position the sub image.  Next, create the parent image.  This is pretty straight forward.  Then I create the sub image.  Then I calculate several ratios; the height to width ratio of the sub image, the width ratio of the sub image to the parent image, the height ratio of the sub image to the parent image, then the X and Y coordinates on the parent image where I want the sub image to be placed represented as a ratio of the position to the parent image size. After all these ratios have been calculated, I use them to calculate the Image.ViewportWidth and Image.ViewportOrigin values, then pass the image objects into the SparseImageCreator and call Create. The key thing that was really missing from the API documentation page is that when setting up your sub images, everything is expressed in a ratio in relation to the main parent image.  If I had known this, it would have saved me a lot of trial and error time.  And how did I figure this out?  Reflector of course!  There is a tool called Deep Zoom Composer that came from MS Live Labs which can create a sparse image.  I just dug around the tool's code until I found the method that create sparse images.  But seriously...look at the API documentation from the SeaDragon size and look at the code below and tell me if the documentation would have helped you at all.  I don't think so!   public static void WriteDeepZoomSparseImage(string mainImagePath, string subImagePath, string destination) {     Point parentImageSize = new Point(720, 420);     Point subImageSize = new Point(490, 310);     Point subImageLocation = new Point(196, 17);     List<Image> images = new List<Image>();     //create main image     Image mainImage = new Image(mainImagePath);     mainImage.Size = parentImageSize;     images.Add(mainImage);     //create sub image     Image subImage = new Image(subImagePath);     double hwRatio = subImageSize.X/subImageSize.Y;            // height width ratio of the tag cloud     double nodeWidth = subImageSize.X/parentImageSize.X;        // sub image width to parent image width ratio     double nodeHeight = subImageSize.Y / parentImageSize.Y;    // sub image height to parent image height ratio     double nodeX = subImageLocation.X/parentImageSize.X;       //x cordinate position on parent / width of parent     double nodeY = subImageLocation.Y / parentImageSize.Y;     //y cordinate position on parent / height of parent     subImage.ViewportWidth = (nodeWidth < double.Epsilon) ? 1.0 : (1.0 / nodeWidth);     subImage.ViewportOrigin = new Point(         (nodeWidth < double.Epsilon) ? -1.0 : (-nodeX / nodeWidth),         (nodeHeight < double.Epsilon) ? -1.0 : ((-nodeY / nodeHeight) / hwRatio));     images.Add(subImage);     //create sparse image     SparseImageCreator creator = new SparseImageCreator();     creator.Create(images, destination); }

    Read the article

  • [News] Utiliser le framework de bouchon Moq

    Moq est un framework permettant de mettre en oeuvre les mock-objets destin?es aux phases de tests. Cet excellent article illustre le principe : " (...) it is intended to be straightforward and easy to use mocking framework that doesn?t require any prior knowledge of the mocking concepts. So, it doesn't requires deep learning curve from the developers. It takes full advantage of the .NET 3.5 expression trees and the lambda expressions. Any of the methods and properties of the mock object can be easily represented in the lambda expressions."

    Read the article

< Previous Page | 149 150 151 152 153 154 155 156 157 158 159 160  | Next Page >