Search Results

Search found 26523 results on 1061 pages for 'jack back'.

Page 481/1061 | < Previous Page | 477 478 479 480 481 482 483 484 485 486 487 488  | Next Page >

  • Can I migrate from GNU Mailman to MailChimp?

    - by Flowpoke
    I have ~20 lists, all of which are mostly announce-only (newsletters--recipients do not reply back to the list) running in GNU Mailman. It's alright. Mailman has certainly prooven itself but we want some progressive features and a better peice of mind (delivery success, hosting, etc... we'd be happy paying a 3rd party to handle these things). can MailChimp give us what we need? I see tons of fun copy and graphics, showing off neat features but what I really want to do is; if MailChimp is doing the mailings, what does the address look like? is MailChimp good for sending out simple newsletters? What about automatic bounce processing / unsubscribing of users? I setup a free account but I don't see how any of it integrates into my own domain... no DNS overrides or cname suggestions. Also, I see MailChimp has a clean and nifty API client in Python that I want to integrate into our sites (Django powered) so that really really makes the service attractive to me--I just hope I understand it correctly.

    Read the article

  • Don't Use "Static" in C#?

    - by Joshiatto
    I submitted an application I wrote to some other architects for code review. One of them almost immediately wrote me back and said "Don't use "static". You can't write automated tests with static classes and methods. "Static" is to be avoided." I checked and fully 1/4 of my classes are marked "static". I use static when I am not going to create an instance of a class because the class is a single global class used throughout the code. He went on to mention something involving mocking, IOC/DI techniques that can't be used with static code. He says it is unfortunate when 3rd party libraries are static because of their un-testability. Is this other architect correct? update: here is an example: APIManager - this class keeps dictionaries of 3rd party APIs I am calling along with the next allowed time. It enforces API usage limits that a lot of 3rd parties have in their terms of service. I use it anywhere I am calling a 3rd party service by calling Thread.Sleep(APIManager.GetWait("ProviderXYZ")); before making the call. Everything in here is thread safe and it works great with the TPL in C#.

    Read the article

  • inconsistent ERRORLEVEL in a batch file

    - by Doron
    In a batch file, I have an inconsistent errorlevel behavior: The IP address 10.1.1.2 always replies. The following code always gives errorlevel 0 in one location (somewhere in the middle - exactly where i need it) inside the batch file. I copied only this snippet and placed it in the beginning and at the end of the batch file. In those locations, the result is always 1. Here is the code snippet: ping 10.1.1.2|Findstr /I /C:"timed out" /C:"host unreachable" echo %errorlevel% Any idea how to make it work also in the middle of the file? What am I doing wrong? I would hate to solve it with GOTOs(to the end of the file and back to where I need the result.)

    Read the article

  • Make it simple. Make it work.

    - by Sean Feldman
    In 2010 I had an experience to work for a business that had lots of challenges. One of those challenges was luck of technical architecture and business value recognition which translated in spending enormous amount of manpower and money on creating C++ solutions for desktop client w/o using .NET to minimize “footprint” (2#) of the client application in deployment environments. This was an awkward experience, considering that C++ custom code was created from scratch to make clients talk to .NET backend while simple having .NET as a dependency would cut time to market by at least 50% (and I’m downplaying the estimate). Regardless, recent Microsoft announcement about .NET vNext has reminded me that experience and how short sighted architecture at that company was. Investment made into making C++ client that cannot be maintained internally by team due to it’s specialization in .NET have created a situation where code to maintain will be more brutal over the time and  number of developers understanding it will be going and shrinking. Not only that. The ability to go cross-platform (#3) and performance achievement gained with native compilation (#1) would be an immediate pay back. Why am I saying all this? To make a simple point to myself and remind again – when working on a product that needs to get to the market, make it simple, make it work, and then see how technology is changing and how you can adopt. Simplicity will not let you down. But a complex solution will always do.

    Read the article

  • Windows 7 external 2.5 hard drive read write permissions format

    - by user76918
    Working with Windows 7 professional. While trying to format western digital 250GB sata laptop drive; receiving error not initialized. Went to elevated command line to diskpart to clean all; received error message write protected. Went to Disk Management & Virtual disk drive shows as disk 2 not initialized. No format options available greyed out. Went back to command line tried to see attributes disk is read only. How do I take owner ship to change the permissions & format.

    Read the article

  • AutoCAD 11 and network file shares

    - by gravyface
    Small network of perhaps half a dozen engineers, currently working on local copies of AutoCAD project files, which are then copied back up to file server (2008 Standard, 1-2 year old Dell server hardware, RAID 5 SAS disks (10k? not positive)) at end of day. To me, this sounds horribly inefficient and error-prone, however, I've been told that "AutoCAD and network files = bad idea" and this is gospel. The network is currently 10/100 (perhaps this is the reason for the "gospel") but all the workstations are within 2 years old and have GbE NICs so an upgrade of the core switch is long overdue. However, I know certain applications don't like network access, at all, and any sign of latency or disruption brings the whole thing crashing down. Anyone care to chime in?

    Read the article

  • NetBeans Podcast #61

    - by TinuA
    Download mp3: 39 minutes – 31.6 MB Subscribe to the NetBeans Podcast on iTunes NetBeans Community News with Geertjan and Tinu What's NEW? The Smarter and NOW FASTER NetBeans IDE 7.2 available since July. Is it faster for you too? Tell us about it on Twitter! (#netbeans) NetBeans Community Day at JavaOne is BACK!!! Join the NetBeans team in San Francisco on Sunday, September 30th for a full day of sessions about how various Java EE, JavaFX, and NetBeans Platform experts are using NetBeans in the real-world. NetBeans Community Day is just the start of the fun at JavaOne 2012, check out the full listing of ALL NetBeans-related sessions at the conference. NetBeans Governance Board elections are around the corner. Nominate yourself or someone who you think can represent the interest of the NetBeans Community. Email us at nbpodcast at netbeans dot org to get on the ballot in September. Community Interview: Çagatay Çivici, PrimeFaces Çagatay Çivici is the lead architect and founder of PrimeFaces , the popular JSF component library. Find out what the project is about, its inception, how to create PrimeFaces-based application inside NetBeans IDE, and more. Learn more about PrimeFaces at NetBeans Community Day at JavaOne 2012. Dig deeper into PrimeFaces at JavaOne 2012: CON6139 - Lessons Learned in Building Enterprise and Desktop Applications with the NetBeans IDE Community Interview: Timon Veenstra, Agrosense Timon Veenstra is the architect behind Agrosense , an open-source farm management system built on the NetBeans Platform. Find out how Agrosense helps farms run more efficiently and productively, and why NetBeans is the platform of choice for Timon and the Agrosense team. Catch a demo of Agrosense at NetBeans Community Day at JavaOne 2012. API Design with Jarda Tulach Geertjan has been using the Lookup API incorrectly; Jarda sets him on the right path. *Have ideas for NetBeans Podcast topics? Send them to nbpodcast at netbeans dot org. *Subscribe to the official NetBeans page on Facebook! Check us out as well on Twitter, YouTube, and Google+.

    Read the article

  • HDMI Sound Stops Working

    - by stueng
    When not used for a few hours the sound stops working on my HTPC. To get sound to work again I have to unplug the HDMI cable and plug it back in again When this sound "outage" occurs, the HDMI device dissapears from the sound config output devices I see the following in dmesg [78534.010328] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78534.010363] HDMI status: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78558.948403] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78558.948429] HDMI status: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78562.579047] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=0 [78562.579078] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78562.579992] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=1 [78562.580043] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78562.876030] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78563.176036] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78563.195139] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78563.195169] HDMI status: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78563.476030] HDMI status: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78635.529493] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78635.529524] HDMI status: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=0 [78641.330701] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=0 [78641.330733] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78641.331649] HDMI hot plug event: Codec=0 Pin=3 Presence_Detect=0 ELD_Valid=1 [78641.331668] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78641.628050] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78641.928037] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78642.228042] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78642.528039] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1 [78642.828037] HDMI status: Codec=0 Pin=3 Presence_Detect=1 ELD_Valid=1

    Read the article

  • Need script to redirect STDIN & STDOUT to named pipes

    - by user54903
    I have an app that launches an authentication helper (my script) and uses STDIN/STDOUT to communicate. I want to re-direct STDIN and STDOUT from this script to two named pipes for interaction with another program. E.g.: SCRIPT_STDIN pipe1 SCRIPT_STDOUT < pipe2 Here is the flow I'm trying to accomplish: [Application] - Launches helper script, writes to helpers STDIN, reads from helpers STDOUT (example: STDIN:username,password; STDOUT:LOGIN_OK) [Helper Script] - Reads STDIN (data from app), forwards to PIPE1; reads from PIPE2, writes that back to the app on STDOUT [Other Process] - Reads from PIPE1 input, processes and returns results to PIPE2 The cat command can almost do what I want. If there were an option to copy STDIN to STDERR I could make cat do this with a command (assuming the fictitious option -e echos to STDERR rather than STDOUT): cat -e PIPE2 2PIPE1 (read from PIPE2 and write it to STDOUT, copy input, normally going to STDERR to PIPE1)

    Read the article

  • Google+ Platform Office Hours for March 21, 2012: JavaScript and the REST APIs

    Google+ Platform Office Hours for March 21, 2012: JavaScript and the REST APIs It's a blast from the past. Here's the video from our office hours held on the 20th of March. In this session Jonathan and Wolff guided you through using the REST APIs with JavaScript. Get the source code: goo.gl Discuss this video on Google+: goo.gl 1:05 - How to use JSONP to access the REST APIs in JavaScript 2:30 - Setting up a new project in the API console 7:06 - The client libraries, what are they? 8:39 - Using the JavaScript client library to reimplement our example 13:27 - About OAuth and private resources 14:26 - Creating an OAuth client using the API console - The JavaScript client library discussion group - goo.gl 24:14 - Using the JavaScript client library and REST APIs from within a hangout - hangoutbots.blogspot.com Q&A 19 - Are you planning to change the +1 button back? 20:14 - Will this video be posted to YouTube? (Spoiler: the answer is yes) 20:43 - Do you read your issues list? - The Google+ platform issue tracker: goo.gl From: GoogleDevelopers Views: 2808 33 ratings Time: 27:03 More in Science & Technology

    Read the article

  • Why does terminal prompt text becomes black when connecting to Ubuntu with Nomachine NX client?

    - by David B
    I'm using Nomachine NX client for Windows to remotely connect to my Ubuntu. Every now and then I experience a strange phenomena: the text in the prompt of all open terminal windows becomes black, so it can't be viewed over the black background. Typed commands are also black, but the results are in normal colors. So I can run stuff, but can't see what I'm typing... After I close all open terminal windows and start a new terminal window, everything goes back to normal. This is rerally annoying and happens quite often. Any idea why?

    Read the article

  • Has "Killer Game Programming in Java" by Andrew Davison been rendered useless? What new tutorial should I follow? [duplicate]

    - by BDillan
    This question already has an answer here: Killer Game Programming [Java 3D] outdated? 5 answers Its pathetic how it was created in 2005 not so long ago when the Java 3D 1.31 API was released. Now after downloading the source code off the books website and implementing it onto my work-space it cant run. (The 3D Shooter Ch. 23) I downloaded Java 3D 1.5 API, installed it- went back to my source code and javax.media ect.., and EVERY imported class within the game simply couldn't be resolved... they are all outdated.. Please do not say how its meant for a positive curvature in your game development skills. No ~ I got the book to understand how to code 3D textures/particle systems/games. Without seeing results how can I learn? If there is still hope for this book please tell me. Otherwise what other books match this one in Game Programming? This one was very well organized, documented and long. I am not looking for a 3D game prog. book on Java. Rather one that has the same reputation as this one but is a bit newer..

    Read the article

  • /usr/bin/python Replacement

    - by tikiking1
    If I've changed the target of /usr/bin/python from /usr/bin/python2.7 to /usr/bin/python3.2 (I realize this was an ABSOUTELY HORRIBLE idea) in Ubuntu 12.04.1 LTS. Afterwards, several applications, including software-center and update-manager have stopped working. Insofar as I can tell, this is because they are written in Python2.7. I replaced the default /usr/bin/python shebang with the 2.7 one, and this fixes them on the application level. Switching /usr/bin/python back to /usr/bin/python2.7 really isn't an option, but is there a list of all applications installed by default in Ubuntu 12.04.1 LTS, if installed from a new CD-R, that use a shebang of #!/usr/bin/python instead of #!/usr/bin/pythonX.Y?

    Read the article

  • Calculating Delta time , what is wrong?

    - by SteveL
    For 2 days now i am trying to calculate the correct delta time for my game , I am starting to getting crazy since i tried all the solutions that i found on the 5 first google pages... What is wrong? I cant get the correct delta time ,whatever i tried is just not working , the delta goes from 1 to 4 and then back 1 and then to 3 even if i take the averange delta between many frames.Plus the game runs way much faster(i mean the movement) on slow devices than in fast. The game runs on android so the spikes between frames are expected. My code is this: void Game::render() { timesincestart=getTimeMil(); _director->Render(); _director->Update(); float dif=(getTimeMil()-timesincestart);//usally its about 5 milliseconds lastcheck++; sumdelta+=dif; if(lastcheck>20) { sumdelta=sumdelta/20; delta=sumdelta; sumdelta=0; lastcheck=0; } LOGI("delta:%f",delta); }

    Read the article

  • When i log on then i get annyoing cmd windows in windows7

    - by user191542
    I am using windows 7 on my office PC and that is linked with Active directory. I dont't know what happend if installed something few days ago many small softwares. I don't know if there was some virus or something but anti virus didn't tell anything. Now when i log ion then i keep getting many cmd screen opening and closing and i can't do anything. If i switch user and log with my admin acount then it also happens again witha dmin account. Now when again if i go back to old screen by switching user. then annoying cmd windows are not there. i want to know how can i fix that I managed to get print screen of that

    Read the article

  • Nginx Installation on Ubuntu giving 500 error

    - by user750301
    I just installed nginx on ubuntu 12.04 LTS. When i access localhost it gives me : 500 Internal Server Error nginx/1.2.3 error_log has following rewrite or internal redirection cycle while internally redirecting to "/index.html", client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost" This is default nginx configuration: nginx.conf has: include /etc/nginx/sites-enabled/*; /etc/nginx/sites-enabled/default has following root /usr/share/nginx/www; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules }

    Read the article

  • Linux halts every few seconds

    - by Zeppomedio
    We're having an issue where one our Linux boxes (Ubuntu 10.04 LTS, running on EC2 with a quadruple-large size, 68GB of RAM and 8 virtual cores with 3.25GHz each) freezes up every few seconds. Typing in an ssh session will freeze, and running strace on one of the Postgresql processes that's running usually shows: 02:37:41.567990 semop(7831581, {{3, -1, 0}}, 1 for a few seconds before it proceeds (it always gets stuck at that semop). OProfile shows that most of the time is spent in the kernel (60%) versus 37% in Postgresql. The result of these halts (which began suddenly a day ago) is that load on the box has gone from 0.7 to 10+, and causes our entire stack to slow done. Any ideas on how to track down what's going on? iostat doesn't show the disks being particularly slow or overloaded, and top shows user cpu % spike from 8% to about 40% whenever these back-ups happen.

    Read the article

  • Can I drive two external screens from an 'Alu' iMac?

    - by robsoft
    I've got a 24" 2.4 Ghz Core 2 Duo iMac. It's about 18 months old, though I can't specifically remember when I bought it. It has a Displayport Mini-DVI socket on the back, and currently I have that linked to a DVI adaptor driving a Philips 20" widescreen monitor in portrait mode (awesome for browsing). I have another, identical Philips monitor and wondered if there was a way of connecting that to the iMac too. Is there such a thing as a DisplayPort Mini-DVI to dual-DVIs adaptor? Can this iMac's graphics card even drive such a set-up? The graphics chipset in the iMac is reported as ATI Radeon HS2600, 256 MB. The main iMac display is 1920x1200 and the Philips display is 1050x1680 (@60Hz, rotated 90 degrees). The third screen would be another 1050x1680 and ideally I'd have it portrait again, too. EDIT: Please let this question stand - it's not a dupe. The current Mac laptops use 'Mini Displayport' connectors, which are not the same as DisplayPort Mini-DVI connectors.

    Read the article

  • What You Said: Favorite Web Clipping Tool

    - by Jason Fitzpatrick
    Earlier this week we asked you to share your favorite tools for clipping articles from the web for storage and later reading. You responded and now we’re back to highlight some reader favorites. At the top of the heap, by a wide margin, was Evernote—the ubiquitous web-based notebook that makes it super simple to sync and share your notes. It has a snappy clipping tool built right in, and readers were quite fond of the wide ranging tools and integrations supported by Evernote. Laurel writes: Evernote! That way I always have that info handy on all my computers & phone, at work, home, etc. I can make notes to it and it is always available! It’s the best all around app I’ve found for this use! :) Richard highlights how Evernote’s desktop app has replaced OneNote (another popular reader choice): When in Windows – Evernote desktop 4.1 – it does everything that OneNote ever did for me. How to Make the Kindle Fire Silk Browser *Actually* Fast! Amazon’s New Kindle Fire Tablet: the How-To Geek Review HTG Explains: How Hackers Take Over Web Sites with SQL Injection / DDoS

    Read the article

  • Welcome to the Weblog on Oracle ADF Mobile!

    - by joe.huang
    Welcome to ADF Mobile team's weblog.  My name is Joe Huang - I am the product manager for ADF Mobile.  Oracle ADF Mobile is a part of Oracle's Application Development Framework (ADF) that support the development of enterprise/business applications that run on mobile devices.  The development tool for this framework is of course Oracle JDeveloper.  As some of you may know, we currently support the development of mobile browser-based application - this part of product is called ADF Mobile Browser.  Additionally, we are close to release a technology preview of ADF Mobile Client, which supports development of on-device, disconnect capable mobile applications.  What's truly unique about ADF Mobile development process is that it's a very visual and declarative experience, while still allow power Java developers to completely extend the framework to their liking.  The framework also provides a rich set of services needed by an enterprise-grade mobile application - these services would literally take years to implement if they are to be built from the ground up.  However, by using JDeveloper and ADF Mobile, you get the entire framework at your service!In the coming entries, the ADF Mobile product development team will publish any news, best practices, our observation on mobile technology trends, or just our experiences in playing with "gadgets".  Be sure to check back on this page!Sincerely,Joe HuangOracle

    Read the article

  • Declarative programming vs. Imperative programming

    - by EpsilonVector
    I feel very comfortable with Imperative programming. I never have trouble expressing algorithmically what I want the computer to do once I figured out what is it that I want it to do. But when it comes to languages like SQL or Relational Algebra I often get stuck because my head is too used to Imperative programming. For example, suppose you have the relations band(bandName, bandCountry), venue(venueName, venueCountry), plays(bandName, venueName), and I want to write a query that says: all venueNames such that for every bandCountry there's a band from that country that plays in venue of that name. In my mind I immediately go "for each venueName iterate over all the bandCountries and for each bandCountry get the list of bands that come from it. If none of them play in venueName, go to next venueName. Else, at the end of the bandCountries iteration add venueName to the set of good venueNames". ...but you can't talk like that in SQL and I actually need to think about how to formulate this, with the intuitive Imperative solution constantly nagging in the back of my head. Did anybody else had this problem? How did you overcome this? Did you figured out a paradigm shift? Made a map from Imperative concepts to SQL concepts to translate Imperative solutions into Declarative ones? Read a good book? PS I'm not looking for a solution to the above query, I did solve it.

    Read the article

  • The Windows Azure Software Development Kit (SDK) and the Windows Azure Training Kit (WATK)

    - by BuckWoody
    Windows Azure is a platform that allows you to write software, run software, or use software that we've already written. We provide lots of resources to help you do that - many can be found right here in this blog series. There are two primary resources you can use, and it's important to understand what they are and what they do. The Windows Azure Software Development Kit (SDK) Actually, this isn't one resource. We have SDK's for multiple development environments, such as Visual Studio and also Eclipse, along with SDK's for iOS, Android and other environments. Windows Azure is a "back end", so almost any technology or front end system can use it to solve a problem. The SDK's are primarily for development. In the case of Visual Studio, you'll get a runtime environment for Windows Azure which allows you to develop, test and even run code all locally - you do not have to be connected to Windows Azure at all, until you're ready to deploy. You'll also get a few samples and codeblocks, along with all of the libraries you need to code with Windows Azure in .NET, PHP, Ruby, Java and more. The SDK is updated frequently, so check this location to find the latest for your environment and language - just click the bar that corresponds to what you want: http://www.windowsazure.com/en-us/develop/downloads/ The Windows Azure Training Kit (WATK) Whether you're writing code, using Windows Azure Virtual Machines (VM's) or working with Hadoop, you can use the WATK to get examples, code, PowerShell scripts, PowerPoint decks, training videos and much more. This should be your second download after the SDK. This is all of the training you need to get started, and even beyond. The WATK is updated frequently - and you can find the latest one here: http://www.windowsazure.com/en-us/develop/net/other-resources/training-kit/     There are many other resources - again, check the http://windowsazure.com site, the community newsletter (which introduces the latest features), and my blog for more.

    Read the article

  • C#: Why Decorate When You Can Intercept

    - by James Michael Hare
    We've all heard of the old Decorator Design Pattern (here) or used it at one time or another either directly or indirectly.  A decorator is a class that wraps a given abstract class or interface and presents the same (or a superset) public interface but "decorated" with additional functionality.   As a really simplistic example, consider the System.IO.BufferedStream, it itself is a descendent of System.IO.Stream and wraps the given stream with buffering logic while still presenting System.IO.Stream's public interface:   1: Stream buffStream = new BufferedStream(rawStream); Now, let's take a look at a custom-code example.  Let's say that we have a class in our data access layer that retrieves a list of products from a database:  1: // a class that handles our CRUD operations for products 2: public class ProductDao 3: { 4: ... 5:  6: // a method that would retrieve all available products 7: public IEnumerable<Product> GetAvailableProducts() 8: { 9: var results = new List<Product>(); 10:  11: // must create the connection 12: using (var con = _factory.CreateConnection()) 13: { 14: con.ConnectionString = _productsConnectionString; 15: con.Open(); 16:  17: // create the command 18: using (var cmd = _factory.CreateCommand()) 19: { 20: cmd.Connection = con; 21: cmd.CommandText = _getAllProductsStoredProc; 22: cmd.CommandType = CommandType.StoredProcedure; 23:  24: // get a reader and pass back all results 25: using (var reader = cmd.ExecuteReader()) 26: { 27: while(reader.Read()) 28: { 29: results.Add(new Product 30: { 31: Name = reader["product_name"].ToString(), 32: ... 33: }); 34: } 35: } 36: } 37: }            38:  39: return results; 40: } 41: } Yes, you could use EF or any myriad other choices for this sort of thing, but the germaine point is that you have some operation that takes a non-trivial amount of time.  What if, during the production day I notice that my application is performing slowly and I want to see how much of that slowness is in the query versus my code.  Well, I could easily wrap the logic block in a System.Diagnostics.Stopwatch and log the results to log4net or other logging flavor of choice: 1:     // a class that handles our CRUD operations for products 2:     public class ProductDao 3:     { 4:         private static readonly ILog _log = LogManager.GetLogger(typeof(ProductDao)); 5:         ... 6:         7:         // a method that would retrieve all available products 8:         public IEnumerable<Product> GetAvailableProducts() 9:         { 10:             var results = new List<Product>(); 11:             var timer = Stopwatch.StartNew(); 12:             13:             // must create the connection 14:             using (var con = _factory.CreateConnection()) 15:             { 16:                 con.ConnectionString = _productsConnectionString; 17:                 18:                 // and all that other DB code... 19:                 ... 20:             } 21:             22:             timer.Stop(); 23:             24:             if (timer.ElapsedMilliseconds > 5000) 25:             { 26:                 _log.WarnFormat("Long query in GetAvailableProducts() took {0} ms", 27:                     timer.ElapsedMillseconds); 28:             } 29:             30:             return results; 31:         } 32:     } In my eye, this is very ugly.  It violates Single Responsibility Principle (SRP), which says that a class should only ever have one responsibility, where responsibility is often defined as a reason to change.  This class (and in particular this method) has two reasons to change: If the method of retrieving products changes. If the method of logging changes. Well, we could “simplify” this using the Decorator Design Pattern (here).  If we followed the pattern to the letter, we'd need to create a base decorator that implements the DAOs public interface and forwards to the wrapped instance.  So let's assume we break out the ProductDAO interface into IProductDAO using your refactoring tool of choice (Resharper is great for this). Now, ProductDao will implement IProductDao and get rid of all logging logic: 1:     public class ProductDao : IProductDao 2:     { 3:         // this reverts back to original version except for the interface added 4:     } 5:  And we create the base Decorator that also implements the interface and forwards all calls: 1:     public class ProductDaoDecorator : IProductDao 2:     { 3:         private readonly IProductDao _wrappedDao; 4:         5:         // constructor takes the dao to wrap 6:         public ProductDaoDecorator(IProductDao wrappedDao) 7:         { 8:             _wrappedDao = wrappedDao; 9:         } 10:         11:         ... 12:         13:         // and then all methods just forward their calls 14:         public IEnumerable<Product> GetAvailableProducts() 15:         { 16:             return _wrappedDao.GetAvailableProducts(); 17:         } 18:     } This defines our base decorator, then we can create decorators that add items of interest, and for any methods we don't decorate, we'll get the default behavior which just forwards the call to the wrapper in the base decorator: 1:     public class TimedThresholdProductDaoDecorator : ProductDaoDecorator 2:     { 3:         private static readonly ILog _log = LogManager.GetLogger(typeof(TimedThresholdProductDaoDecorator)); 4:         5:         public TimedThresholdProductDaoDecorator(IProductDao wrappedDao) : 6:             base(wrappedDao) 7:         { 8:         } 9:         10:         ... 11:         12:         public IEnumerable<Product> GetAvailableProducts() 13:         { 14:             var timer = Stopwatch.StartNew(); 15:             16:             var results = _wrapped.GetAvailableProducts(); 17:             18:             timer.Stop(); 19:             20:             if (timer.ElapsedMilliseconds > 5000) 21:             { 22:                 _log.WarnFormat("Long query in GetAvailableProducts() took {0} ms", 23:                     timer.ElapsedMillseconds); 24:             } 25:             26:             return results; 27:         } 28:     } Well, it's a bit better.  Now the logging is in its own class, and the database logic is in its own class.  But we've essentially multiplied the number of classes.  We now have 3 classes and one interface!  Now if you want to do that same logging decorating on all your DAOs, imagine the code bloat!  Sure, you can simplify and avoid creating the base decorator, or chuck it all and just inherit directly.  But regardless all of these have the problem of tying the logging logic into the code itself. Enter the Interceptors.  Things like this to me are a perfect example of when it's good to write an Interceptor using your class library of choice.  Sure, you could design your own perfectly generic decorator with delegates and all that, but personally I'm a big fan of Castle's Dynamic Proxy (here) which is actually used by many projects including Moq. What DynamicProxy allows you to do is intercept calls into any object by wrapping it with a proxy on the fly that intercepts the method and allows you to add functionality.  Essentially, the code would now look like this using DynamicProxy: 1: // Note: I like hiding DynamicProxy behind the scenes so users 2: // don't have to explicitly add reference to Castle's libraries. 3: public static class TimeThresholdInterceptor 4: { 5: // Our logging handle 6: private static readonly ILog _log = LogManager.GetLogger(typeof(TimeThresholdInterceptor)); 7:  8: // Handle to Castle's proxy generator 9: private static readonly ProxyGenerator _generator = new ProxyGenerator(); 10:  11: // generic form for those who prefer it 12: public static object Create<TInterface>(object target, TimeSpan threshold) 13: { 14: return Create(typeof(TInterface), target, threshold); 15: } 16:  17: // Form that uses type instead 18: public static object Create(Type interfaceType, object target, TimeSpan threshold) 19: { 20: return _generator.CreateInterfaceProxyWithTarget(interfaceType, target, 21: new TimedThreshold(threshold, level)); 22: } 23:  24: // The interceptor that is created to intercept the interface calls. 25: // Hidden as a private inner class so not exposing Castle libraries. 26: private class TimedThreshold : IInterceptor 27: { 28: // The threshold as a positive timespan that triggers a log message. 29: private readonly TimeSpan _threshold; 30:  31: // interceptor constructor 32: public TimedThreshold(TimeSpan threshold) 33: { 34: _threshold = threshold; 35: } 36:  37: // Intercept functor for each method invokation 38: public void Intercept(IInvocation invocation) 39: { 40: // time the method invocation 41: var timer = Stopwatch.StartNew(); 42:  43: // the Castle magic that tells the method to go ahead 44: invocation.Proceed(); 45:  46: timer.Stop(); 47:  48: // check if threshold is exceeded 49: if (timer.Elapsed > _threshold) 50: { 51: _log.WarnFormat("Long execution in {0} took {1} ms", 52: invocation.Method.Name, 53: timer.ElapsedMillseconds); 54: } 55: } 56: } 57: } Yes, it's a bit longer, but notice that: This class ONLY deals with logging long method calls, no DAO interface leftovers. This class can be used to time ANY class that has an interface or virtual methods. Personally, I like to wrap and hide the usage of DynamicProxy and IInterceptor so that anyone who uses this class doesn't need to know to add a Castle library reference.  As far as they are concerned, they're using my interceptor.  If I change to a new library if a better one comes along, they're insulated. Now, all we have to do to use this is to tell it to wrap our ProductDao and it does the rest: 1: // wraps a new ProductDao with a timing interceptor with a threshold of 5 seconds 2: IProductDao dao = TimeThresholdInterceptor.Create<IProductDao>(new ProductDao(), 5000); Automatic decoration of all methods!  You can even refine the proxy so that it only intercepts certain methods. This is ideal for so many things.  These are just some of the interceptors we've dreamed up and use: Log parameters and returns of methods to XML for auditing. Block invocations to methods and return default value (stubbing). Throw exception if certain methods are called (good for blocking access to deprecated methods). Log entrance and exit of a method and the duration. Log a message if a method takes more than a given time threshold to execute. Whether you use DynamicProxy or some other technology, I hope you see the benefits this adds.  Does it completely eliminate all need for the Decorator pattern?  No, there may still be cases where you want to decorate a particular class with functionality that doesn't apply to the world at large. But for all those cases where you are using Decorator to add functionality that's truly generic.  I strongly suggest you give this a try!

    Read the article

  • Removing an OTF macro from a Razer Deathstalker

    - by Herpeslurpee
    I recently bought a Razer Deathstalker, and the other day I managed to activate the OTF macro recorder by accident, so now I have random gibberish and key presses bound to regular keys, so typing anything ends up being a pain, considering the backspace key prints "allallallallall", and so on. The only way I've found of fixing this is reconnecting the keyboard or disabling Synapse, but that's only temporary, as it comes right back the next time I turn my PC on. Razer support mentions nothing related to removing them, and neither anywhere else I could imagine, and nothing shows up in Synapse (god I hate Synapse). But anyways, I'd appreciate it if anyone could help. Thanks

    Read the article

  • How to restrict Apache Location directive to cetain sub-domain?

    - by ohho
    On our server www.example.com, we use the <Location> directive to proxy traffic to a back-end server: <Location /app1> ProxyPass http://192.168.1.20 </Location> Then we added a sub-domain uat.example.com which points to the same IP address of www.example.com. We want to use it as a proxy for client to test an app being developed. Hopefully, the client can access via: http:/uat.example.com/app2_uat Now if we add a Location: <Location /app2_uat> ProxyPass http://192.168.1.30 </Location> The client can access both: http:/www.example.com/app2_uat http:/uat.example.com/app2_uat How can I restrict Location such that only: http:/uat.example.com/app2_uat is accessible? (i.e. http:/www.example.com/app2_uat should not be accessible.)

    Read the article

< Previous Page | 477 478 479 480 481 482 483 484 485 486 487 488  | Next Page >