Search Results

Search found 20111 results on 805 pages for 'software law'.

Page 4/805 | < Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >

  • Rails: Law of Demeter Confusion

    - by user2158382
    I am reading a book called Rails AntiPatterns and they talk about using delegation to to avoid breaking the Law of Demeter. Here is their prime example: They believe that calling something like this in the controller is bad (and I agree) @street = @invoice.customer.address.street Their proposed solution is to do the following: class Customer has_one :address belongs_to :invoice def street address.street end end class Invoice has_one :customer def customer_street customer.street end end @street = @invoice.customer_street They are stating that since you only use one dot, you are not breaking the Law of Demeter here. I think this is incorrect, because you are still going through customer to go through address to get the invoice's street. I primarily got this idea from a blog post I read: http://www.dan-manges.com/blog/37 In the blog post the prime example is class Wallet attr_accessor :cash end class Customer has_one :wallet # attribute delegation def cash @wallet.cash end end class Paperboy def collect_money(customer, due_amount) if customer.cash < due_ammount raise InsufficientFundsError else customer.cash -= due_amount @collected_amount += due_amount end end end The blog post states that although there is only one dot customer.cash instead of customer.wallet.cash, this code still violates the Law of Demeter. Now in the Paperboy collect_money method, we don't have two dots, we just have one in "customer.cash". Has this delegation solved our problem? Not at all. If we look at the behavior, a paperboy is still reaching directly into a customer's wallet to get cash out. EDIT I completely understand and agree that this is still a violation and I need to create a method in Wallet called withdraw that handles the payment for me and that I should call that method inside the Customer class. What I don't get is that according to this process, my first example still violates the Law of Demeter because Invoice is still reaching directly into Customer to get the street. Can somebody help me clear the confusion. I have been searching for the past 2 days trying to let this topic sink in, but it is still confusing.

    Read the article

  • Law of Demeter confusion [duplicate]

    - by user2158382
    This question already has an answer here: Rails: Law of Demeter Confusion 4 answers I am reading a book called Rails AntiPatterns and they talk about using delegation to to avoid breaking the Law of Demeter. Here is their prime example: They believe that calling something like this in the controller is bad (and I agree) @street = @invoice.customer.address.street Their proposed solution is to do the following: class Customer has_one :address belongs_to :invoice def street address.street end end class Invoice has_one :customer def customer_street customer.street end end @street = @invoice.customer_street They are stating that since you only use one dot, you are not breaking the Law of Demeter here. I think this is incorrect, because you are still going through customer to go through address to get the invoice's street. I primarily got this idea from a blog post I read: http://www.dan-manges.com/blog/37 In the blog post the prime example is class Wallet attr_accessor :cash end class Customer has_one :wallet # attribute delegation def cash @wallet.cash end end class Paperboy def collect_money(customer, due_amount) if customer.cash < due_ammount raise InsufficientFundsError else customer.cash -= due_amount @collected_amount += due_amount end end end The blog post states that although there is only one dot customer.cash instead of customer.wallet.cash, this code still violates the Law of Demeter. Now in the Paperboy collect_money method, we don't have two dots, we just have one in "customer.cash". Has this delegation solved our problem? Not at all. If we look at the behavior, a paperboy is still reaching directly into a customer's wallet to get cash out. Can somebody help me clear the confusion. I have been searching for the past 2 days trying to let this topic sink in, but it is still confusing.

    Read the article

  • Creating reproducible builds to verify Free Software

    - by mikkykkat
    Free Software is about freedom and privacy, Open Source software is great but making that fully practical usually won't happen. Most Free Software developers publicize binaries that we can't verify are really compiled from the source code or have something bad injected already! We have the freedom to change the code, but privacy for ordinary users is missing. For desktop software there is a lot of languages and opportunities to create Free Software with a reproducible build process (compiling source code to always produce the exact same binary), but for mobile computing I don't know if same thing is possible or not? Mobile devices are probably the future of computing and Android is the only Open Source environment so far which accept Java for coding. Compiling same Android application won't result in the exact same binary every time. For Open Source Android apps how we can verify the produced binary (.apk) is really compiled from the source code? Is there any way to create reproducible builds from the Android SDK or does Java fail here for Free Software? is there any java software ever wrote with a reproducible build?

    Read the article

  • Software center is not working after attempt to install skype

    - by user288690
    I am completely new person on Linux. I installed it just today and i have to say I like them a lot, until I faced the problem. I was looking on the internet but nothing worked for me. After i downloaded skype and tried to run it, software center showed up and was loading something for 5 mins. then it just dessapeared. Now everytime I try to turn it on, the window is gone after 3 sec. I tried to kill it but didnt really wokrked. I get this message when trying to run it from the terminal: whats_new_cat = self._update_whats_new_content() File "/usr/share/software-center/softwarecenter/ui/gtk3/views/lobbyview.py", line 240, in _update_whats_new_content docs = whats_new_cat.get_documents(self.db) File "/usr/share/software-center/softwarecenter/db/categories.py", line 131, in get_documents nonblocking_load=False) File "/usr/share/software-center/softwarecenter/db/enquire.py", line 330, in set_query self._blocking_perform_search() File "/usr/share/software-center/softwarecenter/db/enquire.py", line 225, in _blocking_perform_search matches = enquire.get_mset(0, self.limit, None, xfilter) File "/usr/share/software-center/softwarecenter/db/appfilter.py", line 89, in __call__ if (not pkgname in self.cache and File "/usr/share/software-center/softwarecenter/db/pkginfo_impl/aptcache.py", line 281, in __contains__ return self._cache.__contains__(k) AttributeError: 'NoneType' object has no attribute '__contains when trying to kill it via terminal, it says there is no process like this. Thx guys for help! Help me like Ubuntu for rest of my life! :P

    Read the article

  • Why Software Sucks...and What You Can Do About It – book review

    - by DigiMortal
        How do our users see the products we are writing for them and how happy they are with our work? Are they able to get their work done without fighting with cool features and crashes or are they just switching off resistance part of their brain to survive our software? Yeah, the overall picture of software usability landscape is not very nice. Okay, it is not even nice. But, fortunately, Why Software Sucks...and What You Can Do About It by David S. Platt explains everything. Why Software Sucks… is book for software users but I consider it as a-must reading also for developers and specially for their managers whose politics often kills all usability topics as soon as they may appear. For managers usability is soft topic that can be manipulated the way it is best in current state of project. Although developers are not UI designers and usability experts they are still very often forced to deal with these topics and this is how usability problems start (of course, also designers are able to produce designs that are stupid and too hard to use for users, but this blog here is about development). I found this book to be very interesting and funny reading. It is not humor book but it explains you all so you remember later very well what you just read. It took me about three evenings to go through this book and I am still enjoying what I found and how author explains our weird young working field to end users. I suggest this book to all developers – while you are demanding your management to hire or outsource usability expert you are at least causing less pain to end users. So, go and buy this book, just like I did. And… they thanks to mr. Platt :) There is one book more I suggest you to read if you are interested in usability - Don't Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition by Steve Krug. Editorial review from Amazon Today’s software sucks. There’s no other good way to say it. It’s unsafe, allowing criminal programs to creep through the Internet wires into our very bedrooms. It’s unreliable, crashing when we need it most, wiping out hours or days of work with no way to get it back. And it’s hard to use, requiring large amounts of head-banging to figure out the simplest operations. It’s no secret that software sucks. You know that from personal experience, whether you use computers for work or personal tasks. In this book, programming insider David Platt explains why that’s the case and, more importantly, why it doesn’t have to be that way. And he explains it in plain, jargon-free English that’s a joy to read, using real-world examples with which you’re already familiar. In the end, he suggests what you, as a typical user, without a technical background, can do about this sad state of our software—how you, as an informed consumer, don’t have to take the abuse that bad software dishes out. As you might expect from the book’s title, Dave’s expose is laced with humor—sometimes outrageous, but always dead on. You’ll laugh out loud as you recall incidents with your own software that made you cry. You’ll slap your thigh with the same hand that so often pounded your computer desk and wished it was a bad programmer’s face. But Dave hasn’t written this book just for laughs. He’s written it to give long-overdue voice to your own discovery—that software does, indeed, suck, but it shouldn’t. Table of contents Acknowledgments xiii Introduction Chapter 1: Who’re You Calling a Dummy? Where We Came From Why It Still Sucks Today Control versus Ease of Use I Don’t Care How Your Program Works A Bad Feature and a Good One Stopping the Proceedings with Idiocy Testing on Live Animals Where We Are and What You Can Do Chapter 2: Tangled in the Web Where We Came From How It Works Why It Still Sucks Today Client-Centered Design versus Server-Centered Design Where’s My Eye Opener? It’s Obvious—Not! Splash, Flash, and Animation Testing on Live Animals What You Can Do about It Chapter 3: Keep Me Safe The Way It Was Why It Sucks Today What Programmers Need to Know, but Don’t A Human Operation Budgeting for Hassles Users Are Lazy Social Engineering Last Word on Security What You Can Do Chapter 4: Who the Heck Are You? Where We Came From Why It Still Sucks Today Incompatible Requirements OK, So Now What? Chapter 5: Who’re You Looking At? Yes, They Know You Why It Sucks More Than Ever Today Users Don’t Know Where the Risks Are What They Know First Milk You with Cookies? Privacy Policy Nonsense Covering Your Tracks The Google Conundrum Solution Chapter 6: Ten Thousand Geeks, Crazed on Jolt Cola See Them in Their Native Habitat All These Geeks Who Speaks, and When, and about What Selling It The Next Generation of Geeks—Passing It On Chapter 7: Who Are These Crazy Bastards Anyway? Homo Logicus Testosterone Poisoning Control and Contentment Making Models Geeks and Jocks Jargon Brains and Constraints Seven Habits of Geeks Chapter 8: Microsoft: Can’t Live With ’Em and Can’t Live Without ’Em They Run the World Me and Them Where We Came From Why It Sucks Today Damned if You Do, Damned if You Don’t We Love to Hate Them Plus ça Change Growing-Up Pains What You Can Do about It The Last Word Chapter 9: Doing Something About It 1. Buy 2. Tell 3. Ridicule 4. Trust 5. Organize Epilogue About the Author

    Read the article

  • Is there an equivalent to the Max OS X software Hazel that runs on Ubuntu?

    - by Stuart Woodward
    Is there an equivalent to the Max OS X software Hazel that runs on Ubuntu? "Hazel watches whatever folders you tell it to, automatically organizing your files according to the rules you create. It features a rule interface [..]. Have Hazel move files around based on name, date, type, what site/email address it came from [..] and much more. Automatically put your music in your Music folder, movies in Movies. Keep your downloads off the desktop and put them where they are supposed to be." This question probably won't make sense unless you have used Hazel, but basically you can define rules via the GUI to move and rename files automatically to make an automated workflow.

    Read the article

  • Why is Software Engineering not the typical major for future software developers?

    - by FarmBoy
    While most agree that a certain level of Computer Science is essential to being a good programmer, it seems to me that the principles of good software development is even more important, though not as fundamental. Just like mechanical engineers take physics classes, but far more engineering classes, I would expect, now that software is over a half century old, that software development would begin to dominate the undergraduate curriculum. But I don't see much evidence of this. Is there a reason that Software Engineering hasn't taken hold as an academic discipline?

    Read the article

  • How to re-install Software Center?

    - by Icedrake
    I've had a problem with Software Center for a few weeks, where it has just refused to delete a removed PPA from its "All Software" and "Installed Software" drop-down menus. I've tried many suggested solutions, none have worked, so I've finally decided to re-install Software Center if its possible. How do you do this and is it risky to your computer (i.e. will re-installing it cause all sorts of issues)?

    Read the article

  • What are some good Software Engineering books for people who didn't formally study Computer Science or Software Engineering?

    - by Kugathasan Abimaran
    I'm a graduate in the electronic & telecommunication field, but working in a software company. I want to continue in this field and going for Masters in it. Can you recommend me some of the best books on software engineering, which cover almost all the topics in software engineering. I am not looking for books about coding practices such as Code Complete, Pragmatic Programmer, but rather general software engineering references.

    Read the article

  • Ubuntu Software Center Missing and cannot install?

    - by luqman
    My ubuntu was remove ubuntu software center because i want to reinstall again.but i used terminal...i cannot to install ubuntu software center.. :~$ sudo apt-get install software-center Reading package lists... Done Building dependency tree Reading state information... Done Package software-center is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source Why?

    Read the article

  • Who decides what category the software in the Ubuntu Software Centre is filed under, and who can we report errors to?

    - by coversnail
    I noticed when browsing through the Ubuntu Software Centre that some programs seem to be placed in the wrong categories, for example Pinta, an image editor, appears under Developer Tools (instead of Graphics) in my list of installed programs. Is this a case of the developer incorrectly categorising their software when they uploaded it to the software centre, or does Canonical decided what goes where? And if we notice an obvious mistake who do we inform, the software developer or file a bug somehow?

    Read the article

  • How to uninstall Ubuntu Software Center in 11.10?

    - by sainath
    I am trying to uninstall software center for ubuntu oneric using the command sudo apt-get remove software center and get this as result Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package software E: Unable to locate package center I did it once and got it fixed but now it does't work. I have an issue with the software center it keeps on repeatedly giving message saying send error.

    Read the article

  • Evolución de software, los nuevos desafíos de la actual industria de software

    Evolución de software, los nuevos desafíos de la actual industria de software En este programa presentaremos una visión general de las oportunidades tecnológicas que favorecen la generación de emprendimientos regionales desde el equipo de relaciones para desarrolladores de la región de sur de Latinoamérica. Trataremos escenarios tecnológicos y principalmente el impacto en la evolución de software y el modelo de computación en la nube, finalmente analizaremos las oportunidades más importantes junto a diversos referentes regionales. Tecnología, desafíos, opiniones y todo el ecosistema representado por la pasión y el talento regional. From: GoogleDevelopers Views: 0 0 ratings Time: 02:00:00 More in Education

    Read the article

  • Best Method For Evaluating Existing Software or New Software

    How many of us have been faced with having to decide on an off-the-self or a custom built component, application, or solution to integrate in to an existing system or to be the core foundation of a new system? What is the best method for evaluating existing software or new software still in the design phase? One of the industry preferred methodologies to use is the Active Reviews for Intermediate Designs (ARID) evaluation process.  ARID is a hybrid mixture of the Active Design Review (ADR) methodology and the Architectural Tradeoff Analysis Method (ATAM). So what is ARID? ARD’s main goal is to ensure quality, detailed designs in software. One way in which it does this is by empowering reviewers by assigning generic open ended survey questions. This approach attempts to remove the possibility for allowing the standard answers such as “Yes” or “No”. The ADR process ignores the “Yes”/”No” questions due to the fact that they can be leading based on how the question is asked. Additionally these questions tend to receive less thought in comparison to more open ended questions. Common Active Design Review Questions What possible exceptions can occur in this component, application, or solution? How should exceptions be handled in this component, application, or solution? Where should exceptions be handled in this component, application, or solution? How should the component, application, or solution flow based on the design? What is the maximum execution time for every component, application, or solution? What environments can this component, application, or solution? What data dependencies does this component, application, or solution have? What kind of data does this component, application, or solution require? Ok, now I know what ARID is, how can I apply? Let’s imagine that your organization is going to purchase an off-the-shelf (OTS) solution for its customer-relationship management software. What process would we use to ensure that the correct purchase is made? If we use ARID, then we will have a series of 9 steps broken up by 2 phases in order to ensure that the correct OTS solution is purchases. Phase 1 Identify the Reviewers Prepare the Design Briefing Prepare the Seed Scenarios Prepare the Materials When identifying reviewers for a design it is preferred that they be pulled from a candidate pool comprised of developers that are going to implement the design. The believe is that developers actually implementing the design will have more a vested interest in ensuring that the design is correct prior to the start of code. Design debriefing consist of a summary of the design, examples of the design solving real world examples put in to use and should be no longer than two hours typically. The primary goal of this briefing is to adequately summarize the design so that the review members could actually implement the design. In the example of purchasing an OTS product I would attempt to review my briefing prior to its distribution with the review facilitator to ensure that nothing was excluded that should have not been. This practice will also allow me to test the length of the briefing to ensure that can be delivered in an appropriate about of time. Seed Scenarios are designed to illustrate conceptualized scenarios when applied with a set of sample data. These scenarios can then be used by the reviewers in the actual evaluation of the software, All materials needed for the evaluation should be prepared ahead of time so that they can be reviewed prior to and during the meeting. Materials Included: Presentation Seed Scenarios Review Agenda Phase 2 Present ARID Present Design Brainstorm and prioritize scenarios Apply scenarios Summarize Prior to the start of any ARID review meeting the Facilitator should define the remaining steps of ARID so that all the participants know exactly what they are doing prior to the start of the review process. Once the ARID rules have been laid out, then the lead designer presents an overview of the design which typically takes about two hours. During this time no questions about the design or rational are allowed to be asked by the review panel as a standard, but they are written down for use latter in the process. After the presentation the list of compiled questions is then summarized and sent back to the lead designer as areas that need to be addressed further. In the example of purchasing an OTS product issues could arise regarding security, the implementation needed or even if this is this the correct product to solve the needed solution. After the Design presentation a brainstorming and prioritize scenarios process begins by reducing the seed scenarios down to just the highest priority scenarios.  These will then be used to test the design for suitability. Once the selected scenarios have been defined the reviewers apply the examples provided in the presentation to the scenarios. The intended output of this process is to provide code or pseudo code that makes use of the examples provided while solving the selected seed scenarios. As a standard rule, the designers of the systems are not allowed to help the review board unless they all become stuck. When this occurs it is documented and along with the reason why the designer needed to help the review panel back on track. Once all of the scenarios have been completed the review facilitator reviews with the group issues that arise during the process. Then the reviewers will be polled as to efficacy of the review experience. References: Clements, Paul., Kazman, Rick., Klien, Mark. (2002). Evaluating Software Architectures: Methods and Case Studies Indianapolis, IN: Addison-Wesley

    Read the article

  • Create software without programming

    - by Hafizul Amri
    Is there any system or software that can let you create a system or software without have to do programming? UPDATE: Answering to Kennethvr question. Software that I mean is like a web-based software that used to create a simple CRUD system such contact management system, and you can choose how data will be displayed. UPDATE I have found PHPRunner software. It can create a simple CRUD system without you need to touch your coding. Take a look at it!

    Read the article

  • Ubuntu Software Center is crashing while trying to install psychonauts

    - by GonzoDark
    I am having a problem installing Tim Schafers epic platform video game Psychonauts trough the Ubuntu Software Center. I have bought the game on http://www.humblebundle.com/ and I have used the new redeem option introduced in this bundle: "redeem your bundle on the Ubuntu Software Center." When I have downloaded approximately 2.1 GB of Psychonauts then Ubuntu Software Center starts to repeatedly crash and pop-up with a new crash report dialog every few seconds (before previous ones are closed and that will crash the computer after a few min, unless I stop the download). I also have a file-size bug, where Ubuntu Software Center tells me that I have downloaded 880,2 MB out of 133,3 MB I use the new Ubuntu 12.04 LTS and Ubuntu Software Center version 5.2.2.2 (©2009-2011 Canonical <--- That is also a bug, should be 2012 I guess) I hope someone can help me.

    Read the article

  • How to update the USB Ubuntu (ISO) with new software

    - by nakata
    I have Peppermint (based on Ubuntu) running of USB. Its bascially an ISO image that loads using Grub4Dos. Problem is that I each time I load Ubuntu - and want to use i.e. teamviewer or Firefox...I have to install it on the running live system. Since its running from a ISO image...a reboot means the software is gone. I can edit/open the ISO image using WinImage (on XP) - would you know how I can add extra software into this ISO image so next time Ubuntu loads...the new software is on there? Is there some special repositary director where I should copy the software files into and recreate the ISO image? The directory structure of this iso image is along the lines of: .disk [BOOT] Casper dists install isolinux pool preseed Appreciate your help with this. The software I am really interested in installing is the plugin for LogMeIn (for which I may need Firefox...thus I need Firefox installation) and Teamviewer. Thanks Nakata

    Read the article

  • What industries develop the highest quality software? Lowest quality? Why?

    - by Derek Mahar
    From your experience, of those industries that develop custom software for internal use such as financial services companies, which ones produce higher quality software measured in defect rates and, more qualitatively, ease of maintenance over the long term? What contributes the most to this achievement of higher quality? Is it due to better software development practices such as greater emphasis on testing or specification? Developers who better understand the tools or who are strong problem solvers? Better communication between team members? On the flip-side, which industries do you think produce the lowest quality software? Why?

    Read the article

  • Can't install software by terminal

    - by behnam mohammadi
    I don't know what packages i have installed that i no longer can get and install packages in terminal. e.g. when trying to install Prozgui, i got this error: Traceback (most recent call last): File "/usr/bin/add-apt-repository", line 60, in <module> sp = SoftwareProperties() File "/usr/lib/python2.7/dist-packages/softwareproperties/SoftwareProperties.py", line 90, in __init__ self.reload_sourceslist() File "/usr/lib/python2.7/dist-packages/softwareproperties/SoftwareProperties.py", line 538, in reload_sourceslist self.distro.get_sources(self.sourceslist) File "/usr/lib/python2.7/dist-packages/aptsources/distro.py", line 91, in get_sources raise NoDistroTemplateException("Error: could not find a " aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template and it happens for all others too. Plus, my Software Center has been disabled and doesn't start. I get this error for that too: Traceback (most recent call last): File "/usr/bin/software-center", line 111, in <module> from softwarecenter.app import SoftwareCenterApp File "/usr/share/software-center/softwarecenter/app.py", line 40, in <module> from softwarecenter.db.application import Application, DebFileApplication File "/usr/share/software-center/softwarecenter/db/application.py", line 30, in <module> from softwarecenter.distro import get_distro File "/usr/share/software-center/softwarecenter/distro/__init__.py", line 151, in <module> distro_instance=_get_distro() File "/usr/share/software-center/softwarecenter/distro/__init__.py", line 140, in _get_distro module = __import__(distro_id, globals(), locals(), [], -1) ImportError: No module named OPTIMOS Can anyone please help me with this? Thank you in advance!

    Read the article

  • How can a large number of developers write software together without either a cumbersome process or

    - by Mark Robinson
    I work at a company with hundreds of people writing software for essentially the same product. The quality of the software has to be high because so many people depend on it (not least the developers themselves). Because of this every major issue has resulted in a new check - either automated or manual. As a result the process of delivering software is becoming ever more burdensome. So that requires more developers which... well you can see it is a vicious circle. We now have a problem with releasing software quickly - the lead time even to change one line of code for a very serious issue is at least one day. What techniques do you use to speed up the delivery of software in a large organization, while still maintaining software quality?

    Read the article

  • Quick Steps to Setting Up a Law Firm Website

    Here are some quick tips for creating a pro law firm website that will get found online. The first stage is choosing a domain for your law firm website. Your first instinct in picking a domain might be to choose a branded domain based on the name of your firm.

    Read the article

< Previous Page | 1 2 3 4 5 6 7 8 9 10 11 12  | Next Page >