Search Results

Search found 11153 results on 447 pages for 'count zero'.

Page 160/447 | < Previous Page | 156 157 158 159 160 161 162 163 164 165 166 167  | Next Page >

  • Is commented out code really always bad?

    - by nikie
    Practically every text on code quality I've read agrees that commented out code is a bad thing. The usual example is that someone changed a line of code and left the old line there as a comment, apparently to confuse people who read the code later on. Of course, that's a bad thing. But I often find myself leaving commented out code in another situation: I write a computational-geometry or image processing algorithm. To understand this kind of code, and to find potential bugs in it, it's often very helpful to display intermediate results (e.g. draw a set of points to the screen or save a bitmap file). Looking at these values in the debugger usually means looking at a wall of numbers (coordinates, raw pixel values). Not very helpful. Writing a debugger visualizer every time would be overkill. I don't want to leave the visualization code in the final product (it hurts performance, and usually just confuses the end user), but I don't want to loose it, either. In C++, I can use #ifdef to conditionally compile that code, but I don't see much differnce between this: /* // Debug Visualization: draw set of found interest points for (int i=0; i<count; i++) DrawBox(pts[i].X, pts[i].Y, 5,5); */ and this: #ifdef DEBUG_VISUALIZATION_DRAW_INTEREST_POINTS for (int i=0; i<count; i++) DrawBox(pts[i].X, pts[i].Y, 5,5); #endif So, most of the time, I just leave the visualization code commented out, with a comment saying what is being visualized. When I read the code a year later, I'm usually happy I can just uncomment the visualization code and literally "see what's going on". Should I feel bad about that? Why? Is there a superior solution? Update: S. Lott asks in a comment Are you somehow "over-generalizing" all commented code to include debugging as well as senseless, obsolete code? Why are you making that overly-generalized conclusion? I recently read Robert Glass' "Clean Code", which says: Few practices are as odious as commenting-out code. Don't do this!. I've looked at the paragraph in the book again (p. 68), there's no qualification, no distinction made between different reasons for commenting out code. So I wondered if this rule is over-generalizing (or if I misunderstood the book) or if what I do is bad practice, for some reason I didn't know.

    Read the article

  • Detecting End of Animation

    - by Will
    So I am making a death animation for a game. enemy1 is a UIImageView, and what I'm doing is when an integer is less than or equal to zero, it calls this deathAnimation which only happens once. What I want to do is use a CGPointMake right when the animation is finished being called. Note that before the deathAnimation is called, there is another animation that is constantly being called 30 times a second. I'm not using anything like cocos2d. if (enemy1health <= 0) { [self slime1DeathAnimation]; //How can i detect the end of this animation } This is how the animation is done -(void)slime1DeathAnimation{ enemy1.animationImages = [[NSArray alloc] initWithObjects: [UIImage imageNamed:@"Slime Death 1.png"], [UIImage imageNamed:@"Slime Death 2.png"], [UIImage imageNamed:@"Slime Death 3.png"], [UIImage imageNamed:@"Slime Death 4.png"], [UIImage imageNamed:@"Slime Death 5.png"], nil]; enemy1.animationDuration = 0.5; enemy1.animationRepeatCount = 1; [enemy1 startAnimating]; } If you need more code just ask

    Read the article

  • T-SQL Tuesday # 16 : This is not the aggregate you're looking for

    - by AaronBertrand
    This week, T-SQL Tuesday is being hosted by Jes Borland ( blog | twitter ), and the theme is " Aggregate Functions ." When people think of aggregates, they tend to think of MAX(), SUM() and COUNT(). And occasionally, less common functions such as AVG() and STDEV(). I thought I would write a quick post about a different type of aggregate: string concatenation. Even going back to my classic ASP days, one of the more common questions out in the community has been, "how do I turn a column into a comma-separated...(read more)

    Read the article

  • Are 'edited by' inline comments the norm in shops which use revision control?

    - by Joshua Smith
    The senior dev in our shop insists that whenever code is modified, the programmer responsible should add an inline comment stating what he did. These comments usually look like // YYYY-MM-DD <User ID> Added this IF block per bug 1234. We use TFS for revision control, and it seems to me that comments of this sort are much more appropriate as check-in notes rather than inline noise. TFS even allows you to associate a check-in with one or more bugs. Some of our older, often-modified class files look like they have a comment-to-LOC ratio approaching 1:1. To my eyes, these comments make the code harder to read and add zero value. Is this a standard (or at least common) practice in other shops?

    Read the article

  • The clock hands of the buffer cache

    - by Tony Davis
    Over a leisurely beer at our local pub, the Waggon and Horses, Phil Factor was holding forth on the esoteric, but strangely poetic, language of SQL Server internals, riddled as it is with 'sleeping threads', 'stolen pages', and 'memory sweeps'. Generally, I remain immune to any twinge of interest in the bowels of SQL Server, reasoning that there are certain things that I don't and shouldn't need to know about SQL Server in order to use it successfully. Suddenly, however, my attention was grabbed by his mention of the 'clock hands of the buffer cache'. Back at the office, I succumbed to a moment of weakness and opened up Google. He wasn't lying. SQL Server maintains various memory buffers, or caches. For example, the plan cache stores recently-used execution plans. The data cache in the buffer pool stores frequently-used pages, ensuring that they may be read from memory rather than via expensive physical disk reads. These memory stores are classic LRU (Least Recently Updated) buffers, meaning that, for example, the least frequently used pages in the data cache become candidates for eviction (after first writing the page to disk if it has changed since being read into the cache). SQL Server clearly needs some mechanism to track which pages are candidates for being cleared out of a given cache, when it is getting too large, and it is this mechanism that is somewhat more labyrinthine than I previously imagined. Each page that is loaded into the cache has a counter, a miniature "wristwatch", which records how recently it was last used. This wristwatch gets reset to "present time", each time a page gets updated and then as the page 'ages' it clicks down towards zero, at which point the page can be removed from the cache. But what is SQL Server is suffering memory pressure and urgently needs to free up more space than is represented by zero-counter pages (or plans etc.)? This is where our 'clock hands' come in. Each cache has associated with it a "memory clock". Like most conventional clocks, it has two hands; one "external" clock hand, and one "internal". Slava Oks is very particular in stressing that these names have "nothing to do with the equivalent types of memory pressure". He's right, but the names do, in that peculiar Microsoft tradition, seem designed to confuse. The hands do relate to memory pressure; the cache "eviction policy" is determined by both global and local memory pressures on SQL Server. The "external" clock hand responds to global memory pressure, in other words pressure on SQL Server to reduce the size of its memory caches as a whole. Global memory pressure – which just to confuse things further seems sometimes to be referred to as physical memory pressure – can be either external (from the OS) or internal (from the process itself, e.g. due to limited virtual address space). The internal clock hand responds to local memory pressure, in other words the need to reduce the size of a single, specific cache. So, for example, if a particular cache, such as the plan cache, reaches a defined "pressure limit" the internal clock hand will start to turn and a memory sweep will be performed on that cache in order to remove plans from the memory store. During each sweep of the hands, the usage counter on the cache entry is reduced in value, effectively moving its "last used" time to further in the past (in effect, setting back the wrist watch on the page a couple of hours) and increasing the likelihood that it can be aged out of the cache. There is even a special Dynamic Management View, sys.dm_os_memory_cache_clock_hands, which allows you to interrogate the passage of the clock hands. Frequently turning hands equates to excessive memory pressure, which will lead to performance problems. Two hours later, I emerged from this rather frightening journey into the heart of SQL Server memory management, fascinated but still unsure if I'd learned anything that I'd put to any practical use. However, I certainly began to agree that there is something almost Tolkeinian in the language of the deep recesses of SQL Server. Cheers, Tony.

    Read the article

  • How can I get data off of a (probably) very corrupt drive?

    - by Mercury1964
    So, my younger brother wanted my help today. Apparently, he was helping a friend install Ubuntu to his laptop, and midway through the install (on a filled hard-drive with Windows 8, from the liveusb thing): 1) They realized that they had chosen "Erase and install" accidentally and decided the best course of action was to (in the middle of an install, remember) 2) Force shutdown the computer. After I had replaced my eyeballs back into their sockets, my bro asked if I could do anything about his friend's data, which he wanted back. This, however, drifts out of my normal comfort zone. I know this about the install: 1) It was on a fairly new Windows 8 laptop, so it had whatever filesystem it uses nowadays on the entire drive 2) They didn't choose the "zero out drive data" option 3) They stopped the install at some point (not sure if before or after wipe) I can imagine that it now has two corrupted filesystems on it (whatever Windows 8 was on and ext3) and that some of the data still exists (assuming it wasn't overwritten already). Is there anything that can be done for whatever data is left on the drive?

    Read the article

  • Cocos2D 2.0 - masking a sprite

    - by Desperate Developer
    I have read this tutorial about how to mask sprites using Cocos2D 2.0. http://www.raywenderlich.com/4428/how-to-mask-a-sprite-with-cocos2d-2-0 But the author talks about OpenGL ES textures and vertices as they were common knowledge. My knowledge about OpenGl is zero raised to infinity. All I want is to use a rectangle to mask a sprite to it. How I would do in Photoshop using a rectangle as mask (yes, I want to clip a sprite to the rectangle bounds and no, I do not want to use the ClippingNode solution, that do not works for animation/scaling etc.). So, can you guys translate the klingon language used in this tutorial and tell how a solid rectangle can be used to mask a sprite in Cocos2D? I am desperate, as my username states. I am searching this for a week and have tried several solutions without satisfactory results. Please help me. Thanks!

    Read the article

  • What You Said: Your Tech Spring Cleaning Routines

    - by Jason Fitzpatrick
    Earlier this week we asked you to share your tech spring cleaning routine; now we’re back to highlight your tips, tricks, and techniques. What tools rule the spring cleaning roost? Compressed air and microfiber cloths are the tools of choice by a wide margin. D^Angelo highlights the software and physicals tools he uses: Backup all the important stuff just to be safe (c:/, my documents, desktop, drivers) Cleaning the dust with some office depot compressed air, avoiding spinning the fans. Use a brush for that small places (fans, memory, capacitors, etc). Use some dielectric spray on the motherboard. If the pc turned on without problems its time to use ccleaner, Check if there is a toolbar installed or another unusual software that I don’t want. Run my antivirus software or malwarebytes; some defraggler maybe. Make Your Own Windows 8 Start Button with Zero Memory Usage Reader Request: How To Repair Blurry Photos HTG Explains: What Can You Find in an Email Header?

    Read the article

  • Oracle Exalogic Elactisc Cloud X2-2 est disponible, pour une meilleure expérience de développement dans le cloud

    Oracle Exalogic Elactisc Cloud X2-2 est disponible, pour une meilleure expérience de développement dans le cloud Mise à jour du 08.12.2010 par Katleen Oracle vient d'annoncer ce jour l'arrivée de son infrastructure cloud "Exalogic Elastic Cloud X2-2". Celle-ci servira de base de consolidation pour la quasi globalité des applications Java et non-Java, ainsi que pour les charges de travail. Ce système hardware et software mélange des processeurs x86 cutting-edge 64-bit, une fabrication I/O basée sur InfiniBand ; ainsi qu'un stockage solid-state sur Oracle WebLogic Server. Cette combinaison inédite permet une interaction entre divers composants d'une Java app et l'I/O zero-copy....

    Read the article

  • Server Systems for SQL Server 2012 per core licensing

    - by jchang
    Until recently, the SQL Server Enterprise Edition per processor (socket) licensing model resulted in only 2 or 3 server system configurations being the preferred choice. Determine the number of sockets: 2, 4 or 8. Then select the processor with the most compute capability at that socket count level. Finally, fill the DIMM sockets with the largest capacity ECC memory module at reasonable cost per GB. Currently this is the 16GB DIMM with a price of $365 on the Dell website, and $240 from Crucial. The...(read more)

    Read the article

  • Platform Builder: Disable the USB Driver Dialog

    - by Bruce Eitman
    For a long time, Windows CE developers and users have wanted to disable the USB Driver Dialog that is displayed when an unknown USB device is plugged into the host controller.   Of course the question is always why would you want to do such a thing? The simple answer is that there are USB devices that are needed, like printers, which expose multiple functions to the bus, like scanners and faxes, which no Windows CE driver exists to support.   So the printer quietly loads a driver, but then the other functions cause a dialog to be shown. One solution is to create a USB Class driver that loads by default if no other driver has been loaded. This driver just accepts anything that it sees and then does nothing with it. Starting with the Windows Embedded CE 6.0 R3 March QFE/update, the USB 2.0 driver has a registry value to disable the dialog: [HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients]       "DoNotPromptUser"=dword:0   Setting the DoNotPromptUser value to 1 disables the dialog. The default value is zero, so the driver continues to behave in the same way it always did unless you change this registry value.     Copyright © 2010 – Bruce Eitman All Rights Reserved

    Read the article

  • DevConnections new "Fundamentals" Track!

    - by psheriff
    Hi All, I am now the new Track Chair for the "Fundamentals" track at DevConnections. I know many of my readers feel overwhelmed by all of the "advanced" topics out there. The folks at the DevConnections conference realized that too and have added many new sessions that help programmers that are in the beginning to intermediate stage get up to speed on all the new technology that is coming out so fast. I will be presenting a whole day long workshop at the DevConnections conference in Orlando on March 27th entitled "Essential Business Desktop Programming with .NET". In addition I will be presenting the following sessions in the Fundamentals Track. MVVM Made Simple Unit Testing Basics and Architecting Your Application for Unit Testing Data Binding from A-Z in Silverlight From Zero to Windows Phone 7 in 75 MinutesI hope I will see you there! Join me at DevConnections @devconnections in Orlando March 27-30.   Save $200 use discount code DevCon1 Register today at bit.ly/fIZjXO

    Read the article

  • Bitdefender Safebox Offers 2GB Free Storage for Android Users

    - by Jason Fitzpatrick
    Android: If you’re always on the lookout for new–and free!–cloud storage solutions, security company BitDefender has a new cloud service for Android uers. Safebox accounts come with a free 2GB storage to get you started. For those of you in the “You can never have enough backups!” camp, Bitdefender’s Safebox is a new offering (currently only available for PC/Android setups) on the remote-storage market. Free personal accounts come with 2GB of storage which is on par with other cloud storage providers. If you’re looking for cloud storage with the maximum number of features and heavy third-party support you’ll want to stick with a well established player like Dropbox. If you’re just looking for some extra storage for overflow media or some redundancy for your current backup solution, Safebox is a viable storage solution. Bitdefender Safebox [via Addicted Tips] Make Your Own Windows 8 Start Button with Zero Memory Usage Reader Request: How To Repair Blurry Photos HTG Explains: What Can You Find in an Email Header?

    Read the article

  • How to use Fixedsys in the Gnome Terminal, or wherever monospaced fonts are required

    - by Walter Tross
    I think that the Fixedsys font is one of the most readable monospaced fonts for programming. It has zero antialiasing, with vertical lines mostly 2 pixels wide. Close to ideal for current monitor dot pitches, in my eyes (literally). After years of Windows at home (for family reasons) and Linux servers at work accessed through Cygwin on Windows (for company policy reasons), with Fixedsys as the shell and IDE font, I have decided to switch to the Ubuntu desktop. Eclipse and gedit are no problem, they accept the Fixedsys Excelsior TTF font. But the Gnome Terminal only accepts monospaced fonts. Although Fixedsys Excelsior is essentially monospaced, it contains larger glyphs (mostly for eastern languages), and also some ligatures. Since apparently ALL characters must have the same width for a font to be recognized as monospaced, Fixedsys Excelsior cannot be selected in all those contexts where monospaced fonts are required, including gnome-terminal. So what is the easiest/cleanest way to use a Fixedsys clone font in contexts that only accept monospaced fonts?

    Read the article

  • Expensive HDMI Cables Make No Difference

    - by Jason Fitzpatrick
    While we’re no strangers to spreading the news that expensive HDMI cables are a ripoff, we’re happy to share yet another study that shows there’s zero difference between a $5 cable and a $95 one. Over at the British hardware review site Expert Reviews, they subjected a wide selection of HDMI cables to extensive tests in a bid to produce the end-all examination of whether or not a premium HDMI cable could actually produce a better signal. They used capture cards, pixel-by-pixel comparison of output, and other techniques to pick over individual frames until they ultimately reached the same conclusion everyone outside of the Monster sales staff had already reached: you’re getting absolutely no benefit to spending $100 on cable that can be had for under five bucks. Hit up the link below to read over their methodology. Expensive Cables Make Absolutely No Difference [via Geek News Central] HTG Explains: What Is RSS and How Can I Benefit From Using It? HTG Explains: Why You Only Have to Wipe a Disk Once to Erase It HTG Explains: Learn How Websites Are Tracking You Online

    Read the article

  • SQL SERVER – What is SSAS Tabular Data model and Why to use it – Part 2

    - by Pinal Dave
    In my last article, I talked about the basics of tabular data model and why use it. Then I demonstrated step by step creation of a basic tabular model project. In this part I’m going to throw some light on how to create measures and analyses in excel. If you look at the tabular project closely, you will notice that we have not defined any measure yet. So, in the first step we will define the measure first.  Open the solution and select the column you want to define as a measure. Then, click on the summation icon on the toolbar. You will see the aggregated results at the bottom of that column. You have also other choices as well like average, min, max, count and distinct count. After creating the required measures, we need to analyze our data in excel. To do this, click on the excel icon in the upper left corner of the toolbar. This will open your analysis in excel. Notice the pivot table field list here. I have highlighted the measures that we created in the earlier step. Now, we can use these measures in our analysis Now, we have to put the required fields in their respective places as column labels, row labels, Values and Report filter for analysis. See below snapshot for details, it shows region wise sales on a yearly basis You can even apply filters on the above analysis by placing the slicer field in report filter. In our example, we will take an English product name as a filter. You can use the filter as depicted in the below snapshot. Optionally, you can also use the slider to filter data more interactively. Further to improve our analysis, we can insert pivot charts That’s all for this time, in my next post I’m going to show in detail about how to create hierarchies, perspectives, KPI’s  and many more features. Author: Namita Sharma, Senior Corporate Trainer at Koenig Solutions. Reference: Pinal Dave (http://blog.SQLAuthority.com)Filed under: PostADay, SQL, SQL Authority, SQL Query, SQL Server, SQL Tips and Tricks, T SQL Tagged: SSAS

    Read the article

  • Post SQLBits VI

    - by MartinBell
    It was funny waking up on a Saturday morning and SQLBits being over and not having to rush off to the venue. Don’t forget to fill in your feedback for the sessions at www.sqlbits.com/sessionfeedback and the whole conference at www.sqlbits.com/conferencefeedback , and get put into the draw for an Xbox. We’ve had lots of complements from lots of people and also some very positive tweets. It was great to see so many people stopping on for the social event at the end of the conference. In the final count...(read more)

    Read the article

  • How to determine number of resources to be allocated in a software project

    - by aditi
    Last day I have been interviewed and the interviwer asked me as given the outline of a project, how can we determine the number of resources to be needed for the same? I donot know to do do so? Is there any standard way of doing so? or is it based on the experience? or how.... I am pretty new in this activity and my knowledge is zero at present .... so any clear explanation with some example(simple) will help me(and people like me) to understand this. Thanks

    Read the article

  • Free Universal Construction Kit Links Different Construction Toy Systems

    - by Jason Fitzpatrick
    If you or a young tinker in your household is disappointed that there is no way to link LEGO bricks and Lincoln Logs (or other construction toys on the market) this project is for you. Free Universal Construction Kit is project oriented around creating inter-operable linking bricks that allow the user to link previously non-compatible building system. Using the bricks you can, for example, attach LEGO bricks to a K’Nex construction. The adapter bricks are all available as free 3D printer models–download them, fire up your 3D printer, and start mish-mashing your construction sets. Free Universal Construction Kits [via Make] The HTG Guide to Hiding Your Data in a TrueCrypt Hidden Volume Make Your Own Windows 8 Start Button with Zero Memory Usage Reader Request: How To Repair Blurry Photos

    Read the article

  • Switch Gmail Icons Back to Text Labels

    - by Jason Fitzpatrick
    If Gmail’s icon-based buttons annoy you, it’s now possible to switch them back to the old text labels with a simple settings toggle. At MakeUseOf they highlight the new option in Gmail and how you can switch back to the old button layout: So how do you make that happen? All you have to do is click on the cog button, choose “Settings”, and go to the the General tab. Scroll down to find the “Button labels” setting, and change it from icons to text. I know what I’ll be doing shortly; text-based button labels here I come. [via MakeUseOf] Make Your Own Windows 8 Start Button with Zero Memory Usage Reader Request: How To Repair Blurry Photos HTG Explains: What Can You Find in an Email Header?

    Read the article

  • Unable to mount external hard drive

    - by arranjamesroche
    Basically I my 12.10 update crashed halfway through, so I've had to start again and put all my data onto an external HDD. It was all going fine until this came up : Error mounting /dev/sdb1 at /media/amy/CA47-8339: Command-line `mount -t "vfat" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush" "/dev/sdb1" "/media/amy/CA47-8339"' exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sdb1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so When I tried to restore my info off the HDD. Now I'm stuck completely clueless as to how I'll get anything off the hard drive.

    Read the article

  • Settings xorg.conf to be used with VESA driver?

    - by Fernando Costa
    I have an brand new installation of Ubuntu 9.10 (karmic version) where everything is fine except the video resolution. In Ubuntu 9.10, the file xorg.conf is empty by default. I'm using an onboard video card, and Ubuntu can not find the right resolution for me. It always uses 800x600, but I need at least 1024x768. Also, my monitor is listed as Unknown Type. Ubuntu did find the right resolution when I changed the monitor to a Samsung monitor. By the way what are the generic settings to put inside xorg.conf? What is the settings for Refresh Rate, for example, I got a resolution of 1280x800, but the Refresh Rate generally between 60 ~ 80 htz is ZERO on my resolution.. In 1024 resolution my Refresh Rate is 75 htz.. What is going on with my resolution and how to modify the Refresh Rate?? Many Thanks!

    Read the article

  • How to Use Windows 8's Storage Spaces to Mirror & Combine Drives

    - by Chris Hoffman
    “Storage Spaces” is a new feature in Windows 8 that can combine multiple hard drives into a single virtual drive. It can mirror data across multiple drives for redundancy or combine multiple physical drives into a single pool of storage. You can even create pools of storage larger than the amount of physical storage space you have available. When the physical storage fills up, you can plug in another drive and take advantage of it with no additional configuration required. Storage Spaces is similar to RAID or LVM on Linux. The HTG Guide to Hiding Your Data in a TrueCrypt Hidden Volume Make Your Own Windows 8 Start Button with Zero Memory Usage Reader Request: How To Repair Blurry Photos

    Read the article

  • SPARC T4-4 Delivers World Record Performance on Oracle OLAP Perf Version 2 Benchmark

    - by Brian
    Oracle's SPARC T4-4 server delivered world record performance with subsecond response time on the Oracle OLAP Perf Version 2 benchmark using Oracle Database 11g Release 2 running on Oracle Solaris 11. The SPARC T4-4 server achieved throughput of 430,000 cube-queries/hour with an average response time of 0.85 seconds and the median response time of 0.43 seconds. This was achieved by using only 60% of the available CPU resources leaving plenty of headroom for future growth. The SPARC T4-4 server operated on an Oracle OLAP cube with a 4 billion row fact table of sales data containing 4 dimensions. This represents as many as 90 quintillion aggregate rows (90 followed by 18 zeros). Performance Landscape Oracle OLAP Perf Version 2 Benchmark 4 Billion Fact Table Rows System Queries/hour Users* Response Time (sec) Average Median SPARC T4-4 430,000 7,300 0.85 0.43 * Users - the supported number of users with a given think time of 60 seconds Configuration Summary and Results Hardware Configuration: SPARC T4-4 server with 4 x SPARC T4 processors, 3.0 GHz 1 TB memory Data Storage 1 x Sun Fire X4275 (using COMSTAR) 2 x Sun Storage F5100 Flash Array (each with 80 FMODs) Redo Storage 1 x Sun Fire X4275 (using COMSTAR with 8 HDD) Software Configuration: Oracle Solaris 11 11/11 Oracle Database 11g Release 2 (11.2.0.3) with Oracle OLAP option Benchmark Description The Oracle OLAP Perf Version 2 benchmark is a workload designed to demonstrate and stress the Oracle OLAP product's core features of fast query, fast update, and rich calculations on a multi-dimensional model to support enhanced Data Warehousing. The bulk of the benchmark entails running a number of concurrent users, each issuing typical multidimensional queries against an Oracle OLAP cube consisting of a number of years of sales data with fully pre-computed aggregations. The cube has four dimensions: time, product, customer, and channel. Each query user issues approximately 150 different queries. One query chain may ask for total sales in a particular region (e.g South America) for a particular time period (e.g. Q4 of 2010) followed by additional queries which drill down into sales for individual countries (e.g. Chile, Peru, etc.) with further queries drilling down into individual stores, etc. Another query chain may ask for yearly comparisons of total sales for some product category (e.g. major household appliances) and then issue further queries drilling down into particular products (e.g. refrigerators, stoves. etc.), particular regions, particular customers, etc. Results from version 2 of the benchmark are not comparable with version 1. The primary difference is the type of queries along with the query mix. Key Points and Best Practices Since typical BI users are often likely to issue similar queries, with different constants in the where clauses, setting the init.ora prameter "cursor_sharing" to "force" will provide for additional query throughput and a larger number of potential users. Except for this setting, together with making full use of available memory, out of the box performance for the OLAP Perf workload should provide results similar to what is reported here. For a given number of query users with zero think time, the main measured metrics are the average query response time, the median query response time, and the query throughput. A derived metric is the maximum number of users the system can support achieving the measured response time assuming some non-zero think time. The calculation of the maximum number of users follows from the well-known response-time law N = (rt + tt) * tp where rt is the average response time, tt is the think time and tp is the measured throughput. Setting tt to 60 seconds, rt to 0.85 seconds and tp to 119.44 queries/sec (430,000 queries/hour), the above formula shows that the T4-4 server will support 7,300 concurrent users with a think time of 60 seconds and an average response time of 0.85 seconds. For more information see chapter 3 from the book "Quantitative System Performance" cited below. -- See Also Quantitative System Performance Computer System Analysis Using Queueing Network Models Edward D. Lazowska, John Zahorjan, G. Scott Graham, Kenneth C. Sevcik external local Oracle Database 11g – Oracle OLAP oracle.com OTN SPARC T4-4 Server oracle.com OTN Oracle Solaris oracle.com OTN Oracle Database 11g Release 2 oracle.com OTN Disclosure Statement Copyright 2012, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Results as of 11/2/2012.

    Read the article

  • Adding complexity to remove duplicate code

    - by Phil
    I have several classes that all inherit from a generic base class. The base class contains a collection of several objects of type T. Each child class needs to be able to calculate interpolated values from the collection of objects, but since the child classes use different types, the calculation varies a tiny bit from class to class. So far I have copy/pasted my code from class to class and made minor modifications to each. But now I am trying to remove the duplicated code and replace it with one generic interpolation method in my base class. However that is proving to be very difficult, and all the solutions I have thought of seem way too complex. I am starting to think the DRY principle does not apply as much in this kind of situation, but that sounds like blasphemy. How much complexity is too much when trying to remove code duplication? EDIT: The best solution I can come up with goes something like this: Base Class: protected T GetInterpolated(int frame) { var index = SortedFrames.BinarySearch(frame); if (index >= 0) return Data[index]; index = ~index; if (index == 0) return Data[index]; if (index >= Data.Count) return Data[Data.Count - 1]; return GetInterpolatedItem(frame, Data[index - 1], Data[index]); } protected abstract T GetInterpolatedItem(int frame, T lower, T upper); Child class A: public IGpsCoordinate GetInterpolatedCoord(int frame) { ReadData(); return GetInterpolated(frame); } protected override IGpsCoordinate GetInterpolatedItem(int frame, IGpsCoordinate lower, IGpsCoordinate upper) { double ratio = GetInterpolationRatio(frame, lower.Frame, upper.Frame); var x = GetInterpolatedValue(lower.X, upper.X, ratio); var y = GetInterpolatedValue(lower.Y, upper.Y, ratio); var z = GetInterpolatedValue(lower.Z, upper.Z, ratio); return new GpsCoordinate(frame, x, y, z); } Child class B: public double GetMph(int frame) { ReadData(); return GetInterpolated(frame).MilesPerHour; } protected override ISpeed GetInterpolatedItem(int frame, ISpeed lower, ISpeed upper) { var ratio = GetInterpolationRatio(frame, lower.Frame, upper.Frame); var mph = GetInterpolatedValue(lower.MilesPerHour, upper.MilesPerHour, ratio); return new Speed(frame, mph); }

    Read the article

< Previous Page | 156 157 158 159 160 161 162 163 164 165 166 167  | Next Page >