Search Results

Search found 89523 results on 3581 pages for 'sh code'.

Page 586/3581 | < Previous Page | 582 583 584 585 586 587 588 589 590 591 592 593  | Next Page >

  • How to refactor a method which breaks "The law of Demeter" principle?

    - by dreza
    I often find myself breaking this principle (not intentially, just through bad design). However recently I've seen a bit of code that I'm not sure of the best approach. I have a number of classes. For simplicity I've taken out the bulk of the classes methods etc public class Paddock { public SoilType Soil { get; private set; } // a whole bunch of other properties around paddock information } public class SoilType { public SoilDrainageType Drainage { get; private set; } // a whole bunch of other properties around soil types } public class SoilDrainageType { // a whole bunch of public properties that expose soil drainage values public double GetProportionOfDrainage(SoilType soil, double blockRatio) { // This method does a number of calculations using public properties // exposed off SoilType as well as the blockRatio value in some conditions } } In the code I have seen in a number of places calls like so paddock.Soil.Drainage.GetProportionOfDrainage(paddock.Soil, paddock.GetBlockRatio()); or within the block object itself in places it's Soil.Drainage.GetProportionOfDrainage(this.Soil, this.GetBlockRatio()); Upon reading this seems to break "The Law of Demeter" in that I'm chaining together these properties to access the method I want. So my thought in order to adjust this was to create public methods on SoilType and Paddock that contains wrappers i.e. on paddock it would be public class Paddock { public double GetProportionOfDrainage() { return Soil.GetProportionOfDrainage(this.GetBlockRatio()); } } on the SoilType it would be public class SoilType { public double GetProportionOfDrainage(double blockRatio) { return Drainage.GetProportionOfDrainage(this, blockRatio); } } so now calls where it used would be simply // used outside of paddock class where we can access instances of Paddock paddock.GetProportionofDrainage() or this.GetProportionOfDrainage(); // if used within Paddock class This seemed like a nice alternative. However now I have a concern over how would I enforce this usage and stop anyone else from writing code such as paddock.Soil.Drainage.GetProportionOfDrainage(paddock.Soil, paddock.GetBlockRatio()); rather than just paddock.GetProportionOfDrainage(); I need the properties to remain public at this stage as they are too ingrained in usage throughout the code block. However I don't really want a mixture of accessing the method on DrainageType directly as that seems to defeat the purpose altogether. What would be the appropiate design approach in this situation? I can provide more information as required to better help in answers. Is my thoughts on refactoring this even appropiate or should is it best to leave it as is and use the property chaining to access the method as and when required?

    Read the article

  • More Than a Map - Ubilabs

    More Than a Map - Ubilabs In Hamburg, Germany we met with certified Google Maps API development partner Ubilabs. Ubilabs founders Michael Pletziger and Martin Kleppe showed us some of the Google Maps API driven projects they have built for Germany's largest brands such as Deutsche Telekom, Blitzer.de, and BMW. Read more on morethanamap.com #morethanamap From: GoogleDevelopers Views: 6 0 ratings Time: 01:48 More in Science & Technology

    Read the article

  • Google Maps API Office Hours

    Google Maps API Office Hours Interested in knowing more about the Google Maps API announcements that were made at I/O? During this week's Google Maps API Office Hours, +Josh Livni and +Paul Saxman will give an overview of the Google Maps API features that were announced at I/O, and will talk about the I/O session content that is now available online. The next Office Hours will be this Tuesday at 11am, Pacific Time. Bring your questions, and join us there! From: GoogleDevelopers Views: 167 9 ratings Time: 21:25 More in Science & Technology

    Read the article

  • Continuous Deployment to Azure powered by Git

    Today Scott Guthrie announced several updated capabilities for Azure Web Sites. Announcing: Great Improvements to Windows Azure Web Sites I recommend you checkout the full post there are some really cool improvements. My favorite is the ability to enable Continuous Deployment from your CodePlex project into Azure. David Ebbo has a great video walk-through: (Please visit the site to view this video)

    Read the article

  • Experiments in Big Data Visualization on Maps

    Experiments in Big Data Visualization on Maps Brendan Kenny and Mano Marks continue their series on using the CanvasLayer library and HTML5 APIs to visualize large amounts of data on top of Google maps. This week they look at loading Shapefiles and KML directly in the browser and using WebGL to render their content over a map. From: GoogleDevelopers Views: 0 1 ratings Time: 00:00 More in Science & Technology

    Read the article

  • Umit Project 2010

    Umit Project is an international open source organization focused on network monitoring, with the goal of making life easier for network administrators and others who need to be...

    Read the article

  • How do you make a bullet ricochet off a vertical wall?

    - by Bagofsheep
    First things first. I am using C# with XNA. My game is top-down and the player can shoot bullets. I've managed to get the bullets to ricochet correctly off horizontal walls. Yet, despite using similar methods (e.g. http://stackoverflow.com/questions/3203952/mirroring-an-angle) and reading other answered questions about this subject I have not been able to get the bullets to ricochet off a vertical wall correctly. Any method I've tried has failed and sometimes made ricocheting off a horizontal wall buggy. Here is the collision code that calls the ricochet method: //Loop through returned tile rectangles from quad tree to test for wall collision. If a collision occurs perform collision logic. for (int r = 0; r < returnObjects.Count; r++) if (Bullets[i].BoundingRectangle.Intersects(returnObjects[r])) Bullets[i].doCollision(returnObjects[r]); Now here is the code for the doCollision method. public void doCollision(Rectangle surface) { if (Ricochet) doRicochet(surface); else Trash = true; } Finally, here is the code for the doRicochet method. public void doRicochet(Rectangle surface) { if (Position.X > surface.Left && Position.X < surface.Right) { //Mirror the bullet's angle. Rotation = -1 * Rotation; //Moves the bullet in the direction of its rotation by given amount. moveFaceDirection(Sprite.Width * BulletScale.X); } else if (Position.Y > surface.Top && Position.Y < surface.Bottom) { } } Since I am only dealing with vertical and horizontal walls at the moment, the if statements simply determine if the object is colliding from the right or left, or from the top or bottom. If the object's X position is within the boundaries of the tile's X boundaries (left and right sides), it must be colliding from the top, and vice verse. As you can see, the else if statement is empty and is where the correct code needs to go.

    Read the article

  • Google I/O 2012 - Bring Your App to the Big Screen

    Google I/O 2012 - Bring Your App to the Big Screen Michael Sundermeyer, Ossama Alami Google TV expands the reach of the Android and the web to television, but designing applications for the TV is fundamentally different than building apps for mobile, tablet or PCs. In this session we'll we share the core points of our user research and give you tips on how to connect with your users by designing beautiful and functional Android and web applications for the biggest screen in the house. For all I/O 2012 sessions, go to developers.google.com From: GoogleDevelopers Views: 617 17 ratings Time: 58:07 More in Science & Technology

    Read the article

  • Chrome Apps Office Hours: TextDrive and AngularJS

    Chrome Apps Office Hours: TextDrive and AngularJS Ask and vote for questions: goo.gl In this episode, the AngularJS team joins us to talk about how they used Angular to build TextDrive. TextDrive is an open source text editor application that demonstrates of the power and simplicity of AngularJS and Chrome Apps. It features integration with Google Drive, web intents, and Ace (ace.ajax.org) in a simple and clean interface built upon HTML5 and web standards. To learn more visit github.com From: GoogleDevelopers Views: 0 0 ratings Time: 00:00 More in Science & Technology

    Read the article

  • Trying to get back seamless mode on my VirtualBox

    - by Newben
    I am trying from some days to activate again the seamless mode on my VirtualBox(using Ubuntu 12.04 on an osx device), which was correctly set till now but which isn't working anymore. I have had already this problem but then I had to reinstall a new disk on my VB. I tried everything I know : installing it by clicking on the 'devices' item in the nav bar of VB's app, I created a new dir in /media and then tried to mount the /dev/sr0. When running sh ./VBoxLinuxAdditions.run, it installed correctly But when rebooting my machine, I always have the same problem. Does anybody knows how to activate again Seamless Mode ?

    Read the article

  • Setting up a GUI-based libvirt VM

    - by LibertasMens
    I am attempting to create a virtual machine using libvirt that will have a GNOME GUI and remote accessibility. I have successfully set up the VM to run, but I am unable to access it remotely. The command issued to build the VM: sudo vmbuilder kvm ubuntu --suite=precise --flavour=generic --arch=amd64 --mirror=http://de.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --part=/usr/xxxx/vmbuilder.partition --templates=/usr/xxxx/mytemplates --addpkg=nano --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/usr/xxxx/boot.sh --cpus=2 --mem=4096--user=xxxx --name=xxxx --pass=xxxx --hostname=xxxx --bridge=br0 My intent is to have a virtual machine that my client can remotely access with a GUI.

    Read the article

< Previous Page | 582 583 584 585 586 587 588 589 590 591 592 593  | Next Page >