Search Results

Search found 41295 results on 1652 pages for 'right to left'.

Page 507/1652 | < Previous Page | 503 504 505 506 507 508 509 510 511 512 513 514  | Next Page >

  • Big Data Accelerator

    - by Jean-Pierre Dijcks
    For everyone who does not regularly listen to earnings calls, Oracle's Q4 call was interesting (as it mostly is). One of the announcements in the call was the Big Data Accelerator from Oracle (Seeking Alpha link here - slightly tweaked for correctness shown below):  "The big data accelerator includes some of the standard open source software, HDFS, the file system and a number of other pieces, but also some Oracle components that we think can dramatically speed up the entire map-reduce process. And will be particularly attractive to Java programmers [...]. There are some interesting applications they do, ETL is one. Log processing is another. We're going to have a lot of those features, functions and pre-built applications in our big data accelerator."  Not much else we can say right now, more on this (and Big Data in general) at Openworld!

    Read the article

  • Simple MediaWiki question

    - by Adobe
    I'm thinking about making a mediawiki website. At first I'd like to try it at localhost. I'm running Kubuntu 11.10, so I did: sudo aptitude install apache2 mysql-server php5 php5-mysql php5-cli And I also fetched the latest mediawiki to: /home/boris/Its/sites/mediawiki-1.17.0 Now I'm supposed to open http://localhost/home/boris/Its/sites/mediawiki-1.17.0/index.php But firefox says the page is not found. While http://localhost works. If I get it right - I have to open index.php to install mediawiki. So my question is - what do I do wrong? I'm really sorry for this is might be a very simple question. By the way do I have to make a db beforehand? Is it possible to use mongoDB as a db with mediawiki?

    Read the article

  • Technical : Configure WebCenter PS5 with WebCenter Content - Good Example

    - by Vikram Kurma
    Read Intro for this post and understand the problem here Solution  : To integrate Jdeveloper with WebCenter Content PS5 and browse through the folders , we need to enable "folders_g" features instead of "Framework Folders" . Detailed steps below . Login to Webcenter content using admin credentials https://<hostname>:<port number>/cs Go to "Administration" menu and click on "Admin Server"  In the newly opened browser , click on 'Component Manager' in the left navigation menu . On the right hand side , you should see "Advanced Component Manager" , click on it . You will now see a list of enabled and disabled features . Disable "Framework Folders" and enable "folders_g" folders . Restart the server . There you go ! . You should have a successful connection and you should be able to traverse through the contribution folders from Jdeveloper. I am posting a few pics to help you navigate the steps .    

    Read the article

  • Goals for 2011

    - by AaronBertrand
    I was tagged by Denis Gobo ( blog | twitter ) in a Review of his 2010 Goals . I didn't make such a post last year at this time, so I had nothing to check against. But that doesn't mean I can't start with my goals for the coming year, right? A few areas come to mind: Speaking More I have set a challenge for myself to speak at 10 events this year. So far I have submitted sessions to the following, or plan to do so when I can; at least one is already confirmed: SQL Saturday #60 (Cleveland, OH, February...(read more)

    Read the article

  • LIDNUG: Effective Silverlight with SharePoint 2010

    - by Sahil Malik
    Ad:: SharePoint 2007 Training in .NET 3.5 technologies (more information). This is a free virtual event that you attend right from your computer. I will be talking about using Silverlight in SharePoint 2010. Description: In this session Sahil talks about how to write, debug, develop, and deploy Silverlight applications effectively in SharePoint. The entire talk is almost no slides and all code, so there is plenty to chew on! Don’t miss!!Starts:Sunday May 02, 2010, 11:00AM Ends:Sunday May 02, 2010, 12:30PM More details Comment on the article ....

    Read the article

  • Apple Magic Mouse scrolling in Ubuntu 9.10

    - by krig
    Just received new Apple Magic Mouse and tried to install it on my computer with Ubuntu 9.10. Mouse was found as Bluetooth mouse, I entered PIN as 0000 (could not find it in user manual, so just googgled it). Now I have 2 buttons working well - left and right, but scrolling does not work. I understand that there is no driver for Magic Mouse for linux, but maybe some enthusiasts already found way to enable scrolling. Without scrolling with only 2 buttons this mouse is just like my first mouse I bought in 1997, Mitsumi as I can remember =)

    Read the article

  • How to use dd to make splitted ISO images from an storage device?

    - by Gustavo Bandeira
    This is a double question, I just hope it's valid. I need to know how to use dd to make splitted ISO images from some storage device, I'm doing it through SSH: the process is slow and the risk of faling at the mid of the operation (1) is high then I need to know how to make these splitted ISO images from my storage device. (2) I'm searching for some reference on dd, it could be a book or a good website about it for when any doubt arises. 1 - I'm doing it on a ~60GB storage device, it took me a whole day to copy ~10GB from this disk. 2 - For curious people, I'm trying to recover an accidentaly deleted file from an iPod, until now I've been able to make the whole process, I just need to improve it beucase I left it copying the disk yesterday: Today it gave me an error when it was at ~10GB.

    Read the article

  • Reader for Android Updates; Now with Feed Widgets and More

    - by ETC
    Android phone owners rocking the official Google Reader app will be pleased to see the new update includes much requested features such as polished feed widgets, unread counter widgets, and a handy “mark previous as read” button. Widgets have long been one of the most requested feature for Google Reader for Android. This update rolls them out in two forms. News ticker widgets show you current headlines for your Google Reader folders (as seen in the screenshot here); folder widgets function just as unread counters and only take up a 1×1 space. In addition to the widgets another much requested feature made an appearance. While scrolling through your feed you can now mark all the previous entries as read. Hit up the link below to read more or visit the Android Market on your phone to update the application. Updates to the Google Reader App for Android [The Official Google Reader Blog] Latest Features How-To Geek ETC How to Enable User-Specific Wireless Networks in Windows 7 How to Use Google Chrome as Your Default PDF Reader (the Easy Way) How To Remove People and Objects From Photographs In Photoshop Ask How-To Geek: How Can I Monitor My Bandwidth Usage? Internet Explorer 9 RC Now Available: Here’s the Most Interesting New Stuff Here’s a Super Simple Trick to Defeating Fake Anti-Virus Malware Comix is an Awesome Comics Archive Viewer for Linux Get the MakeUseOf eBook Guide to Speeding Up Windows for Free Need Tech Support? Call the Star Wars Help Desk! [Video Classic] Reclaim Vertical UI Space by Adding a Toolbar to the Left or Right Side of Firefox Androidify Turns You into an Android-style Avatar Reader for Android Updates; Now with Feed Widgets and More

    Read the article

  • E_FAIL: An undetermined error occurred (-2147467259) when loading a cube texture

    - by Boreal
    I'm trying to implement a skybox into my engine, and I'm having some trouble loading the image as a cube map. Everything works (but it doesn't look right) if I don't load using an ImageLoadInformation struct in the ShaderResourceView.FromFile() method, but it breaks if I do. I need to, of course, because I need to tell SlimDX to load it as a cubemap. How can I fix this? Here is my new loading code after the "fix": public static void LoadCubeTexture(string filename) { ImageLoadInformation loadInfo = new ImageLoadInformation() { BindFlags = BindFlags.ShaderResource, CpuAccessFlags = CpuAccessFlags.None, Depth = 32, FilterFlags = FilterFlags.None, FirstMipLevel = 0, Format = SlimDX.DXGI.Format.B8G8R8A8_UNorm, Height = 512, MipFilterFlags = FilterFlags.Linear, MipLevels = 1, OptionFlags = ResourceOptionFlags.TextureCube, Usage = ResourceUsage.Default, Width = 512 }; textures.Add(filename, ShaderResourceView.FromFile(Graphics.device, "Resources/" + filename, loadInfo)); } Each of the faces of my cube texture are 512x512.

    Read the article

  • 24 DIY Softbox Designs for Cheap and Flexible Photography Lighting [DIY]

    - by Jason Fitzpatrick
    If you’re looking for just the right softbox for your budget and photography needs this collection of 24 great softbox designs is bound to have the perfect fit. At DIY Photography they hosted a DIY softbox contest. Out of the 70 entries they culled it down to the top 24 designs and rounded up the photo tours and build guides for you to browse. You can build the foamcore and CFL model seen in the photo above by following the build guide here. Hit up the link below to check out all the other designs that range from full body softboxes to on-camera softboxes. How To Build 24 DIY Softboxes [DIY Photography via Make] HTG Explains: Photography with Film-Based CamerasHow to Clean Your Dirty Smartphone (Without Breaking Something)What is a Histogram, and How Can I Use it to Improve My Photos?

    Read the article

  • "dm-tool lock" doesn't lock my session

    - by cape1232
    When I use dm-tool to lock the screen for userA, I can log in as userB and then use dm-tool to switch back to userA's session without having to enter a password. Is that the expected behavior? If not, how should I switch from A to B without leaving userA exposed? userA$ dm-tool lock -- Shows Greeter. Login as userB. userB$ dm-tool switch-to-user userA -- Expected this to go to greeter, but it goes right back to userA's session. Do I have something mis-configured, or what?

    Read the article

  • Gateway SX2300-01u CPU/PSU issues

    - by Vlad
    I have a 2-yr-old Gateway SX2300-01u with an AMD Phenom X3 8550 that I feel has about a year or so of life left, but I am having a couple of hardware issues that I have not been able to resolve. First, the power supply fan sounds like much louder than before and the PSU itself is really hot. The PSU model (Liteon PS 5221-06) is not available at a reasonable price; are there any good alternatives? Could I replace just the PSU fan? Also, the CPU fan failed sometime back, but my replacement, which supposedly fits the MB (Socket AM2+) doesn't actually fit properly. Any idea why?

    Read the article

  • Screen shots and documentation on the cheap

    - by Kyle Burns
    Occasionally I am surprised to open up my toolbox and find a great tool that I've had for years and never noticed.  The other day I had just such an experience with Windows Server 2008.  A co-worker of mine was squinting to read to screenshots that he had taken using the "Print Screen, paste" method in WordPad and asked me if there was a better tool available at a reasonable cost.  My first instinct was to take a look at CamStudio for him, but I also knew that he had an immediate need to take some more screenshots, so I decided to check and see if the Snipping Tool found in Windows 7 is also available in Windows Server 2008.  I clicked the Start button and typed “snip” into the search bar and while the Snipping Tool did not come up, a Control Panel item labeled “Record steps to reproduce a problem” did. The application behind the Control Panel entry was “Problem Steps Recorder” (PSR.exe) and I have confirmed that it is available in Windows 7 and Windows Server 2008 R2 but have not checked other platforms.  It presents a pretty minimal and intuitive interface in providing a “Start Record”, “Stop Record”, and “Add Comment” button.  The “Start Record” button shockingly starts recording and, sure enough, the “Stop Record” button stops recording.  The “Add Comment” button prompts for a comment and for you to highlight the area of the screen to which your comment is related.  Once you’re done recording, the tool outputs an MHT file packaged in a ZIP archive.  This file contains a series of screen shots depicting the user’s interactions and giving timestamps and descriptive text (such as “User left click on “Test” in “My Page – Windows Internet Explorer”) as well as the comments they made along the way and some diagnostics about the applications captured. The Problem Steps Recorder looks like a simple solution to the most common of my needs for documentation that can turn “I can’t understand how to make it do what you’re reporting” to “Oh, I see what you’re talking about and will fix it right away”.  I you’re like me and haven’t yet discovered this tool give it a whirl and see for yourself.

    Read the article

  • Sudo and startup script

    - by Pitto
    Hello my friends. I have a new asus 1215n and I need to digit commands to enable multitouch. No problem: I've made a script. Since this netbook also need manual activation of the wifi driver the complete script is: #!/bin/bash # # list of synaptics device properties http://www.x.org/archive/X11R7.5/doc/man/man4/synaptics.4.html#sect4 # list current synaptics device properties: xinput list-props '"SynPS/2 Synaptics TouchPad"' # sleep 5 #added delay... xinput set-int-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 8 1 xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Pressure" 4 xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Width" 9 # Below width 1 finger touch, above width simulate 2 finger touch. - value=pad-pixels xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Edge Scrolling" 1 1 0 # vertical, horizontal, corner - values: 0=disable 1=enable xinput --set-prop --type=int --format=32 "SynPS/2 Synaptics TouchPad" "Synaptics Jumpy Cursor Threshold" 250 # stabilize 2 finger actions - value=pad-pixels #xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Tap Action" 0 0 0 0 1 2 3 # pad corners rt rb lt lb tap fingers 1 2 3 (can't simulate more then 2 tap fingers AFAIK) - values: 0=disable 1=left 2=middle 3=right etc. (in FF 8=back 9=forward) xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Two-Finger Scrolling" 1 0 # vertical scrolling, horizontal scrolling - values: 0=disable 1=enable #xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Circular Scrolling" 1 #xinput --set-prop --type=int --format=8 "SynPS/2 Synaptics TouchPad" "Synaptics Circular Scrolling Trigger" 3 sudo modprobe lib80211 sudo insmod /home/pitto/Drivers/broadcom/wl.ko exit I've saved the script, then put it in my home, then chmod +x scriptname and then added it to startup applications. Then I did: sudo visudo and added this row: myusername ALL=(ALL) NOPASSWD: /home/scriptname rebooted and... Multitouch works but wifi not. When I manually launch the script it asks for sudo password so I thought it was because of modprobe and insmod commands and I've added those commands to sudo visudo. Nothing. What am I doing wrong?

    Read the article

  • Office add on saves you time if you use Moodle

    - by Brian Scarbeau
    Moodle is a free elearning content management software program. It does take a great deal of time to set it up because you need to upload your Office files to Moodle. Now, Microsoft has made that job easier with their new Office Add on. With it you can save directly into Moodle.   Here are the instructions on how to use. Just change the URL you use for your Moodle site. 1. Go to this site and download and install the software. http://www.educationlabs.com/projects/officeaddinformoodle/Pages/default.aspx 2. Open your Office Word in this example and then select Save to Moodle (Notice you can also open files that you have stored in moodle make changes and then save back to moodle. (WOW) 3,  Now because this is the first time you are using this feature you will see a dialog box that looks like this: Enter the moodle website exactly as you see here along with your username and password for moodle. Click the checkbox to remember you. 4. After you click on Save to Moodle you should see a dialog box like this: 5.  Click the plus on the left Lake Highland Preparatory School-Online Learning 6. You will now see the listing of your moodle classes. Now click on the class that you your file to go to and save. Now you use this file in moodle. Good luck!

    Read the article

  • Visual WebGui launches a CompanionKit for enhanced developers experience

    - by Webgui
    Visual WebGui launched a new major live demo of the platform's concepts, features and controls and the code behind them. The new Developer CompanionKit is a hige leap forward in the developer experience by allowing developers a hands-on exploration of Visual WebGui which should provide better understanding of the system and the ability to utilize the great advantages of Visual WebGui in order to develop better performing rich web applications. The CompanionKit is available online at companionkit.visualwebgui.com/main.wgx We invite you to Explore Visual WebGui via the new CompanionKit and to watch the CompanionKit Intro video. Below is a screenshot taken from the live CompanionKit which allows developers to see how applying an alternate style to the appearance of a DataGridView is done and how it looks running live and its code (C# or VB.NET). You can access the different Controls (within the Controls section) from the left navigation bar or perform a free text search which shows the relevant results from all the sections - additional sections such as a Concept section are expected to be added in the near future.   In addition, the New Developer CompanionKit which was built with Visual WebGui showcases the enhanced UI design capabilities of building more engaing, modern Web 2.0 applications. The CompanionKit will also be available for download in the next few days as part of the media for 6.4 beta 2 SDK (.NET 2.0 or .NET 3.5) under "Help and Documentation".

    Read the article

  • Recover Ubuntu grub without LiveCD - Can't boot with Ubuntu LiveCD after install Windows

    - by Paulocoghi
    I installed Windows after installing Ubuntu. But Ubuntu is still intact in its partition. I'm trying to run the Ubuntu LiveCD to recover grub, but the LiveCD no longer works. It stops the boot process and does not load completely. I can not run Ubuntu in live mode to recover grub. Is there any way to recover the grub/grub2 without the LiveCD? Edit: [Important] I've downloaded a new Ubuntu 10.10 ISO. I also did the MD5 check. It's all right. Then, I recorded this .iso and still can not load the LiveCD to the end.

    Read the article

  • Androidify Turns You into an Android-style Avatar

    - by ETC
    Androidify, a free application for Android phones, lets you create an Android-style avatar of yourself (or anyone, for that matter). Swap out the clothes, adjust the side of your noggin, add a pirate eye-patch, the customization options are abundant. Much like the Mii creator on the Wii, Androidify starts you off with the basics: skin color, hair style and color, adjustment of the body size. After that you can tweak things like clothing, accessories, facial hair and more. Once you’re done you can set it as your contact image, send it to others to use as your contact image, save as a photo, and other wise upload it with the social media tools you have on your phone. Hit up the link below to read more and grab a copy. Androidify [Android Market] Latest Features How-To Geek ETC How to Enable User-Specific Wireless Networks in Windows 7 How to Use Google Chrome as Your Default PDF Reader (the Easy Way) How To Remove People and Objects From Photographs In Photoshop Ask How-To Geek: How Can I Monitor My Bandwidth Usage? Internet Explorer 9 RC Now Available: Here’s the Most Interesting New Stuff Here’s a Super Simple Trick to Defeating Fake Anti-Virus Malware Comix is an Awesome Comics Archive Viewer for Linux Get the MakeUseOf eBook Guide to Speeding Up Windows for Free Need Tech Support? Call the Star Wars Help Desk! [Video Classic] Reclaim Vertical UI Space by Adding a Toolbar to the Left or Right Side of Firefox Androidify Turns You into an Android-style Avatar Reader for Android Updates; Now with Feed Widgets and More

    Read the article

  • Windows 7 not booting after installing Ubuntu 12.10

    - by Imran Choudhry
    I have Samsung sf511 with Windows 7 Home preinstalled. I installed Ubuntu 12.10 last night. First I mounted downloaded ubuntu 12.10 iso on a DVD from Windows 7, then I restarted, changed the boot option to DVD and let the Ubuntu DVD run. I selected "Install ubuntu alongside windows 7". In the next step I allocated the diskspace . Ubuntu installed perfectly and it ranned OK. I spent a good time exploring Ubuntu. When I restarted to start my work on Windows again and selected Windows 7 to boot, it showed blue screen after booting up (after logging in). I tried restarting several times but the same blue screen keep showing at the same point of bootup. I also restored windows to an earlier time. Left with no option I booted from Samsung provided windows recovery option. The recovery process ran fine but when it restarted to boot Windows for the first time all I see is a black screen. Nothing happens. It switches between dark command promt screen to a pitch black screen as if it's rebooting after every 10 seconds or so. The laptop can be booted from the DVD Drive or USB drive but is not booting from Harddisk. What should I do in order to use both Windows 7 and Ubuntu?

    Read the article

  • Whats consuming HDD Space

    - by Umair Mustafa
    I have single partition of 92GB in which I installed Ubuntu 12.04. And for some Unknown reason a message pop ups saying that I only have 1GB of HDD space left. I ran command sudo du -hscx * on / and /home /home gave me this result 4.0K C:\nppdf32Log\debuglog.txt 0 convertedvideo.avi 176M Desktop 16K Documents 169M Downloads 4.0K examples.desktop 17M file.txt 4.0K Music 984K Pictures 4.0K Public 320K Red Hat 6.iso 2.5M syslog-ng_3.3.6.tar.gz 4.0K Templates 8.0K terminal.png 1.2M Thunderbird Attachments 698M ubuntu10.04LTS.iso 16K Ubuntu One 4.0K Untitled Folder 4.0K Videos 21G VirtualBox VMs 22G total And / gave me this result 81G home 0 initrd.img 0 initrd.img.old 833M lib 16K lost+found 68K media 4.0K mnt 260M opt du: cannot access `proc/8339/task/8339/fd/4': No such file or directory du: cannot access `proc/8339/task/8339/fdinfo/4': No such file or directory du: cannot access `proc/8339/fd/4': No such file or directory du: cannot access `proc/8339/fdinfo/4': No such file or directory 0 proc 640K root 908K run 8.6M sbin 4.0K selinux 4.0K srv 0 sys 148K tmp 3.3G usr 436M var 0 vmlinuz 0 vmlinuz.old 86G total If you look at the result returned by / it shows that /home is consuming 81GB but on the other hand /home returns only 22GB. I cant figure out whats consuming the HDD. I have not installed anything except Virtual Machines Perpetrator found using Disk Usage Analyzer

    Read the article

  • Greetings!!!!

    - by [email protected]
    Greetings everyone!If you're reading this, hopefully it's because you have been following our series of webcasts on Oracle 11gR2 that we've been hosting on Wordpress. If you found us some other way, well that's even better - the more the merrier as they say.In either case, welcome to our new blog!!! Over the next few days, Ill move the old posts from wordpress to here its all in the one location.Right! Who are we? The authors of this blog are the ANZ Inside Consulting Team.Currently, this is made of of:Tom JurcicYasin MohammedAndrew ClarkeRene Poels and me - Alex BlythBasically, our role in Oracle is to help users of our technologies get the most of their existing investments as well as what's new, old, blue, what have you...Ideally, this is all going to be technical in nature and not of a marketing nature (we'll leave the marketing up to others).For now, there's obviously not much here. But that won't last too long. In the mean time, those who are interested can find replays and slides of our previous webcasts on the "Oracle 11g Webcasts" page.Till next timeAlex

    Read the article

  • SyFy Channel Original Movie Title Generator

    - by Most Valuable Yak (Rob Volk)
    Saw this linked on reddit today and couldn't resist going through all the combinations: create table #pre(name varchar(20))create table #post(name varchar(20), pre varchar(10))insert #pre select 'Dino' union all select'Alien' union all select'Shark' union all select'Raptor' union all select'Tractor' union all select'Arachno' union all select'Cyber' union all select'Robo' union all select'Choco' union all select'Chupa' union all select'Grizzly' union all select'Mega' union all select'Were' union all select'Sabre' union all select'Man' insert #post select 'dactyl','a' union all select'pus','to' union all select'conda','a' union all select'droid',null union all select'dile','o' union all select'bear',null union all select'vampire',null union all select'squito',null union all select'saurus','a' union all select'wolf',null union all select'ghost',null union all select'viper',null union all select'cabra','a' union all select'yeti',null union all select'shark',null select a.name +case when right(a.name,1) not like '[aeiouy]' and b.pre is not null then b.pre else '' end +b.namefrom #pre a cross join #post bwhere a.name<>b.name -- optional, to eliminate the "SharkShark" optionorder by 1  Which one is your favorite?  I like most of the -squito versions, especially Chupasquito and Grizzlysquito.

    Read the article

  • Performance Optimization &ndash; It Is Faster When You Can Measure It

    - by Alois Kraus
    Performance optimization in bigger systems is hard because the measured numbers can vary greatly depending on the measurement method of your choice. To measure execution timing of specific methods in your application you usually use Time Measurement Method Potential Pitfalls Stopwatch Most accurate method on recent processors. Internally it uses the RDTSC instruction. Since the counter is processor specific you can get greatly different values when your thread is scheduled to another core or the core goes into a power saving mode. But things do change luckily: Intel's Designer's vol3b, section 16.11.1 "16.11.1 Invariant TSC The time stamp counter in newer processors may support an enhancement, referred to as invariant TSC. Processor's support for invariant TSC is indicated by CPUID.80000007H:EDX[8]. The invariant TSC will run at a constant rate in all ACPI P-, C-. and T-states. This is the architectural behavior moving forward. On processors with invariant TSC support, the OS may use the TSC for wall clock timer services (instead of ACPI or HPET timers). TSC reads are much more efficient and do not incur the overhead associated with a ring transition or access to a platform resource." DateTime.Now Good but it has only a resolution of 16ms which can be not enough if you want more accuracy.   Reporting Method Potential Pitfalls Console.WriteLine Ok if not called too often. Debug.Print Are you really measuring performance with Debug Builds? Shame on you. Trace.WriteLine Better but you need to plug in some good output listener like a trace file. But be aware that the first time you call this method it will read your app.config and deserialize your system.diagnostics section which does also take time.   In general it is a good idea to use some tracing library which does measure the timing for you and you only need to decorate some methods with tracing so you can later verify if something has changed for the better or worse. In my previous article I did compare measuring performance with quantum mechanics. This analogy does work surprising well. When you measure a quantum system there is a lower limit how accurately you can measure something. The Heisenberg uncertainty relation does tell us that you cannot measure of a quantum system the impulse and location of a particle at the same time with infinite accuracy. For programmers the two variables are execution time and memory allocations. If you try to measure the timings of all methods in your application you will need to store them somewhere. The fastest storage space besides the CPU cache is the memory. But if your timing values do consume all available memory there is no memory left for the actual application to run. On the other hand if you try to record all memory allocations of your application you will also need to store the data somewhere. This will cost you memory and execution time. These constraints are always there and regardless how good the marketing of tool vendors for performance and memory profilers are: Any measurement will disturb the system in a non predictable way. Commercial tool vendors will tell you they do calculate this overhead and subtract it from the measured values to give you the most accurate values but in reality it is not entirely true. After falling into the trap to trust the profiler timings several times I have got into the habit to Measure with a profiler to get an idea where potential bottlenecks are. Measure again with tracing only the specific methods to check if this method is really worth optimizing. Optimize it Measure again. Be surprised that your optimization has made things worse. Think harder Implement something that really works. Measure again Finished! - Or look for the next bottleneck. Recently I have looked into issues with serialization performance. For serialization DataContractSerializer was used and I was not sure if XML is really the most optimal wire format. After looking around I have found protobuf-net which uses Googles Protocol Buffer format which is a compact binary serialization format. What is good for Google should be good for us. A small sample app to check out performance was a matter of minutes: using ProtoBuf; using System; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.Serialization; [DataContract, Serializable] class Data { [DataMember(Order=1)] public int IntValue { get; set; } [DataMember(Order = 2)] public string StringValue { get; set; } [DataMember(Order = 3)] public bool IsActivated { get; set; } [DataMember(Order = 4)] public BindingFlags Flags { get; set; } } class Program { static MemoryStream _Stream = new MemoryStream(); static MemoryStream Stream { get { _Stream.Position = 0; _Stream.SetLength(0); return _Stream; } } static void Main(string[] args) { DataContractSerializer ser = new DataContractSerializer(typeof(Data)); Data data = new Data { IntValue = 100, IsActivated = true, StringValue = "Hi this is a small string value to check if serialization does work as expected" }; var sw = Stopwatch.StartNew(); int Runs = 1000 * 1000; for (int i = 0; i < Runs; i++) { //ser.WriteObject(Stream, data); Serializer.Serialize<Data>(Stream, data); } sw.Stop(); Console.WriteLine("Did take {0:N0}ms for {1:N0} objects", sw.Elapsed.TotalMilliseconds, Runs); Console.ReadLine(); } } The results are indeed promising: Serializer Time in ms N objects protobuf-net   807 1000000 DataContract 4402 1000000 Nearly a factor 5 faster and a much more compact wire format. Lets use it! After switching over to protbuf-net the transfered wire data has dropped by a factor two (good) and the performance has worsened by nearly a factor two. How is that possible? We have measured it? Protobuf-net is much faster! As it turns out protobuf-net is faster but it has a cost: For the first time a type is de/serialized it does use some very smart code-gen which does not come for free. Lets try to measure this one by setting of our performance test app the Runs value not to one million but to 1. Serializer Time in ms N objects protobuf-net 85 1 DataContract 24 1 The code-gen overhead is significant and can take up to 200ms for more complex types. The break even point where the code-gen cost is amortized by its faster serialization performance is (assuming small objects) somewhere between 20.000-40.000 serialized objects. As it turned out my specific scenario involved about 100 types and 1000 serializations in total. That explains why the good old DataContractSerializer is not so easy to take out of business. The final approach I ended up was to reduce the number of types and to serialize primitive types via BinaryWriter directly which turned out to be a pretty good alternative. It sounded good until I measured again and found that my optimizations so far do not help much. After looking more deeper at the profiling data I did found that one of the 1000 calls did take 50% of the time. So how do I find out which call it was? Normal profilers do fail short at this discipline. A (totally undeserved) relatively unknown profiler is SpeedTrace which does unlike normal profilers create traces of your applications by instrumenting your IL code at runtime. This way you can look at the full call stack of the one slow serializer call to find out if this stack was something special. Unfortunately the call stack showed nothing special. But luckily I have my own tracing as well and I could see that the slow serializer call did happen during the serialization of a bool value. When you encounter after much analysis something unreasonable you cannot explain it then the chances are good that your thread was suspended by the garbage collector. If there is a problem with excessive GCs remains to be investigated but so far the serialization performance seems to be mostly ok.  When you do profile a complex system with many interconnected processes you can never be sure that the timings you just did measure are accurate at all. Some process might be hitting the disc slowing things down for all other processes for some seconds as well. There is a big difference between warm and cold startup. If you restart all processes you can basically forget the first run because of the OS disc cache, JIT and GCs make the measured timings very flexible. When you are in need of a random number generator you should measure cold startup times of a sufficiently complex system. After the first run you can try again getting different and much lower numbers. Now try again at least two times to get some feeling how stable the numbers are. Oh and try to do the same thing the next day. It might be that the bottleneck you found yesterday is gone today. Thanks to GC and other random stuff it can become pretty hard to find stuff worth optimizing if no big bottlenecks except bloatloads of code are left anymore. When I have found a spot worth optimizing I do make the code changes and do measure again to check if something has changed. If it has got slower and I am certain that my change should have made it faster I can blame the GC again. The thing is that if you optimize stuff and you allocate less objects the GC times will shift to some other location. If you are unlucky it will make your faster working code slower because you see now GCs at times where none were before. This is where the stuff does get really tricky. A safe escape hatch is to create a repro of the slow code in an isolated application so you can change things fast in a reliable manner. Then the normal profilers do also start working again. As Vance Morrison does point out it is much more complex to profile a system against the wall clock compared to optimize for CPU time. The reason is that for wall clock time analysis you need to understand how your system does work and which threads (if you have not one but perhaps 20) are causing a visible delay to the end user and which threads can wait a long time without affecting the user experience at all. Next time: Commercial profiler shootout.

    Read the article

  • SQL SERVER – Plan Cache and Data Cache in Memory

    - by pinaldave
    I get following question almost all the time when I go for consultations or training. I often end up providing the scripts to my clients and attendees. Instead of writing new blog post, today in this single blog post, I am going to cover both the script and going to link to original blog posts where I have mentioned about this blog post. Plan Cache in Memory USE AdventureWorks GO SELECT [text], cp.size_in_bytes, plan_handle FROM sys.dm_exec_cached_plans AS cp CROSS APPLY sys.dm_exec_sql_text(plan_handle) WHERE cp.cacheobjtype = N'Compiled Plan' ORDER BY cp.size_in_bytes DESC GO Further explanation of this script is over here: SQL SERVER – Plan Cache – Retrieve and Remove – A Simple Script Data Cache in Memory USE AdventureWorks GO SELECT COUNT(*) AS cached_pages_count, name AS BaseTableName, IndexName, IndexTypeDesc FROM sys.dm_os_buffer_descriptors AS bd INNER JOIN ( SELECT s_obj.name, s_obj.index_id, s_obj.allocation_unit_id, s_obj.OBJECT_ID, i.name IndexName, i.type_desc IndexTypeDesc FROM ( SELECT OBJECT_NAME(OBJECT_ID) AS name, index_id ,allocation_unit_id, OBJECT_ID FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p ON au.container_id = p.hobt_id AND (au.TYPE = 1 OR au.TYPE = 3) UNION ALL SELECT OBJECT_NAME(OBJECT_ID) AS name, index_id, allocation_unit_id, OBJECT_ID FROM sys.allocation_units AS au INNER JOIN sys.partitions AS p ON au.container_id = p.partition_id AND au.TYPE = 2 ) AS s_obj LEFT JOIN sys.indexes i ON i.index_id = s_obj.index_id AND i.OBJECT_ID = s_obj.OBJECT_ID ) AS obj ON bd.allocation_unit_id = obj.allocation_unit_id WHERE database_id = DB_ID() GROUP BY name, index_id, IndexName, IndexTypeDesc ORDER BY cached_pages_count DESC; GO Further explanation of this script is over here: SQL SERVER – Get Query Plan Along with Query Text and Execution Count Reference: Pinal Dave (http://blog.SQLAuthority.com) Filed under: Pinal Dave, SQL, SQL Authority, SQL Optimization, SQL Performance, SQL Query, SQL Scripts, SQL Server, SQL Tips and Tricks, T SQL Tagged: SQL Memory

    Read the article

  • Is there a trend for cross-platform GUI toolkits?

    - by Anto
    What is the trend like for the usage of cross-platform GUI frameworks right now? Are more people starting to use cross-platform frameworks (such as GTK+, Qt and wxWidgets) or are there more who use more platform-tied frameworks (e.g. Cocoa or WPF)? Is it more or less stagnant? Is it like a rollercoaster? What do you think the trend will be like, say, 5 years from now? The OS landscape is shifting with less people using Windows (personal observation). This should increase the demand for cross-platform toolkits, shouldn't it? Edit: Also, which (cross-platform) toolkits are growing the most, if so?

    Read the article

< Previous Page | 503 504 505 506 507 508 509 510 511 512 513 514  | Next Page >