Search Results

Search found 6200 results on 248 pages for 'recovery partition'.

Page 166/248 | < Previous Page | 162 163 164 165 166 167 168 169 170 171 172 173  | Next Page >

  • Reinstall of Windows Bootloader not working

    - by MrBoxy
    It first started when I deleted my partition that had Ubuntu 12.04 on it. Little did I realize at the time that it would destroy all the resources of Grub on it, and subsequently prevent me booting into my hibernated windows. So I made a 12.10 Ubuntu live USB and reinstalled windows bootloader. When I rebooted it gave me a bootloader error saying I that it could not find the resources to boot from. So I went back to my live USB and installed boot-repair and tried to repair the mbr. It didn't work though. Here is the URL the boot-repair gave me if I was in trouble: paste.ubuntu.com/1328309 Thanks in advance :)

    Read the article

  • Firefox messages in /var/log/messages

    - by Roy
    I happened to be browsing through /var/log/messages for another reason, and I stumbled across some messages apparently related to Firefox like this: Apr 5 15:36:59 myserver kernel: [18091.188462] type=1503 audit(1333658219.144:19): operation="open" pid=6396 parent=1 profile="/usr/lib/firefox-11.0/firefox{,*[^s][^h]}" requested_mask="::r" denied_mask="::r" fsuid=1000 ouid=0 name="/shr/RiverTrip.gpx" which are really puzzling me because I really don't see why Firefox would know about these files let alone output messages about them. The /shr directory is an NTFS partition I set up on my laptop so I can access it with either Ubuntu or Windows XP. The messages are consistently showing up for a few of the files in that directory, but not all. I haven't even looked at those files or done anything else with them in a long time! I have no idea what's special with those files; they appear to be picked at random as far as I can tell. I am using Ubuntu Release 10.04 (lucid), Kernel Linux 2.6.32-38, GNOME 2.30.2, Firefox 11.0 . I hope someone can explain these spooky messages!

    Read the article

  • Sony Vaio PCG-71315L "Wireless is disabled by hardware switch" Help!

    - by Luke Rossi
    I'm a new user to Ubuntu and Linux as a whole, I've had it for a few months and just as I'm starting to get a feel for things my wireless decided to quit on me. This puzzled me so i checked all the switches on the Vaio; my wireless switch was on (my bluetooth was also working), and in my windows partition the problem is non-existent. Help please? Anyways after executing the "rfkill list" command this was the outcome: 1: sony-wifi: Wireless LAN Soft blocked: yes Hard blocked: no 2: sony-bluetooth: Bluetooth Soft blocked: no Hard blocked: no 3: phy0: Wireless LAN Soft blocked: yes Hard blocked: yes 4: hci0: Bluetooth Soft blocked: no Hard blocked: no As stated in the title my laptop is a Sony Vaio PCG-71315L

    Read the article

  • How to make a disk image and restore from it later?

    - by Torben Gundtofte-Bruun
    I'm a new Linux user. I've reinstalled my Wubi from scratch at least ten times the last few weeks because while getting the system up and running (drivers, resolution, etc.) I've broken something (X, grub, unknowns) and I can't get it back to work. Especially for a newbie like me, it's easier (and much faster) to just reinstall the whole shebang than try to troubleshoot several layers of failed "fixing" attempts. Coming from Windows, I expect that there is some "disk image" utility that I can run to make a snapshot of my Linux install (and of the boot partition!!) before I meddle with stuff. Then, after I've foobar'ed my machine, I would somehow restore my machine back to that working snapshot. What's the Linux equivalent of Windows disk imagers like Acronis True Image or Norton Ghost? Note: I found a similar question here.

    Read the article

  • HP ENVY TouchSmart 15t-j000 Quad Edition + custom mSata Plextor M5M 64GB SSD

    - by Akash Ramani
    The ssd did not come along with the laptop, so i bought one myself and physically installed it. I've booted into Ubuntu from a USB drive and my goal is to install / and /home in the SSD. (because most of the actual media exists on the HDD) The only problem is i'm unable to detect the SSD while configuring the partitions. I know the SSD is not the problem because it recognizes in a different laptop. I've followed the instructions shown in https://help.ubuntu.com/community/UEFI but that still doesn't help in identifying the SSD partition. Any help would be appreciated. (p.s: I'm wondering if i have to prepare the SSD through windows or something like that)

    Read the article

  • Cloud Computing = Elasticity * Availability

    - by Herve Roggero
    What is cloud computing? Is hosting the same thing as cloud computing? Are you running a cloud if you already use virtual machines? What is the difference between Infrastructure as a Service (IaaS) and a cloud provider? And the list goes on… these questions keep coming up and all try to fundamentally explain what “cloud” means relative to other concepts. At the risk of over simplification, answering these questions becomes simpler once you understand the primary foundations of cloud computing: Elasticity and Availability.   Elasticity The basic value proposition of cloud computing is to pay as you go, and to pay for what you use. This implies that an application can expand and contract on demand, across all its tiers (presentation layer, services, database, security…).  This also implies that application components can grow independently from each other. So if you need more storage for your database, you should be able to grow that tier without affecting, reconfiguring or changing the other tiers. Basically, cloud applications behave like a sponge; when you add water to a sponge, it grows in size; in the application world, the more customers you add, the more it grows. Pure IaaS providers will provide certain benefits, specifically in terms of operating costs, but an IaaS provider will not help you in making your applications elastic; neither will Virtual Machines. The smallest elasticity unit of an IaaS provider and a Virtual Machine environment is a server (physical or virtual). While adding servers in a datacenter helps in achieving scale, it is hardly enough. The application has yet to use this hardware.  If the process of adding computing resources is not transparent to the application, the application is not elastic.   As you can see from the above description, designing for the cloud is not about more servers; it is about designing an application for elasticity regardless of the underlying server farm.   Availability The fact of the matter is that making applications highly available is hard. It requires highly specialized tools and trained staff. On top of it, it's expensive. Many companies are required to run multiple data centers due to high availability requirements. In some organizations, some data centers are simply on standby, waiting to be used in a case of a failover. Other organizations are able to achieve a certain level of success with active/active data centers, in which all available data centers serve incoming user requests. While achieving high availability for services is relatively simple, establishing a highly available database farm is far more complex. In fact it is so complex that many companies establish yearly tests to validate failover procedures.   To a certain degree certain IaaS provides can assist with complex disaster recovery planning and setting up data centers that can achieve successful failover. However the burden is still on the corporation to manage and maintain such an environment, including regular hardware and software upgrades. Cloud computing on the other hand removes most of the disaster recovery requirements by hiding many of the underlying complexities.   Cloud Providers A cloud provider is an infrastructure provider offering additional tools to achieve application elasticity and availability that are not usually available on-premise. For example Microsoft Azure provides a simple configuration screen that makes it possible to run 1 or 100 web sites by clicking a button or two on a screen (simplifying provisioning), and soon SQL Azure will offer Data Federation to allow database sharding (which allows you to scale the database tier seamlessly and automatically). Other cloud providers offer certain features that are not available on-premise as well, such as the Amazon SC3 (Simple Storage Service) which gives you virtually unlimited storage capabilities for simple data stores, which is somewhat equivalent to the Microsoft Azure Table offering (offering a server-independent data storage model). Unlike IaaS providers, cloud providers give you the necessary tools to adopt elasticity as part of your application architecture.    Some cloud providers offer built-in high availability that get you out of the business of configuring clustered solutions, or running multiple data centers. Some cloud providers will give you more control (which puts some of that burden back on the customers' shoulder) and others will tend to make high availability totally transparent. For example, SQL Azure provides high availability automatically which would be very difficult to achieve (and very costly) on premise.   Keep in mind that each cloud provider has its strengths and weaknesses; some are better at achieving transparent scalability and server independence than others.    Not for Everyone Note however that it is up to you to leverage the elasticity capabilities of a cloud provider, as discussed previously; if you build a website that does not need to scale, for which elasticity is not important, then you can use a traditional host provider unless you also need high availability. Leveraging the technologies of cloud providers can be difficult and can become a journey for companies that build their solutions in a scale up fashion. Cloud computing promises to address cost containment and scalability of applications with built-in high availability. If your application does not need to scale or you do not need high availability, then cloud computing may not be for you. In fact, you may pay a premium to run your applications with cloud providers due to the underlying technologies built specifically for scalability and availability requirements. And as such, the cloud is not for everyone.   Consistent Customer Experience, Predictable Cost With all its complexities, buzz and foggy definition, cloud computing boils down to a simple objective: consistent customer experience at a predictable cost.  The objective of a cloud solution is to provide the same user experience to your last customer than the first, while keeping your operating costs directly proportional to the number of customers you have. Making your applications elastic and highly available across all its tiers, with as much automation as possible, achieves the first objective of a consistent customer experience. And the ability to expand and contract the infrastructure footprint of your application dynamically achieves the cost containment objectives.     Herve Roggero is a SQL Azure MVP and co-author of Pro SQL Azure (APress).  He is the co-founder of Blue Syntax Consulting (www.bluesyntax.net), a company focusing on cloud computing technologies helping customers understand and adopt cloud computing technologies. For more information contact herve at hroggero @ bluesyntax.net .

    Read the article

  • How do I list installed software with the installed size?

    - by Lewis Goddard
    I would like to have a list the installed software on my machine, with the disk space consumed by them alongside. I would prefer to be able to order by largest/smallest, but that is not a necessity. I am the sort of person who will install software to try it, and never clean up after myself. As a result, my 7GB (Windows and my Data are on separate partitions, as well as a swap area) Ubuntu 11.04 partition is suffering, and has started regularly showing warning messages. I have cleaned my browser cache, as well as everything under Package Cleaner in Ubuntu Tweak, and am left with 149.81 MB off free space.

    Read the article

  • Terminal error messages: bash: /dev/cgroup/cpu/user/2823/tasks: No such file or directory

    - by sasaenator
    This is what I get when I start up the terminal: bash: /dev/cgroup/cpu/user/2823/tasks: No such file or directory bash: /dev/cgroup/cpu/user/2823/notify_on_release: No such file or directory bash: /dev/cgroup/cpu/user/2823/tasks: No such file or directory bash: /dev/cgroup/cpu/user/2823/notify_on_release: No such file or directory sasa@sasa:~$*** I reinstalled 10.10 yesterday because of other problems, I didn't have this error message before. I have a separate /home partition, and new installation picked up almost all of the old settings, also those which I don't like, but it looks like that is not a problem or maybe I am wrong? Wouldn't ask if I knew! :) I'll be glad to post more info if someone needs it!

    Read the article

  • Xen 4.0.1 on Ubuntu 10.10 not booting

    - by Disco
    I'm trying to get Xen 4.0.1 run as dom0 on a fresh/clean install of 10.10 desktop (x64). Followed the step by step tutorial at http://wiki.xensource.com/xenwiki/Xen4.0 I have the pvops kernel in /boot, also included the ext4 fs support by recompiling the kernel by : make -j6 linux-2.6-pvops-config CONFIGMODE=menuconfig make -j6 linux-2.6-pvops-build make -j6 linux-2.6-pvops-install Here's my grub entry : menuentry 'Xen4' --class ubuntu --class gnu-linux --class gnu --class os { recordfail insmod part_msdos insmod ext2 insmod ext3 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set 2bf3177a-92fd-4196-901a-da8d810b04b4 multiboot /xen-4.0.gz dom0_mem=1024M loglvl=all guest_loglvl=all module /vmlinuz-2.6.32.27 root=UUID=2bf3177a-92fd-4196-901a-da8d810b04b4 ro module /initrd.img-2.6.32.27 } blkid /dev/sda1 gives the : /dev/sda1: UUID="2bf3177a-92fd-4196-901a-da8d810b04b4" TYPE="ext3" My partition shemes is : /boot (ext3) / (ext4) Whatever option i've tried i end up with : mounting none on /dev failed: no such file or directory And message complaining that it cannot find the device with uuid ... It's taking my hairs out, if somone has a clue ...

    Read the article

  • Ubuntu 13.10 software raid

    - by Piotr Belniak
    I had already Ubuntu OS installed on my desktop PC, where the software RAID 5 is configured ( 3 partitions /, swap and home ). This system was upgraded from the 11.04 till 13.04, it was quite messy, so I decided to install fresh system on existing partitions. 1st of all i found that there is no alternate version of the installer ( which i used to create previous installation ), so i stared with the regular image. I installed mdadm tools, assemble the partitions - fdisk are showing them properly - so i'm starting the installation - and everything i going fine until the GRUB instalation - this part fails - regardless of which partition i use as a target. From the other hand, neither OpenSUse and Ubuntu 12.04 alternate does not have any problems with installing the GRUB - on this configuration, unfortunatelly Ubuntu 12.04 - 12.10 upgrade is failing bacause of some Xorg issues ;(. Maybe someone has an experience with installation of ubuntu 13.10 GRUB on the RAID 5 partitions - and could give me a hint, how to solve my problem. Thanks in advance, Piotr

    Read the article

  • Purple Screen then Black Screen while Booting from CD or Windows Install

    - by Tyler
    Whenever I try to run Ubuntu from my internal CD drive, I see this screen minus the Ubuntu Text: Then the screen goes black, not even the internal light stays on. Sometimes it restarts itself, other times the black screen is indefinite until I restart the laptop myself. I'm on an HP Quad-Core AMD A8-3500M APU with 8 GB RAM and a Radeon AMD 6620g Discrete-Graphics Card. (HP dv6-6145dx) This is my first time using Linux, I am not too technically-inclined so any simplification would be welcomed. I am good at following technical instructions though which is how I was able to partition my hard drive and change the boot order to allow the internal CD drive first. Thanks in advance!

    Read the article

  • Just updated, after reboot my computer won't start up again

    - by Alex
    I have a macbook that I use on occasion which dual boots Ubuntu and OSX (It has rEFIt installed). I turned it on for the first time in a while and it needed a bunch of updates. So I let it run, and restarted it when it asked. When it was booting up, it got stuck at a light blue screen. There was nothing on the screen to indicate that it was doing anything - I figured it just got stuck or something, so I turned it off and back on. (I suspect now it was actually working, but I had no indication that it hadn't just frozen) Now I can't access either OSX or my Ubuntu partition. When I choose ubuntu on the rEFIt menu, it shows "No bootable device -- insert book disk and press key". If I try to start up OSX is looks like it starts loading, but instead of an apple logo there's a crossed out circle icon.

    Read the article

  • how to resize an encrypted logical volume?

    - by Nirmik
    I installed Ubuntu with encryption and LVM on my entire haddisk... Now I want to resize it. How do I do This... Following this link gave me errors on step 2 - How to resize a LVM partition? error ubuntu@ubuntu:~$ sudo e2fsck -f /dev/sda5 e2fsck 1.42.5 (29-Jul-2012) ext2fs_open2: Bad magic number in super-block e2fsck: Superblock invalid, trying backup blocks... e2fsck: Bad magic number in super-block while trying to open /dev/sda5 The superblock could not be read or does not describe a correct ext2 filesystem. If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 what do I do?

    Read the article

  • Grub Boot Error After Ubuntu Update

    - by Anna
    I've installed Ubuntu 10.04 with dual boot to Windows XP. I put it on auto-update. It was updating grub et al and after a restart all it says is; error:no such device: <hex number> With a grub rescue prompt. I'm in panic mode right now as it's my mother's office computer and it might have some serious repercussions for her tomorrow. What should I do? Update: It appears that the partition structure has been corrupted since it only displays (hd0) on ls

    Read the article

  • Sharing my home folders with other users on the same PC

    - by Stephen Myall
    After reviewing similar questions on the same subject Im still none the wiser. I want to share my music, pictures and video folders with other users on my pc. I am using 11.10 and will be upgrading to 12.04. The method I have tried is to right click on the folder (as Administrator), select "Sharing Options" check all the necessary fields and give the share a name like "music-shared". Another dialog pops up then and I select "Set nautilus Permissions". When the other user logs on they go to their Home folder click on the network and can see the "music-shared" folder, but they get a message that the do not have the necessary permissions to view the content. Im sure I'm missing something simple. My Home folder is encrypted and i am willing to unencrypt to make this work Unlike other questions on this site, I dont have a partition etc. i would be grateful for any help.

    Read the article

  • How to remove mount point not selected error?

    - by Karan H. Joshi
    I've free dos laptop with i3 processor 4gb ram nd 500gb hdd. I've installed windows 8 manually and created all partitions. My partitions are: C: Windows8 90GB NTFS D: Blank 25GB FAT32 E: Entertainment 117GB NTFS F: Other 117GB NTFS G: Software 117GB NTFS Now, I've made flash drive for Ubuntu 13.04 and want to install on D: I've tried a lot to install on that partition but every time I got error of No mount point selected. But actually I've selected / as mount point. So please help me to solve this problem. and also suggest me what to do for /home. Note: I want to access windows 8 as my main operating system.

    Read the article

  • Triple boot Windows XP, Ubuntu, & Mac on Acer z5g notebook

    - by Yadnesh
    I'm planning to install Mac OS X using these instructions http://basshead.wordpress.com/2010/04/04/snow-leopard-on-acer-aspire-one-aoa150zg5/ on my Acer z5g notebook I have Windows XP & Ubuntu 11.04 dual booting on it perfectly fine. My question is how do I make triple boot system? What exactly do I need to do for this? Do I need to tweak grub for that? I'm going to create 30GB partition for MAC OS X. Is it correct thing to do?

    Read the article

  • Cannot install ubuntu on Asus UX51VZ

    - by Andrey Frunt
    I removed Win8, changed partition table from GPT to MBR and installed Win7. The problem is that I don't see the grub after I installed ubuntu and only win7 boots. Any ideas? I tried to reinstall all of listed above about 5 times but with no success :( I tried both 13.04 and 13.10 UPD: I also tried Boot-Repair and it installed the grub2 for me but unfortunately only with options to run ubuntu, so I repaired bootrecord using windows tools to have an ability to run to windows. Anyway I still cannot configure the dual boot. Please help :)

    Read the article

  • How and why are operating systems bootable from a USB?

    - by user114638
    I'm told to install ubuntu on my laptop for work in order to learn shell scripting. I've read the best way is to install ubuntu on a USB stick and partition my HDD. I'm curious how an OS is bootable from a USB stick? Is it literally just a small interface that can be put anywhere? This reminds me of a time I downloaded a game onto my USB stick, when I brought it to my friends house he told me it will run slow if I don't install it and only run it from the usb, is this different from running ubuntu from a usb? Will ubuntu be slow?

    Read the article

  • Convert from EFI to BIOS boot

    - by Lukas F.
    I have a Samsung Notebook NP900X4C with an LUKS encrypted installation of Linux Mint 15 on it. The system is booting in UEFI mode. The problem is that the samsung-notebook kernel module is disabled in UEFI mode and due to that I am missing features like the keyboard backlight. Is it possible to modify the current installtion so it can boot in BIOS mode? Is this correct that the basic steps would be converting the disk from GPT to MBR and installing grub from a live CD? Would this be possible with a LUKS partition?

    Read the article

  • Thunderbird/Firefox with shared profiles (Lubuntu+WinXP)

    - by Ray
    I use Thunderbird and Firefox both on WinXP and Lubuntu 11.10. The profile folders are on the NTFS-partition of Windows and I'm sure that I've edited the profile paths correctly. Windows doesn't show any problems but Lubuntu shows the error dialog saying that another instance of Thunderbird/Firefox is already running..." The funny thing is, that as soon as I've opened the profile folders in my explorer, firefox and thunderbird can be started. I don't have to change any files or something (Have made some experiments with .parentlock) Do you have an idea how I could solve this problem, as I don't want to open the profile folders after every reboot. Thanks in advance!

    Read the article

  • Informed TDD &ndash; Kata &ldquo;To Roman Numerals&rdquo;

    - by Ralf Westphal
    Originally posted on: http://geekswithblogs.net/theArchitectsNapkin/archive/2014/05/28/informed-tdd-ndash-kata-ldquoto-roman-numeralsrdquo.aspxIn a comment on my article on what I call Informed TDD (ITDD) reader gustav asked how this approach would apply to the kata “To Roman Numerals”. And whether ITDD wasn´t a violation of TDD´s principle of leaving out “advanced topics like mocks”. I like to respond with this article to his questions. There´s more to say than fits into a commentary. Mocks and TDD I don´t see in how far TDD is avoiding or opposed to mocks. TDD and mocks are orthogonal. TDD is about pocess, mocks are about structure and costs. Maybe by moving forward in tiny red+green+refactor steps less need arises for mocks. But then… if the functionality you need to implement requires “expensive” resource access you can´t avoid using mocks. Because you don´t want to constantly run all your tests against the real resource. True, in ITDD mocks seem to be in almost inflationary use. That´s not what you usually see in TDD demonstrations. However, there´s a reason for that as I tried to explain. I don´t use mocks as proxies for “expensive” resource. Rather they are stand-ins for functionality not yet implemented. They allow me to get a test green on a high level of abstraction. That way I can move forward in a top-down fashion. But if you think of mocks as “advanced” or if you don´t want to use a tool like JustMock, then you don´t need to use mocks. You just need to stand the sight of red tests for a little longer ;-) Let me show you what I mean by that by doing a kata. ITDD for “To Roman Numerals” gustav asked for the kata “To Roman Numerals”. I won´t explain the requirements again. You can find descriptions and TDD demonstrations all over the internet, like this one from Corey Haines. Now here is, how I would do this kata differently. 1. Analyse A demonstration of TDD should never skip the analysis phase. It should be made explicit. The requirements should be formalized and acceptance test cases should be compiled. “Formalization” in this case to me means describing the API of the required functionality. “[D]esign a program to work with Roman numerals” like written in this “requirement document” is not enough to start software development. Coding should only begin, if the interface between the “system under development” and its context is clear. If this interface is not readily recognizable from the requirements, it has to be developed first. Exploration of interface alternatives might be in order. It might be necessary to show several interface mock-ups to the customer – even if that´s you fellow developer. Designing the interface is a task of it´s own. It should not be mixed with implementing the required functionality behind the interface. Unfortunately, though, this happens quite often in TDD demonstrations. TDD is used to explore the API and implement it at the same time. To me that´s a violation of the Single Responsibility Principle (SRP) which not only should hold for software functional units but also for tasks or activities. In the case of this kata the API fortunately is obvious. Just one function is needed: string ToRoman(int arabic). And it lives in a class ArabicRomanConversions. Now what about acceptance test cases? There are hardly any stated in the kata descriptions. Roman numerals are explained, but no specific test cases from the point of view of a customer. So I just “invent” some acceptance test cases by picking roman numerals from a wikipedia article. They are supposed to be just “typical examples” without special meaning. Given the acceptance test cases I then try to develop an understanding of the problem domain. I´ll spare you that. The domain is trivial and is explain in almost all kata descriptions. How roman numerals are built is not difficult to understand. What´s more difficult, though, might be to find an efficient solution to convert into them automatically. 2. Solve The usual TDD demonstration skips a solution finding phase. Like the interface exploration it´s mixed in with the implementation. But I don´t think this is how it should be done. I even think this is not how it really works for the people demonstrating TDD. They´re simplifying their true software development process because they want to show a streamlined TDD process. I doubt this is helping anybody. Before you code you better have a plan what to code. This does not mean you have to do “Big Design Up-Front”. It just means: Have a clear picture of the logical solution in your head before you start to build a physical solution (code). Evidently such a solution can only be as good as your understanding of the problem. If that´s limited your solution will be limited, too. Fortunately, in the case of this kata your understanding does not need to be limited. Thus the logical solution does not need to be limited or preliminary or tentative. That does not mean you need to know every line of code in advance. It just means you know the rough structure of your implementation beforehand. Because it should mirror the process described by the logical or conceptual solution. Here´s my solution approach: The arabic “encoding” of numbers represents them as an ordered set of powers of 10. Each digit is a factor to multiply a power of ten with. The “encoding” 123 is the short form for a set like this: {1*10^2, 2*10^1, 3*10^0}. And the number is the sum of the set members. The roman “encoding” is different. There is no base (like 10 for arabic numbers), there are just digits of different value, and they have to be written in descending order. The “encoding” XVI is short for [10, 5, 1]. And the number is still the sum of the members of this list. The roman “encoding” thus is simpler than the arabic. Each “digit” can be taken at face value. No multiplication with a base required. But what about IV which looks like a contradiction to the above rule? It is not – if you accept roman “digits” not to be limited to be single characters only. Usually I, V, X, L, C, D, M are viewed as “digits”, and IV, IX etc. are viewed as nuisances preventing a simple solution. All looks different, though, once IV, IX etc. are taken as “digits”. Then MCMLIV is just a sum: M+CM+L+IV which is 1000+900+50+4. Whereas before it would have been understood as M-C+M+L-I+V – which is more difficult because here some “digits” get subtracted. Here´s the list of roman “digits” with their values: {1, I}, {4, IV}, {5, V}, {9, IX}, {10, X}, {40, XL}, {50, L}, {90, XC}, {100, C}, {400, CD}, {500, D}, {900, CM}, {1000, M} Since I take IV, IX etc. as “digits” translating an arabic number becomes trivial. I just need to find the values of the roman “digits” making up the number, e.g. 1954 is made up of 1000, 900, 50, and 4. I call those “digits” factors. If I move from the highest factor (M=1000) to the lowest (I=1) then translation is a two phase process: Find all the factors Translate the factors found Compile the roman representation Translation is just a look-up. Finding, though, needs some calculation: Find the highest remaining factor fitting in the value Remember and subtract it from the value Repeat with remaining value and remaining factors Please note: This is just an algorithm. It´s not code, even though it might be close. Being so close to code in my solution approach is due to the triviality of the problem. In more realistic examples the conceptual solution would be on a higher level of abstraction. With this solution in hand I finally can do what TDD advocates: find and prioritize test cases. As I can see from the small process description above, there are two aspects to test: Test the translation Test the compilation Test finding the factors Testing the translation primarily means to check if the map of factors and digits is comprehensive. That´s simple, even though it might be tedious. Testing the compilation is trivial. Testing factor finding, though, is a tad more complicated. I can think of several steps: First check, if an arabic number equal to a factor is processed correctly (e.g. 1000=M). Then check if an arabic number consisting of two consecutive factors (e.g. 1900=[M,CM]) is processed correctly. Then check, if a number consisting of the same factor twice is processed correctly (e.g. 2000=[M,M]). Finally check, if an arabic number consisting of non-consecutive factors (e.g. 1400=[M,CD]) is processed correctly. I feel I can start an implementation now. If something becomes more complicated than expected I can slow down and repeat this process. 3. Implement First I write a test for the acceptance test cases. It´s red because there´s no implementation even of the API. That´s in conformance with “TDD lore”, I´d say: Next I implement the API: The acceptance test now is formally correct, but still red of course. This will not change even now that I zoom in. Because my goal is not to most quickly satisfy these tests, but to implement my solution in a stepwise manner. That I do by “faking” it: I just “assume” three functions to represent the transformation process of my solution: My hypothesis is that those three functions in conjunction produce correct results on the API-level. I just have to implement them correctly. That´s what I´m trying now – one by one. I start with a simple “detail function”: Translate(). And I start with all the test cases in the obvious equivalence partition: As you can see I dare to test a private method. Yes. That´s a white box test. But as you´ll see it won´t make my tests brittle. It serves a purpose right here and now: it lets me focus on getting one aspect of my solution right. Here´s the implementation to satisfy the test: It´s as simple as possible. Right how TDD wants me to do it: KISS. Now for the second equivalence partition: translating multiple factors. (It´a pattern: if you need to do something repeatedly separate the tests for doing it once and doing it multiple times.) In this partition I just need a single test case, I guess. Stepping up from a single translation to multiple translations is no rocket science: Usually I would have implemented the final code right away. Splitting it in two steps is just for “educational purposes” here. How small your implementation steps are is a matter of your programming competency. Some “see” the final code right away before their mental eye – others need to work their way towards it. Having two tests I find more important. Now for the next low hanging fruit: compilation. It´s even simpler than translation. A single test is enough, I guess. And normally I would not even have bothered to write that one, because the implementation is so simple. I don´t need to test .NET framework functionality. But again: if it serves the educational purpose… Finally the most complicated part of the solution: finding the factors. There are several equivalence partitions. But still I decide to write just a single test, since the structure of the test data is the same for all partitions: Again, I´m faking the implementation first: I focus on just the first test case. No looping yet. Faking lets me stay on a high level of abstraction. I can write down the implementation of the solution without bothering myself with details of how to actually accomplish the feat. That´s left for a drill down with a test of the fake function: There are two main equivalence partitions, I guess: either the first factor is appropriate or some next. The implementation seems easy. Both test cases are green. (Of course this only works on the premise that there´s always a matching factor. Which is the case since the smallest factor is 1.) And the first of the equivalence partitions on the higher level also is satisfied: Great, I can move on. Now for more than a single factor: Interestingly not just one test becomes green now, but all of them. Great! You might say, then I must have done not the simplest thing possible. And I would reply: I don´t care. I did the most obvious thing. But I also find this loop very simple. Even simpler than a recursion of which I had thought briefly during the problem solving phase. And by the way: Also the acceptance tests went green: Mission accomplished. At least functionality wise. Now I´ve to tidy up things a bit. TDD calls for refactoring. Not uch refactoring is needed, because I wrote the code in top-down fashion. I faked it until I made it. I endured red tests on higher levels while lower levels weren´t perfected yet. But this way I saved myself from refactoring tediousness. At the end, though, some refactoring is required. But maybe in a different way than you would expect. That´s why I rather call it “cleanup”. First I remove duplication. There are two places where factors are defined: in Translate() and in Find_factors(). So I factor the map out into a class constant. Which leads to a small conversion in Find_factors(): And now for the big cleanup: I remove all tests of private methods. They are scaffolding tests to me. They only have temporary value. They are brittle. Only acceptance tests need to remain. However, I carry over the single “digit” tests from Translate() to the acceptance test. I find them valuable to keep, since the other acceptance tests only exercise a subset of all roman “digits”. This then is my final test class: And this is the final production code: Test coverage as reported by NCrunch is 100%: Reflexion Is this the smallest possible code base for this kata? Sure not. You´ll find more concise solutions on the internet. But LOC are of relatively little concern – as long as I can understand the code quickly. So called “elegant” code, however, often is not easy to understand. The same goes for KISS code – especially if left unrefactored, as it is often the case. That´s why I progressed from requirements to final code the way I did. I first understood and solved the problem on a conceptual level. Then I implemented it top down according to my design. I also could have implemented it bottom-up, since I knew some bottom of the solution. That´s the leaves of the functional decomposition tree. Where things became fuzzy, since the design did not cover any more details as with Find_factors(), I repeated the process in the small, so to speak: fake some top level, endure red high level tests, while first solving a simpler problem. Using scaffolding tests (to be thrown away at the end) brought two advantages: Encapsulation of the implementation details was not compromised. Naturally private methods could stay private. I did not need to make them internal or public just to be able to test them. I was able to write focused tests for small aspects of the solution. No need to test everything through the solution root, the API. The bottom line thus for me is: Informed TDD produces cleaner code in a systematic way. It conforms to core principles of programming: Single Responsibility Principle and/or Separation of Concerns. Distinct roles in development – being a researcher, being an engineer, being a craftsman – are represented as different phases. First find what, what there is. Then devise a solution. Then code the solution, manifest the solution in code. Writing tests first is a good practice. But it should not be taken dogmatic. And above all it should not be overloaded with purposes. And finally: moving from top to bottom through a design produces refactored code right away. Clean code thus almost is inevitable – and not left to a refactoring step at the end which is skipped often for different reasons.   PS: Yes, I have done this kata several times. But that has only an impact on the time needed for phases 1 and 2. I won´t skip them because of that. And there are no shortcuts during implementation because of that.

    Read the article

  • How do I mount this HDD?

    - by Casval Deikun
    I have a Windows HDD attached to an external docking bay on my Ubuntu System, but the HDD brings up an error message: Mounting exited with exit code 14:windows is hibernated, refused to mount. Failed to mount '/dev/sde2':Operation not permitted. The NTFS partition is hibernated. Please resume and shutdown windows properly or mount the volume read-only with the 'ro' mount option, or mount the volume read-write with the 'remove_hiberfile' mount option. For example type in command line: mount -t ntfs-3g-o remove_hiberfile/dev/sde2/media/FE46D60C46D5C615 I am at a loss for exactly how to remove the hiberfile, or even mount it as read-only or read-write. I tried directly copy and pasting that exact command into my terminal, but it said: mount:only root can do that I do not know what to do at this point. I do need to get the information off of this drive, but I do not have a computer to put it in. Does anyone know what I should do from here?

    Read the article

  • How to make a disk image and restore from it later?

    - by torbengb
    I'm a new Linux user. I've reinstalled my Wubi from scratch at least ten times the last few weeks because while getting the system up and running (drivers, resolution, etc.) I've broken something (X, grub, unknowns) and I can't get it back to work. Especially for a newbie like me, it's easier (and much faster) to just reinstall the whole shebang than try to troubleshoot several layers of failed "fixing" attempts. Coming from Windows, I expect that there is some "disk image" utility that I can run to make a snapshot of my Linux install (and of the boot partition!!) before I meddle with stuff. Then, after I've foobar'ed my machine, I would somehow restore my machine back to that working snapshot. What's the Linux equivalent of Windows disk imagers like Acronis True Image or Norton Ghost?

    Read the article

  • initramfs - Unable to find a medium containing a live file system

    - by LittleBobbyTables
    I'm desperately trying to install ubuntu 12.10 64bit on my new Ultrabook. Its a Sony T13 with 8gb ram, 256gb ssd, i7, windows 8. I have an extra partition, D: "UBUNTU" already created with about 30gb space using FAT32. Ubuntu is MD5 checked, on a previously working USB stick using UNetBootin. Grub loads fine When I ask to test out Ubuntu ("Try ubuntu without installing") it shows the purple loading screen for a bit then brings up this error in a busybox terminal: initramfs - Unable to find a medium containing a live file system Things I've tried that don't work: Different versions of Linux (Fedora, Arch, SL, even gParted) Using USB2/3 - No difference Legacy or UEFI - different interface, but same error BIOS has no option for anything "ACHI" related I have read through tons of other people having this problem and diligently tried all the above solutions, with no luck.

    Read the article

< Previous Page | 162 163 164 165 166 167 168 169 170 171 172 173  | Next Page >