Search Results

Search found 93816 results on 3753 pages for 'nexus one'.

Page 539/3753 | < Previous Page | 535 536 537 538 539 540 541 542 543 544 545 546  | Next Page >

  • Does the EU cookie law apply to an EU site that is hosted outside of the EU?

    - by mickburkejnr
    I have been reading up about this EU cookie law, and have also had in depth conversations with my girlfriend who is a solicitor/lawyer and with colleagues while building websites. While we are now working towards implementing a way to abide by the EU law, I have thought of something which no one really knows the answer to and has caused a few arguments. It's my understanding that any website in the EU must abide by these cookie laws, which is understandable. However, say if I were to have a .co.uk or .eu domain name pointing to a website which is hosted in America for example, do I still need to abide by the EU laws even though the website is hosted outside of the EU? One person I have asked has said that because the domain name is .co.uk or .eu (a European TLD) then the website is still accountable under EU law. Another person I have asked has said because the actual website is held outside of the EU, it doesn't actually have to bother with this law.

    Read the article

  • Apress Books - 3 - Pro ASP.NET 4 CMS (ISBN 987-1-4302-2712-0) - Final comments

    - by TATWORTH
    This book is more than just  a book about an ASP.NET CMS system -  it has much practical advice and examples for the Dot Net web developer. I liked the use of JQuery to detect that JavaScript was not enabled. One chapter was about MemCached - this one chapter could justify the price of the book if you run a server farm and need to improve performance. Some links to get you started are: Windows Memcache at http://code.jellycan.com/memcached/ Dot Net Access Library at http://sourceforge.net/projects/memcacheddotnet/ The chapters on scripting, performance analysis and search engne optimisation all provide excellent examples. This certainly is a book that should be part of every Dot Net Web Development team library. Congratulations to the author and to Apress for publishing this book!

    Read the article

  • How are Reads Distributed in a Workload

    - by Bill Graziano
    People have uploaded nearly one millions rows of trace data to TraceTune.  That’s enough data to start to look at the results in aggregate.  The first thing I want to look at is logical reads.  This is the easiest metric to identify and fix. When you upload a trace, I rank each statement based on the total number of logical reads.  I also calculate each statement’s percentage of the total logical reads.  I do the same thing for CPU, duration and logical writes.  When you view a statement you can see all the details like this: This single statement consumed 61.4% of the total logical reads on the system while we were tracing it.  I also wanted to see the distribution of reads across statements.  That graph looks like this: On average, the highest ranked statement consumed just under 50% of the reads on the system.  When I tune a system, I’m usually starting in one of two modes: this “piece” is slow or the whole system is slow.  If a given piece (screen, report, query, etc.) is slow you can usually find the specific statements behind it and tune it.  You can make that individual piece faster but you may not affect the whole system. When you’re trying to speed up an entire server you need to identity those queries that are using the most disk resources in aggregate.  Fixing those will make them faster and it will leave more disk throughput for the rest of the queries. Here are some of the things I’ve learned querying this data: The highest ranked query averages just under 50% of the total reads on the system. The top 3 ranked queries average 73% of the total reads on the system. The top 10 ranked queries average 91% of the total reads on the system. Remember these are averages across all the traces that have been uploaded.  And I’m guessing that people mainly upload traces where there are performance problems so your mileage may vary. I also learned that slow queries aren’t the problem.  Before I wrote ClearTrace I used to identify queries by filtering on high logical reads using Profiler.  That picked out individual queries but those rarely ran often enough to put a large load on the system. If you look at the execution count by rank you’d see that the highest ranked queries also have the highest execution counts.  The graph would look very similar to the one above but flatter.  These queries don’t look that bad individually but run so often that they hog the disk capacity. The take away from all this is that you really should be tuning the top 10 queries if you want to make your system faster.  Tuning individually slow queries will help those specific queries but won’t have much impact on the system as a whole.

    Read the article

  • Inexpensive Business Checks

    - by Randy Walker
    One of the most annoying things when setting up a business is paying the outrageous fees for business checks.  When starting out, rather than pay the $150 for the handful of computer printable checks, I had bought software that would create the checks for me.  But if you didn’t know, those little digits at the bottom of a check are magnetically encoded and requires special ink. Fortunately, my current bank has one of the best bill pay websites, so I have exclusively used it.  But since I recently had to open a new bank account, I went off in search of a cheap alternative for business checks.  A bit wary of some of the printers, I opted for TechChecks and was extremely surprised a few days later when my checks arrived in perfect condition.  (I recommend the diamond prismatic red-blue-green checks.  Beautiful and very professional looking.) It was perfect timing as well, since I now have to reorder some checks for another account.

    Read the article

  • Lag compensation of projectile shooting game

    - by Denis Ermolin
    I'm thinking about an algorithm for firing projectiles with lag compensation. Now I did find only one descent solution: Player hits fire button. Client sends input "fire". Client waits for server response. Server generates bullet then sends response to client. Client recieves response and finally fires projectile. Is this solution only "trueway"? I find it the only one that can be fair to all of the clients. Valve in this case, doesn't compensate lag from rocket shots. I am feeling that I will not compensate it, too. I think that with today's bandwidth I can close my eyes on this problem, because I don't see any solutions with fair logic. What do you think?

    Read the article

  • What is the best way to have the same website in multiple domains?

    - by Daniel Magliola
    I would like to have the same website to sell a specific product, in multiple domains , to take advantage of keywords matching the domain name, for several different searches. However, I understand that having the same content in multiple sites will unleash the wrath of Google. If I have a redirect from all domains minus one, to that last one, do I still get any bonus for the "magic exact domain match jackpot"? Same question applies to canonical URLs... What's the best way to approach this? Thanks!

    Read the article

  • Reasons why crontab does not work

    - by Adam Matan
    Many a time and oft, crontab scripts are not executed as expected. There are numerous reasons for that, for example: wrong crontab notation, permissions, environment variables and many more. This community wiki aims to aggregate the top reasons for crontab scripts not being executed as expected. Write each reason in a separate answer. Please include one reason per answer - details about why it's not executed - and fix(es) for that one reason. Please write only cron-specific issues, e.g. commands that execute as expected from the shell but execute erroneously by cron.

    Read the article

  • How do you show the desktop in a blink in Ubuntu?

    - by e-satis
    We know you can either click on the show desktop icon or use CTRL+ALT+D to ask Ubuntu to show the desktop. Unfortunately, this does not always show the desktop in one action. Sometime, and this is true for at least the last 4 version of the OS, it brings up first to the front all the windows, THEN, with a second click, show you the desktop. This is very annoying, as when you show the desktop it generally to quickly click on a shortcut. To understand what I'm talking about, open 7 windows, minimize some, bring some to the front, maximize one, then show the desktop. Then do that on Windows. You'll see the difference.

    Read the article

  • Red Gate join the SSIS custom component club

    I recently noticed that Red Gate have launched themselves into the SSIS component market by releasing a new Data Cleanser component, albeit in beta for now. It seems to be quite a simple component, bringing together several features that you can find elsewhere, but with a suitable level  polish that you’d expect from them. String operations include find and replace with regular expressions, case formatting and trim, all of which are available today in one form or another, but will the RedGate factor appeal to people? Benefits include ease of use, all operations in one place, versus installing a custom component which many organisations do not like. I’m also interested to see where they take this and SSIS products in general, as it almost seems too simple for RedGate, a company I normally associate with more advanced problem solving. Perhaps they are just dipping a toe in the water with a simple component for now?

    Read the article

  • What is the state-of-the-art for using Broadcom Crystal hardware?

    - by echo-flow
    I just bought a Dell Mini 1012, which comes with a Broadcom Crystal media accelerator chip. I'd like to know what is the current state-of-the-art with regard to using this hardware on Ubuntu? What I mean by this is, what is the best way to install drivers to make use of this hardware, and what media players currently support it? I've read that XBMC currently does, but what about gstreamer? Ideally, I'd like to find a solution so that I can accelerate Flash videos using the device. It seems like one strategy may be to download Flash videos to the hard drive and play them with an external, Crystal-enabled media player, and so that seems like one option, but I'm wondering if any of the free flash alternatives (Gnash and Lightspark) support hardware acceleration of flash video using the Crystal API? It seems like there is a lot of information about all of this on the web, but it's not consolidated, and seems like a rapidly moving target, so any insight anyone may have into this would be appreciated.

    Read the article

  • I'm trying to install Bruteforce Savedata from the archiver

    - by Jonathan
    I've just installed UBUNTU 12.04 for curiosity purposes. I'm a gamer and I wanted to install Brute force Save data on my comp. So i download it and it open in the Archive manager i go to run the ".exe" but encounter this message Archive: /home/c4/Desktop/Bruteforce_Save_Data_installer.exe [/home/c4/Desktop/Bruteforce_Save_Data_installer.exe] End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. zipinfo: cannot find zipfile directory in one of /home/c4/Desktop/Bruteforce_Save_Data_installer.exe or /home/c4/Desktop/Bruteforce_Save_Data_installer.exe.zip, and cannot find /home/c4/Desktop/Bruteforce_Save_Data_installer.exe.ZIP, period. Please help!

    Read the article

  • Why am I am unable to open exe files?

    - by Aaron
    It doesn't matter what disk I use, it can not open the program. I keep getting the following error: Archive: /media/xxxxxxxx/INSTALL/_Setupa.exe [/media/xxxxxxxxxx/INSTALL/_Setupa.exe] End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. zipinfo: cannot find zipfile directory in one of /media/xxxxxx/INSTALL/_Setupa.exe or /media/xxxxxxxxx/INSTALL/_Setupa.exe.zip, and cannot find /media/xxxxxxxxx/INSTALL/_Setupa.exe.ZIP, period. Any ideas?

    Read the article

  • How can I diagnose/debug "maximum number of clients reached" X errors?

    - by jmtd
    Hi, I'm hitting a problem whereby X prevents processes from creating windows, uttering something like the following into ~/.xsession-errors: cannot open display: :0.0 Maximum number of clients reached Searching around there are lots of examples of people facing this problem, and sometimes people identify which program they are running is using up all the client slots. See e.g. LP 70872 (Firefox), LP 263211 (gnome-screensaver). For what it's worth, I run gnome-terminal, thunderbird, chromium-browser, empathy, tomboy and virtualbox nearly all the time, on top of the normal stuff you get with the GNOME desktop, and occasionally some other bits and pieces. However my question is not "which of my programs is causing this problem" but rather, how can one go about diagnosing this problem? In the above (and other) bugs, forum reports, etc., a number of tools are suggested: xlsclients - lists the client applications for the given display, but I don't think that corresponds to 'X clients' xrestop - a top-style X resources tool, one row per X client. Lots of '' clients, not shown in xlsclients output xwininfo -root -children lists X window objects From what I can gather, the problem might not be too many clients at all, but rather resources kept around in the X server for clients who have long-since detached. But it would also appear that you cannot (easily?) relate X resources back to their client. Can one effectively diagnose this issue once it has started to occur, or is a tedious divide-and-conquer approach for the apps I run the only approach open to me? Update Jan 2011: I think I have resolved this issue. For the benefit of anyone stumbling across this, nautilus and/or compiz or something in that chain of software was segfaulting due to a wallpaper I had. I had chosen an XML file as my wallpaper, which defined a rotating gallery of images. It was hand-made, but based on /usr/share/backgrounds/contest/background-1.xml or similar. Disabling the wallpaper and I have not had a crash since. I'm not marking this as answered yet, since the actual specific problem was not my question, but how to diagnose it was. Unfortunately this was mostly trial-and-error which sucks.

    Read the article

  • In which directory to write game save files/data?

    - by Klaim
    I need a definite list of directories, one or more per platform, where to put game save files and other game generated data. Either based no the OS developer specification, or because it is common usage if there is no recommandation. Please provide one answer per platform, with different directories. Also, example of how to get the directory location in C++ or C is best, as it's the language you'll have more hard time. Locations: Player's game data (saved games, config). Shared game data (like high-score or config for all computer users). Temporary game data (aka cache directory).

    Read the article

  • Advertising cookies ( ad sense ) on google chrome [closed]

    - by zack
    ok first I'm not sure if this is right stackexchange site to ask but I'm not sure if there is better one as question is quite general When I visit one site, and if this site runs google adsense campaign, I can see its ads on other sites. I suppose this is cookie from this site and than it's showing ads using the cookie However, I removed this specific cookie and cleared cache, and I can still see this same ad showing on other sites running adsense My question is, is there is something wrong with google chrome, is there a possibility that Google stores data within google chrome itself? If not, how else they could trace which ads to show?

    Read the article

  • How do I pick up a new language quickly, given I know several others?

    - by Mark Trapp
    One type of question that keeps coming up on Programmers.SE is how to learn a specific language, given you know several others (usually through a lot of experience or education). In some cases, however, one might need to get up to speed quickly for a job, or for personal development, or even to check out a hot new platform. In your experience, what general strategies have you used to pick up a new language quickly? Are there specific aspects of a language you try to focus on when starting cold? What types of resources do you find helpful in this process?

    Read the article

  • The Softer Side of Customer Experience

    - by Christina McKeon
    It’s election season in the U.S., and you know what that means. It means I stop by the recycling bin in my garage before entering the house with the contents of my mailbox. A couple of weeks ago, I was doing my usual direct mail purge when I came across a piece from The Container Store®. This piece would have gone straight to the recycling bin, but the title stopped me: Learn what WE STAND FOR! Under full disclaimer, I’m probably a “frequent flier” at The Container Store. One can never be too organized! Now, back to the direct mail piece. I opened it to discover that The Container Store has taken their customer experience beyond “a shopping experience that makes you smile” to giving customers more insight and transparency into how they feel about their employees, the vendors they partner with, and the communities they live in. The direct mail piece included several employees showcasing a skill, hobby or talent with their photo and a personal note that used one word to describe what these employees believe The Container Store stands for. I do not recall the last time I read through an entire piece of direct mail. But this time, I pored over all the comments and photos.  Summer, a salesperson, believes that one word is PASSION. Thomas in distribution center inventory systems chooses the word ACTION. The list goes on to include MATCHLESS, FUN, FAMILY, LOVE, and EMPOWERMENT. The Container Store is running a contest asking you to tell them what nonprofit organization you stand for. Anyone can submit their favorite nonprofit to win cash, products and services from The Container Store. Don’t forget about the softer side of customer experience. With many organizations working feverishly to transform their business into being more customer-centric, it’s easy to get caught up in processes and technology. Focusing on people and social responsibility often falls behind and becomes a lower priority. Keeping people and social responsibility at the forefront is crucial. Your customers will use your processes and technology, but they will see or hear your people and feel their passion. The latter is what they will remember most about your brand. I’m sure there are many other great examples of the softer side of customer experience. Please share your examples in the comments section.

    Read the article

  • Speaking at PASS 2012 Summit in Seattle #sqlpass

    - by Marco Russo (SQLBI)
    I will deliver two sessions at the next PASS Summit 2012: one is title Inside DAX Query Plans and the other is Near Real-Time Analytics with xVelocity (without DirectQuery).These will be two sessions that require a lot of preparation and even if I have already much to say, I still have a long work to do this summer in order to go deeper in several details that I want to investigate for completing these sessions.I already look forward to come back in Seattle!In the meantime, you have to study SSAS Tabular and if you want to get a real jumpstart why not attending one of the next SSAS Tabular Workshop Online? We are working on more dates for this fall, but there are a few dates already scheduled.And, last but not least, the early Rough Cuts edition of our upcoming SSAS Tabular book is finally available here (really near to the final print)!

    Read the article

  • Collision Detection problems in Voxel Engine (XNA)

    - by Darestium
    I am creating a minecraft like terrain engine in XNA and have had some collision problems for quite some time. I have checked and changed my code based on other peoples collision code and I still have the same problem. It always seems to be off by about a block. for instance, if I walk across a bridge which is one block high I fall through it. Also, if you walk towards a "row" of blocks like this: You are able to stand "inside" the left most one, and you collide with nothing in the right most side (where there is no block and is not visible on this image). Here is all my collision code: private void Move(GameTime gameTime, Vector3 direction) { float speed = playermovespeed * (float)gameTime.ElapsedGameTime.TotalSeconds; Matrix rotationMatrix = Matrix.CreateRotationY(player.Camera.LeftRightRotation); Vector3 rotatedVector = Vector3.Transform(direction, rotationMatrix); rotatedVector.Normalize(); Vector3 testVector = rotatedVector; testVector.Normalize(); Vector3 movePosition = player.position + testVector * speed; Vector3 midBodyPoint = movePosition + new Vector3(0, -0.7f, 0); Vector3 headPosition = movePosition + new Vector3(0, 0.1f, 0); if (!world.GetBlock(movePosition).IsSolid && !world.GetBlock(midBodyPoint).IsSolid && !world.GetBlock(headPosition).IsSolid) { player.position += rotatedVector * speed; } //player.position += rotatedVector * speed; } ... public void UpdatePosition(GameTime gameTime) { player.velocity.Y += playergravity * (float)gameTime.ElapsedGameTime.TotalSeconds; Vector3 footPosition = player.Position + new Vector3(0f, -1.5f, 0f); Vector3 headPosition = player.Position + new Vector3(0f, 0.1f, 0f); // If the block below the player is solid the Y velocity should be zero if (world.GetBlock(footPosition).IsSolid || world.GetBlock(headPosition).IsSolid) { player.velocity.Y = 0; } UpdateJump(gameTime); UpdateCounter(gameTime); ProcessInput(gameTime); player.Position = player.Position + player.velocity * (float)gameTime.ElapsedGameTime.TotalSeconds; velocity = Vector3.Zero; } and the one and only function in the camera class: protected void CalculateView() { Matrix rotationMatrix = Matrix.CreateRotationX(upDownRotation) * Matrix.CreateRotationY(leftRightRotation); lookVector = Vector3.Transform(Vector3.Forward, rotationMatrix); cameraFinalTarget = Position + lookVector; Vector3 cameraRotatedUpVector = Vector3.Transform(Vector3.Up, rotationMatrix); viewMatrix = Matrix.CreateLookAt(Position, cameraFinalTarget, cameraRotatedUpVector); } which is called when the rotation variables are changed: public float LeftRightRotation { get { return leftRightRotation; } set { leftRightRotation = value; CalculateView(); } } public float UpDownRotation { get { return upDownRotation; } set { upDownRotation = value; CalculateView(); } } World class: public Block GetBlock(int x, int y, int z) { if (InBounds(x, y, z)) { Vector3i regionalPosition = GetRegionalPosition(x, y, z); Vector3i region = GetRegionPosition(x, y, z); return regions[region.X, region.Y, region.Z].Blocks[regionalPosition.X, regionalPosition.Y, regionalPosition.Z]; } return new Block(BlockType.none); } public Vector3i GetRegionPosition(int x, int y, int z) { int regionx = x == 0 ? 0 : x / Variables.REGION_SIZE_X; int regiony = y == 0 ? 0 : y / Variables.REGION_SIZE_Y; int regionz = z == 0 ? 0 : z / Variables.REGION_SIZE_Z; return new Vector3i(regionx, regiony, regionz); } public Vector3i GetRegionalPosition(int x, int y, int z) { int regionx = x == 0 ? 0 : x / Variables.REGION_SIZE_X; int X = x % Variables.REGION_SIZE_X; int regiony = y == 0 ? 0 : y / Variables.REGION_SIZE_Y; int Y = y % Variables.REGION_SIZE_Y; int regionz = z == 0 ? 0 : z / Variables.REGION_SIZE_Z; int Z = z % Variables.REGION_SIZE_Z; return new Vector3i(X, Y, Z); } Any ideas how to fix this problem? EDIT 1: Graphic of the problem: EDIT 2 GetBlock, Vector3 version: public Block GetBlock(Vector3 position) { int x = (int)Math.Floor(position.X); int y = (int)Math.Floor(position.Y); int z = (int)Math.Ceiling(position.Z); Block block = GetBlock(x, y, z); return block; } Now, the thing is I tested the theroy that the Z is always "off by one" and by ceiling the value it actually works as intended. Altough it still could be greatly more accurate (when you go down holes you can see through the sides, and I doubt it will work with negitive positions). I also does not feel clean Flooring the X and Y values and just Ceiling the Z. I am surely not doing something correctly still.

    Read the article

  • Finding Near-Earth Asteroids

    - by TATWORTH
    One of the puzzling aspects of hunting for Near Earth Asteroids is that more has been spent on Hollywood films about potential disasters should one hit the Earth than on finding them in the first place. While there are a number of on-going asteroid search programs, these are all Earth-based at the moment. The limitations of them are:Each telescope can only observe for a maximum average of 12 hours per day.As far as I am aware, all these programs are in the visible light only. (Once an asteroid is found, then radar tracking is possible when it is close.)Being Earth based they cannot see inside the Earth's orbit.The Asteroids being generally dark, do not show up well in visible light.A private group are proposing a radical alternative to this by orbiting an infra-red telescope in the orbit of Venus. In Infra-red, the asteroids are more readily seen. Here are some details: Source SPACE.com: All about our solar system, outer space and exploration

    Read the article

  • HP Pavilion dv7 dual boot with ubuntu and original win7 issues

    - by Neasy11
    I just bought a hp dv7 and I want to dual boot it with the win7 it came with and ubuntu 12.04.1. I shrunk the C partition to make room for the ubuntu one then downloaded an burnt the iso. Next I booted from the cd and followed the simple instructions until I got to the page of the install to choose the partition where all choices were greyed out and the table was completely blank and the drop down only had one choice. After researching this I found that a main problem might be that I can only have 4 primary partitions and the computer was shipped with the 4 already (system,C,recovery,hp tools). I guess my question is what is the best way to go about completing this dual boot? I have read to delete the hp tools partition or combine it with another, I just want a step by step of how to dual boot this computer, I have done plenty of computers in the past but never ran into these issues that come with an HP (should have got a dell lol)!

    Read the article

  • Clicking on clues and other objects in a 2D cluedo like game

    - by Anearion
    I'm a java/android programmer, but I don't have any experience in game programming, I'm already reading proper books, like "Pro Android Games", but my concerns are more about the ideas behind game programming than the techniques themselves. I'm working on a 2D game, something like Cluedo to let you understand the genre. I would like to know how should I act with the "scenes", for example, a room with a desk, TV, windows and a lamp. I need to make some items tappable and others not. Is it common to use one image (invisible to the user) with every different item a different color, then call the getColor() method on the image? Or use one image as background, and separate images for all the items? If the latter, how can I set the positioning? and should I use imageView or imageButton? I'm sorry if those are really low quality questions, but as "outsider" ( I'm 23 and still finishing my university ) it's pretty hard learn alone.

    Read the article

  • most efficient AABB vs Ray collision algorithms

    - by Asher Einhorn
    Is there a known 'most efficient' algorithm for AABB vs Ray collision detection? I recently stumbled accross Arvo's AABB vs Sphere collision algorithm, and I am wondering if there is a similarly noteworthy algorithm for this. One must have condition for this algorithm is that I need to have the option of querying the result for the distance from the ray's origin to the point of collision. having said this, if there is another, faster algorithm which does not return distance, then in addition to posting one that does, also posting that algorithm would be very helpful indeed. Please also state what the function's return argument is, and how you use it to return distance or a 'no-collision' case. For example, does it have an out parameter for the distance as well as a bool return value? or does it simply return a float with the distance, vs a value of -1 for no collision? (For those that don't know: AABB = Axis Aligned Bounding Box)

    Read the article

  • Install/upgrade ubuntu from another system

    - by Samarth Agarwal
    I have a new Laptop with latest Ubuntu preinstalled on it, its 12.04. I have another laptop with Ubuntu 10.04 on it. What I lack is a fast internet connection. I want to upgrade my Ubuntu 10 laptop to a ubuntu 12 version. How is this possible without using internet connection? Can I move/copy the installation from the new laptop to the older one? Is there a way so that the newer laptop can upgrade the older one using a usb disk or dvd/cd?

    Read the article

  • SQL 2014 does data the way developers want

    - by Rob Farley
    A post I’ve been meaning to write for a while, good that it fits with this month’s T-SQL Tuesday, hosted by Joey D’Antoni (@jdanton) Ever since I got into databases, I’ve been a fan. I studied Pure Maths at university (as well as Computer Science), and am very comfortable with Set Theory, which undergirds relational database concepts. But I’ve also spent a long time as a developer, and appreciate that that databases don’t exactly fit within the stuff I learned in my first year of uni, particularly the “Algorithms and Data Structures” subject, in which we studied concepts like linked lists. Writing in languages like C, we used pointers to quickly move around data, without a database in sight. Of course, if we had a power failure all this data was lost, as it was only persisted in RAM. Perhaps it’s why I’m a fan of database internals, of indexes, latches, execution plans, and so on – the developer in me wants to be reassured that we’re getting to the data as efficiently as possible. Back when SQL Server 2005 was approaching, one of the big stories was around CLR. Many were saying that T-SQL stored procedures would be a thing of the past because we now had CLR, and that obviously going to be much faster than using the abstracted T-SQL. Around the same time, we were seeing technologies like Linq-to-SQL produce poor T-SQL equivalents, and developers had had a gutful. They wanted to move away from T-SQL, having lost trust in it. I was never one of those developers, because I’d looked under the covers and knew that despite being abstracted, T-SQL was still a good way of getting to data. It worked for me, appealing to both my Set Theory side and my Developer side. CLR hasn’t exactly become the default option for stored procedures, although there are plenty of situations where it can be useful for getting faster performance. SQL Server 2014 is different though, through Hekaton – its In-Memory OLTP environment. When you create a table using Hekaton (that is, a memory-optimized one), the table you create is the kind of thing you’d’ve made as a developer. It creates code in C leveraging structs and pointers and arrays, which it compiles into fast code. When you insert data into it, it creates a new instance of a struct in memory, and adds it to an array. When the insert is committed, a small write is made to the transaction to make sure it’s durable, but none of the locking and latching behaviour that typifies transactional systems is needed. Indexes are done using hashes and using bw-trees (which avoid locking through the use of pointers) and by handling each updates as a delete-and-insert. This is data the way that developers do it when they’re coding for performance – the way I was taught at university before I learned about databases. Being done in C, it compiles to very quick code, and although these tables don’t support every feature that regular SQL tables do, this is still an excellent direction that has been taken. @rob_farley

    Read the article

< Previous Page | 535 536 537 538 539 540 541 542 543 544 545 546  | Next Page >