Search Results

Search found 33445 results on 1338 pages for 'single instance storage'.

Page 702/1338 | < Previous Page | 698 699 700 701 702 703 704 705 706 707 708 709  | Next Page >

  • Linux Flash Player with 2 Monitors: always full-screen on primary monitor

    - by CarlF
    My setup at home uses a laptop, with a larger external monitor in addition to the built-in LCD panel, which is primary. I can see the larger monitor from the rest of the room and use it as my TV, for playing DVDs and various types of web video. However, it isn't ideal for Flash video. For instance, if I watch a video from Hulu or any other Flash-based site, I can expand it to full-screen mode. However, no matter which monitor the browser window is on, the full-screen mode is always on the laptop LCD panel, which is both too small and not visible from most of the room. Does anyone know of a way to force the Flash video to play full-screen on the monitor I select instead of the primary? My video chipset is NVidia, using kernel 2.6.31 (Ubuntu). Thanks.

    Read the article

  • RDMA architecture - do you need adapters on both ends?

    - by Bobb
    I know Linux can use RDMA NICs like Solarflare... I just found Intel has something like that NetEffect cards. But Intel is talking all about clusters.. Can someone please explain. If I want low-latency networking and install RDMA NIC on my server. Is there limitation on where the cable can go? Is there a specific device expected on the other end? Is it special RDMA switch or RDMA adapter before switch or what? Why is this cluster talk? What if I want a single server with Windows (I can install HPC Windows or Windows 2008 R2)?

    Read the article

  • How can I track down what part of pfsense is blocking website access?

    - by Chase Florell
    I've got a PFSense firewall/gateway on our network. Everything works great except for the fact that I cannot access one specific website. Pfsense is running the following packages Country Block LightSquid nmap notes squid squidGuard Strikeback I can access every single website I've ever tried aside from one that we need for business use (http://bridalnetwork.ca) here's the traceroute frodo:~ chase$ traceroute bridalnetwork.ca traceroute to bridalnetwork.ca (192.197.103.73), 64 hops max, 52 byte packets 1 rohan (192.168.5.1) 6.618 ms 1.662 ms 9.207 ms 2 * * * 3 * * rohan (192.168.5.1) 7.225 ms !H 4 rohan (192.168.5.1) 5.314 ms !H 5.701 ms !H 7.573 ms !H frodo:~ chase$ How can I figure out what the reason behind the blockage is? note: this has been tested on every computer on the network with the same results. ps: the pfsense box is 'rohan' (192.168.5.1) Here's what I get with Squid enabled and here's what I get with Squid disabled

    Read the article

  • Troubles logging into VPN on Win7 64bit

    - by mike
    Hi, Before I can successfully logon to my company's VPN it runs a small check in the browser to check my current processes. One of the things it checks (among other things) is to see if you have an antivirus running. If you don't, you can't connect and it says please install one with a couple links to some free ones. The issue I'm having is I recently upgraded to Win7 x64 and I haven't been able to get past the "antivirus check" part. Before, I had AVG running and I never had a single problem for years. Now I tried both AVG and Avast and I still get blocked. Does it have something to do with both of these antiviruses running in *32 mode in the processes? Any help or ideas on how to fix this would be awesome. Thanks!

    Read the article

  • Smarter System Alerts

    - by mellowsoon
    We have a pretty simple system setup, where I get text messages when there is a system problem. It's nothing fancy. I send an email to my phone number within my logging class for alert levels. It works well enough, but it has one major flaw: A small hiccup in the system/site can turn into dozens of rapid fire text messages. Sometimes non-stop text messages until I log into the system and fix the problem. So I'm looking for pointers on software or services I can use that deal with alerts in a smarter way. Perhaps something that only sends me alerts X number of times within Y number of minutes. I'm not looking for a full monitoring suite. We already deal with that in house. I'm only looking to tackle this single problem.

    Read the article

  • Enabling Multiple Monitor Support from Terminal Services/Remote Desktop over Citrix

    - by Nicolas Webb
    Our Remote Desktop/Terminal Services solution where I work relies on Citrix for machines not connected via the VPN. We're using Citrix Xen server (I'm pretty sure) and I'm going to try to connect to a Windows 7 Host (my work computer) and I think the RDC client runs on a Win2003 host (exposed via Citrix). Is it possible to take advantage of Windows 7 multiple monitor support for RDC with this setup? Would I need to try getting my Citrix guys to have a different host machine for the RDC (Win2008, or Win7?)? I'm probably going to connect using the OS X Citrix client, but I'd be willing to BootCamp/Fusion up a Windows instance to work remotely, as well. I really want to be able to use multiple monitors remotely. It does "span" multiple montiors currently (I have a 3000x1024 desktop, for example) but I'd rather it be "true" multiple monitor instead of one giant desktop, if possible.

    Read the article

  • Apache not running from rc.d on FreeBSD

    - by Oksana Molotova
    I'm using FreeBSD 8.3 and Apache 2.2. I didn't install Apache from ports, instead compiled it from source because I wanted to move the binary and configuration to a different path (I'm centering all of the major production daemons and their configurations in a single place). In any case, I based the /usr/local/etc/rc.d/apache22 file on one from a different server where it was installed from ports, I only modified the binary and config paths within. I can manually execute it with /usr/local/etc/rc.d/apache22 start, however even with apache22_enable="YES" in /etc/rc.conf it fails to start. All permissions and ownership are identical to the other server where it works. What am I missing and is there a way to debug this kind of thing?

    Read the article

  • Should I use an ssl terminator or just haproxy?

    - by Justin Meltzer
    I'm trying to figure out how to set up my architecture for a socket.io app that will require both https and wss connections. I've found many tutorials on the web suggesting that you use something like stud or stunnel in front of haproxy, which then routes your unencrypted traffic to your app. If I were to go this route, is it suggested that haproxy and the ssl terminator be on separate instances, or is it fine if they are on the same EC2 server instance? If I do not want to use a separate ssl terminator, could I use haproxy to terminate the ssl? Or instead would it be possible to proxy these https and wss connections to my application and have the node app terminate the ssl itself?

    Read the article

  • Should DKIM signing happen in the application or the MTA?

    - by thomasrutter
    I'm trying to weigh up whether DKIM signing should be done by the application sending mail (for instance, the mailing list software you're using) or at the mail transfer agent (sendmail, postfix etc). Do you know any good arguments either way? As far as I can see, doing it at the MTA, such as with dkim-milter, is a lot easier to set up. However, if anyone gets access to the server, even just a normal unprivileged account such as a web hosting client's login, they'd be able to send email using sendmail and get the full blessing of my DKIM signature. What do you think is the best solution for my situation? I'm using a Debian server with apache, postfix, php&mysql, etc.

    Read the article

  • July, the 31 Days of SQL Server DMO’s – Day 3 (sys.dm_exec_connections)

    - by Tamarick Hill
      The third DMV we will review is the sys.dm_exec_connections DMV. This DMV is Server-Scoped and displays information about each and every current connection on your SQL Server Instance. Lets take a look at some information that this DMV returns. SELECT * FROM sys.dm_exec_connections After reviewing this DMV, in my opinion, its not a whole lot of useful information returned from this DMV from a monitoring or troubleshooting standpoint. The primary use case I have for this DMV is when I need to get a quick count of how many connections I have on one of my SQL Server boxes. For this purpose a quick SELECT COUNT(*) satisfies my need. However, for those who need it, there is other information such as what type of authentication a specific connection is using, network packet size, and client/local TCP ports being used. This information can come in handy for specific scenarios but you probably wont need it very much for your day to day monitoring/troubleshooting needs. However, this is still an important DMV that you should be aware of in the event that you need it. For more information on this DMV, please see the below Books Online link: http://msdn.microsoft.com/en-us/library/ms181509.aspx

    Read the article

  • Apache2 - setting PERL5LIB via SetEnv under CGI

    - by j0nes
    Hi, my setup is as follows: I have one Apache2 webserver running different vhosts, one vhost is for the production website, the other vhost is for a staging / preview system. Both vhosts have different DocumentRoots and also different (Perl) CGI folders. The used modules for each of these vhosts should be in different directories, so I did the following: <VirtualHost...> ServerName production SetEnv PERL5LIB /home/production/modules </VirtualHost> <VirtualHost...> ServerName staging SetEnv PERL5LIB /home/staging/modules </VirtualHost> However, I just noticed that in my Perl CGI scripts, both paths get filled into my @INC, so I can not separate the staging modules from the production modules, e.g. the SetEnv directive is not limited to a single virtual host, but seems to work globally. How can I solve this? Thanks! Jonas

    Read the article

  • Linux laptop encryption

    - by kaerast
    What are my options for encrypting the /home directories of my Ubuntu laptops? They are currently setup without any encryption and some have /home as a separate partition whilst others don't. Most of these laptops are single-user standalone laptops which are out on the road a lot. Is ecryptfs and the encrypted Private directory good enough or are there better, more secure, options? If somebody got hold of the laptop, how easy would it be for them to gain access to the encrypted files? Similar questions for encrypted lvm, truecrypt and any other solution I may not be aware of.

    Read the article

  • In Windows 8, how do you disable the unlock password for Microsoft Accounts?

    - by Huckle
    In Windows 8, in the scenario where there is a single user that has a Microsoft Account (i.e., they have created their account via a Microsoft email address) how does one disable the password prompt when unlocking the screen? The Windows 7 analogy would be to disable the screensaver password prompt. I can do this on a "local" account (one not backed by Microsoft) but the setting seems to have no effect on connected accounts. To replicate: create an account using [email protected] or [email protected] Lock the screen with WinKey+L Attempt to unlock, by clicking the mouse, without entering a password.

    Read the article

  • Random Monday Thoughs

    - by Terry Goldman
    On this Monday morning my thoughts center on why is it so hard to embrace governance, any form of governance for that matter, be it software development governance, SOA governance, data governance, IT governance, so on a so fourth?Most customers that I meet tend to think that they don't need don't need governance as all is good within the enterprise. The question I generally pose to colleges and customers, is you have to think of governance as an insurance policy. Take of instance, if you just bought a new car, perhaps your "dream" car, would you drive it on the open streets without having the car insured? Probably not.Governance is what insurance is to new cars, be it to SOA, IT transformations and software development. Governance is a insurance policy against risk of failure. Now once I put it in this context, ask yourself, does governance have value to your organization? Most people now get it. Once the seed of governance is planted at the executive level of an organization, it becomes a exercise in planting an that idea into key personnel within the organization. Then the justification for governance grows and grows across the enterprise.Thats my food for though in this Monday morning.FYI, stay tuned for an upcoming multi-part article on using Oracle Enterprise Repository to build a Enterprise Continuum as described in TOGAF v9.0.

    Read the article

  • Fast Society Creates Mini and Mobile Temporary Social Networks

    - by ETC
    You’re out on the town or at a convention with a bunch of friends. How do you keep in touch with the entire group simultaneously? Fast Society offers a smartphone-based solution: a temporary social network for group talking, texting, and more. Fast Society was originally an iPhone only application and has recently updated to include and Android app too. The premise is simple: You set up a Fast Society group, link your friends into it, and for that night (or convention weekend) you’re all part of the same mini group. You can text the entire group, share pictures, set up sub-groups (let’s say that half your group is going to stay up late and party while half need to hit the rack to get up early for presentations, you can create a new group for the night owls to communicate), share your location, and send in-app and SMS messages to the entire group. Check out the video above to see it in action or hit up the link below to read more and grab a copy. Face Society [via Mashable] Latest Features How-To Geek ETC How to Get Amazing Color from Photos in Photoshop, GIMP, and Paint.NET Learn To Adjust Contrast Like a Pro in Photoshop, GIMP, and Paint.NET Have You Ever Wondered How Your Operating System Got Its Name? Should You Delete Windows 7 Service Pack Backup Files to Save Space? What Can Super Mario Teach Us About Graphics Technology? Windows 7 Service Pack 1 is Released: But Should You Install It? Peaceful Alpine River on a Sunny Day [Wallpaper] Fast Society Creates Mini and Mobile Temporary Social Networks Page Zipper Unpacks Multi-Page Articles for Single-Page Display Minty Bug: Build an FM Bug Inside a Mint Container Get the MakeUseOf eBook Guide to Hacker Proofing Your PC Sync Your Windows Computer with Your Ubuntu One Account [Desktop Client]

    Read the article

  • ASP.NET Connections Spring 2012 Talks and Code

    - by Stephen.Walther
    Thank you everyone who attended my ASP.NET Connections talks last week in Las Vegas. I’ve attached the slides and code for the three talks that I delivered:   Using jQuery to interact with the Server through Ajax – In this talk, I discuss the different ways to communicate information between browser and server using Ajax. I explain the difference between the different types of Ajax calls that you can make with jQuery. I also discuss the differences between the JavaScriptSerializer, the DataContractJsonSerializer, and the JSON.NET serializer.   ASP.NET Validation In-Depth – In this talk, I distinguish between View Model Validation and Domain Model Validation. I demonstrate how you can use the validation attributes (including the new .NET 4.5 validation attributes), the jQuery Validation library, and the HTML5 input validation attributes to perform View Model Validation. I then demonstrate how you can use the IValidatableObject interface with the Entity Framework to perform Domain Model Validation.   Using the MVVM Pattern with JavaScript Views – In this talk, I discuss how you can create single page applications (SPA) by taking advantage of the open-source KnockoutJS library and the ASP.NET Web API.   Be warned that the sample code is contained in Visual Studio 11 Beta projects. If you don’t have this version of Visual Studio, then you will need to open the code samples in Notepad. Also, I apologize for getting the code for these talks posted so slowly. I’ve been down with a nasty case of the flu for the past week and haven’t been able to get to a computer.

    Read the article

  • Focus on Oracle Data Profiling and Data Quality 11g - 24/Fev/11

    - by Claudia Costa
    Thursday 24th February, 11am GMTOracle offers an integrated suite Data Quality software architected to discover and correct today's data quality problems and establish a platform prepared for tomorrow's yet unknown data challenges.Oracle Data Profiling provides data investigation, discovery, and profiling in support of quality, migration, integration, stewardship, and governance initiatives. It includes a broad range of features that expand upon basic profiling, including automated monitoring, business-rule validation, and trend analysis.Oracle Data Quality for Data Integrator provides cleansing, standardization, matching, address validation, location enrichment, and linking functions for global customer data and operational business data.It ensures that data adheres to established standards that are adaptable to fit each organization's specific needs. Both single - and double - byte data are processed in local languages to provide a unique and centralized view of customers, products and services.  During this in-person briefing, Data Integration Solution Specialists will be providing a technical overview and a walkthrough.Agenda Oracle Data Integration Strategy overview A focus on Oracle Data Profiling and Oracle Data Quality for Data Integrator: Oracle Data Profiling Oracle Data Quality for Data Integrator Live demo Q&A  This FREE online LIVE eSeminar will be delivered over the Web and Conference Call. Registrations received less than 24hours prior to start time may not receive confirmation to attend.To register click here.For any questions please contact [email protected]

    Read the article

  • ls returns nothing only in certain directories

    - by Jakobud
    I have a raid drive mounted here: /data/ And certain directories like this one: /data/somedir/somesubdir/ when I run ls w/ or w/o any flags, terminal doesn't return anything. It does not return an empty directory listing. It simply goes to the next line and sits there blank with no prompt coming up. I cannot CTRL-C out of it. I have to close this terminal instance and start over. At first I thought it was something to do with the ls command, but its pointing to /bin/ls and I can ls other directories just fine. Also, running this find /data/somedir/somesubdir immediately finds all the files just as expected.

    Read the article

  • SEO Implications of creating Niche Product Blogs vs Main Company Blog with Categories.

    - by Frank
    Our company has a dilemma that I am hoping the users of Pro WebMasters can help us with. Right now as it stands we create a seperate website for each product that we sell. We also have our corporate site which lists each of these brands. For Example: www.Apple.com < --- main company site www.Ipad.com <--- Product www.Iphone.com <--- Product www.Imac.com <-- Product We are looking to build a wordpress blog mainly for the purpose of increasing our SEO rank. Here are our two options: SINGLE BLOG - On Our Corporate Domain http://apple.com/blog Each post is categoried http://apple.com/category/ipad/ipad-5-realeasd.htm Easier to manage than multiple blogs More content since its listing about all our products. ONE BLOG PER PRODUCT - on each site http://ipad.com/blog Each product has its own blog with only its own articles Harder to manage, but does it benefit SEO? Can the team here tell me the SEO benefits of either approach? Similar to Apple all the products our company sells are loosely related. Although its not likely that a customer of product A would be interested in product B.

    Read the article

  • Cross-Platform Mobile Development With Mono for Android and MonoTouch

    - by Wallym
    Many years ago, in fact pre-Java, I remember a hallway discussion about the desire to write a single application that could easily run across various platforms. At the time, we were only worried about writing applications on Windows 3.1 and Mac OS 7.x. There were many discussions about windows, user interface concepts, and specifically a rather long discussion as to whether Mac users would accept a Mac application that didn't have balloon help. Thankfully, the marketplace answered this question for us with the Windows API winning the battle.A similar set of questions is currently going on in the mobile world. Unfortunately, at this point in time, there is currently no winning API and none currently in sight. What's a developer to do? Here are some questions that developers have (and there are many more):How can mobile developers target Android and the iPhone with the same code?How can .NET developers share their code across Android, iPhone and other platforms?How can developers give applications the look and feel of the specific platform and still allow as much code as possible to be shared?Mobile devices share many common features, such as cameras, accelerometers, and address books. How can we take advantage of them in a platform independent way and still give the users the look of every other application running on their platform?In this article, we'll look at some solutions to these cross-platform and code-sharing questions between Mono for Android, MonoTouch and the .NET Framework available to developers. 

    Read the article

  • Upcoming Webcast: Use Visual Decision Making To Boost the Pace of Product Innovation – October 24, 2013

    - by Gerald Fauteux
    See More, Do More Use Visual Decision Making To Boost the Pace of Product Innovation   Join a Free Webcast hosted by Oracle, featuring QUALCOMM Click here to register for this webcast   Keeping innovation ahead of shrinking product lifecycles continues to be a challenge in today’s fast-paced business environment, but new visualization techniques in the product design and development process are helping businesses widen the gap further.  Innovative visualization methods, including Augmented Business Visualization, can be powerful differentiators for business leaders, especially when it comes to accelerating product cycles.   Don’t miss this opportunity to discover how visualization tied to PLM can help empower visual decision making and enhance productivity across your organization.  See more and do more with the power of Oracle. Join solution experts from Oracle and special guest, Ravi Sankaran, Sr. Staff Systems Analyst, QUALCOMM to discuss how visual decision making can help efficiently ramp innovation efforts throughout the product lifecycle: Advance collaboration with universal access across all document types with robust security measures in place Synthesize product information quickly like cost, quality, compliance, etc. in a highly visual form from multiple sources in a single visual and actionable environment Increase productivity by rendering documents in the appropriate context of specific business processes Drive modern business transformation with new collaboration methods such as Augmented Business Visualization . Date: Thursday, October 24, 2013 Time: 10:00 a.m. PDT / 1:00 p.m. EDT Click here to register for this FREE event

    Read the article

  • C# with keyword equivalent

    - by oazabir
    There’s no with keyword in C#, like Visual Basic. So you end up writing code like this: this.StatusProgressBar.IsIndeterminate = false; this.StatusProgressBar.Visibility = Visibility.Visible; this.StatusProgressBar.Minimum = 0; this.StatusProgressBar.Maximum = 100; this.StatusProgressBar.Value = percentage; Here’s a work around to this: With.A<ProgressBar>(this.StatusProgressBar, (p) => { p.IsIndeterminate = false; p.Visibility = Visibility.Visible; p.Minimum = 0; p.Maximum = 100; p.Value = percentage; }); Saves you repeatedly typing the same class instance or control name over and over again. It also makes code more readable since it clearly says that you are working with a progress bar control within the block. It you are setting properties of several controls one after another, it’s easier to read such code this way since you will have dedicated block for each control. It’s a very simple one line function that does it: public static class With { public static void A<T>(T item, Action<T> work) { work(item); } } You could argue that you can just do this: var p = this.StatusProgressBar; p.IsIndeterminate = false; p.Visibility = Visibility.Visible; p.Minimum = 0; p.Maximum = 100; p.Value = percentage; But it’s not elegant. You are introducing a variable “p” in the local scope of the whole function. This goes against naming conventions. Morever, you can’t limit the scope of “p” within a certain place in the function.

    Read the article

  • Apache rewrite rules not causes a download dialog of the PHP file

    - by Shaihi
    I have Apache 2.2.17 using the WAMPServer 2.1 installation. I am debugging a website fully local on my computer. I have the following rule in the .htaccess: # Use PHP5 Single php.ini as default AddHandler application/x-httpd-php5s .php Options +FollowSymlinks RewriteEngine on Rewritebase / RewriteRule ^bella/(.*)/(.*)$ beauty.php?beauty_id=$1 [L] RewriteRule ^(argentina|brasil|chile|colombia|espana|mexico|rep_dominicana|uruguay|venezuela|peru|bolivia|cuba|ecuador|panama|paraguay|puerto_rico)/$ country.php?name=$1 [L] RewriteRule ^(argentina|brasil|chile|colombia|espana|mexico|rep_dominicana|uruguay|venezuela|peru|bolivia|cuba|ecuador|panama|paraguay|puerto_rico)/(hi5|facebook|twitter|orkut)/$ socialnetw.php?country=$1&category=$2 [L] The problem When I enable this rule and try to access http://localhost/index.php using FF I get a download dialog for the PHP file. If I comment the Rewrite* part in the .htaccess file then the index.php file loads fine, but navigation in the page is broken...

    Read the article

  • Creating an app pool a month to limit the scope of issues

    - by user39550
    I have about 360 sites running on a single app pool. Now I know we have a coding issue with one of those sites, were we have accidentally coded a memory leak. So what happens is the site runs, the memory leak starts and soon the app pool runs out of memory. Then slowly but surely, the rest of the 360 sites start going down like a domino affect. I understand that the root of the problem is some bad coding, which we'll fix, but instead of bringing down said 360 sites, I was thinking, we could create a new app-pool monthly that every site we create would go into that months app pool. First, that limit the scope of the issues to 5 - 20 sites and second if one site started having issues we wouldn't be bringing down all 360 sites. Is there any issues to this thinking, possible ramifications? Thanks in Advance! Jeremiah

    Read the article

  • Evil DRY

    - by StefanSteinegger
    DRY (Don't Repeat Yourself) is a basic software design and coding principle. But there is just no silver bullet. While DRY should increase maintainability by avoiding common design mistakes, it could lead to huge maintenance problems when misunderstood. The root of the problem is most probably that many developers believe that DRY means that any piece of code that is written more then once should be made reusable. But the principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system." So the important thing here is "knowledge". Nobody ever said "every piece of code". I try to give some examples of misusing the DRY principle. Code Repetitions by Coincidence There is code that is repeated by pure coincidence. It is not the same code because it is based on the same piece of knowledge, it is just the same by coincidence. It's hard to give an example of such a case. Just think about some lines of code the developer thinks "I already wrote something similar". Then he takes the original code, puts it into a public method, even worse into a base class where none had been there before, puts some weird arguments and some if or switch statements into it to support all special cases and calls this "increasing maintainability based on the DRY principle". The resulting "reusable method" is usually something the developer not even can give a meaningful name, because its contents isn't anything specific, it is just a bunch of code. For the same reason, nobody will really understand this piece of code. Typically this method only makes sense to call after some other method had been called. All the symptoms of really bad design is evident. Fact is, writing this kind of "reusable methods" is worse then copy pasting! Believe me. What will happen when you change this weird piece of code? You can't say what'll happen, because you can't understand what the code is actually doing. So better don't touch it anymore. Maintainability just died. Of course this problem is with any badly designed code. But because the developer tried to make this method as reusable as possible, large parts of the system get dependent on it. Completely independent parts get tightly coupled by this common piece of code. Changing on the single common place will have effects anywhere in the system, a typical symptom of too tight coupling. Without trying to dogmatically (and wrongly) apply the DRY principle, you just had a system with a weak design. Now you get a system which just can't be maintained anymore. So what can you do against it? When making code reusable, always identify the generally reusable parts of it. Find the reason why the code is repeated, find the common "piece of knowledge". If you have to search too far, it's probably not really there. Explain it to a colleague, if you can't explain or the explanation is to complicated, it's probably not worth to reuse. If you identify the piece of knowledge, don't forget to carefully find the place where it should be implemented. Reusing code is never worth giving up a clean design. Methods always need to do something specific. If you can't give it a simple and explanatory name, you did probably something weird. If you can't find the common piece of knowledge, try to make the code simpler. For instance, if you have some complicated string or collection operations within this code, write some general-purpose operations into a helper class. If your code gets simple enough, its not so bad if it can't be reused. If you are not able to find anything simple and reasonable, copy paste it. Put a comment into the code to reference the other copies. You may find a solution later. Requirements Repetitions by Coincidence Let's assume that you need to implement complex tax calculations for many countries. It's possible that some countries have very similar tax rules. These rules are still completely independent from each other, since every country can change it of its own. (Assumed that this similarity is actually by coincidence and not by political membership. There might be basic rules applying to all European countries. etc.) Let's assume that there are similarities between an Asian country and an African country. Moving the common part to a central place will cause problems. What happens if one of the countries changes its rules? Or - more likely - what happens if users of one country complain about an error in the calculation? If there is shared code, it is very risky to change it, even for a bugfix. It is hard to find requirements to be repeated by coincidence. Then there is not much you can do against the repetition of the code. What you really should consider is to make coding of the rules as simple as possible. So this independent knowledge "Tax Rules in Timbuktu" or wherever should be as pure as possible, without much overhead and stuff that does not belong to it. So you can write every independent requirement short and clean. DRYing try-catch and using Blocks This is a technical issue. Blocks like try-catch or using (e.g. in C#) are very hard to DRY. Imagine a complex exception handling, including several catch blocks. When the contents of the try block as well as the contents of the individual catch block are trivial, but the whole structure is repeated on many places in the code, there is almost no reasonable way to DRY it. try { // trivial code here using (Thingy thing = new thingy) { //trivial, but always different line of code } } catch(FooException foo) { // trivial foo handling } catch (BarException bar) { // trivial bar handling } catch { // trivial common handling } finally { // trivial finally block } The key here is that every block is trivial, so there is nothing to just move into a separate method. The only part that differs from case to case is the line of code in the body of the using block (or any other block). The situation is especially interesting if the many occurrences of this structure are completely independent: they appear in classes with no common base class, they don't aggregate each other and so on. Let's assume that this is a common pattern in service methods within the whole system. Examples of Evil DRYing in this situation: Put a if or switch statement into the method to choose the line of code to execute. There are several reasons why this is not a good idea: The close coupling of the formerly independent implementation is the strongest. Also the readability of the code and the use of a parameter to control the logic. Put everything into a method which takes a delegate as argument to call. The caller just passes his "specific line of code" to this method. The code will be very unreadable. The same maintainability problems apply as for any "Code Repetition by Coincidence" situations. Enforce a base class to all the classes where this pattern appears and use the template method pattern. It's the same readability and maintainability problem as above, but additionally complex and tightly coupled because of the base class. I would call this "Inheritance by Coincidence" which will not lead to great software design. What can you do against it: Ideally, the individual line of code is a call to a class or interface, which could be made individual by inheritance. If this would be the case, it wouldn't be a problem at all. I assume that it is no such a trivial case. Consider to refactor the error concept to make error handling easier. The last but not worst option is to keep the replications. Some pattern of code must be maintained in consistency, there is nothing we can do against it. And no reason to make it unreadable. Conclusion The DRY-principle is an important and basic principle every software developer should master. The key is to identify the "pieces of knowledge". There is code which can't be reused easily because of technical reasons. This requires quite a bit flexibility and creativity to make code simple and maintainable. It's not the problem of the principle, it is the problem of blindly applying a principle without understanding the problem it should solve. The result is mostly much worse then ignoring the principle.

    Read the article

< Previous Page | 698 699 700 701 702 703 704 705 706 707 708 709  | Next Page >