Slashdot Mirror


Code Cleanup Culls LibreOffice Cruft

mikejuk writes with an interesting look at what coders can get around to after a few years of creating a free office suite: dealing with many thousands of lines of deprecated code: "Thanks to the efforts of its volunteer taskforce, over half the unused code in LibreOffice has been removed over the past six months. It's good to see this clean-up operation but it does raise questions about the amount of dead code lurking out there in the wild. The scale of the dead code in LibreOffice is shocking, and it probably isn't because the code base is especially bad. Can you imagine this in any other engineering discipline? Oh yes, we built the bridge but there are a few hundred unnecessary iron girders that we forgot to remove... Oh yes, we implemented the new chip but that area over there is just a few thousand transistors we no longer use... and so on." Well, that last one doesn't sound too surprising at all. Exciting to think that LibreOffice (which has worked well for me over the past several years, including under the OpenOffice.org name) has quite so much room for improvement.

317 comments

  1. Not at all. I've had a house built. by Anonymous Coward · · Score: 5, Interesting

    There are probably dozens of extra nails that were just hammered in rather than be removed. There are extraneous pieces of lumber.

    And a house that was remodeled? I've seen newspaper used as filler. I've seen layers of roofing, with things buried in between layers.

    Frankly I don't know what's inside my walls, and I'm not sure I want to know.

  2. Code Cleanup Culls LibreOffice Cruft by kvvbassboy · · Score: 2

    Nice alliteration.

    1. Re:Code Cleanup Culls LibreOffice Cruft by Anonymous Coward · · Score: 0

      Ugh no. It was cringe-inducing.

    2. Re:Code Cleanup Culls LibreOffice Cruft by mehemiah · · Score: 2

      one man's trash ...

    3. Re:Code Cleanup Culls LibreOffice Cruft by Farmer+Tim · · Score: 2

      Consecutive carbon copy commencing consonants create cringing cowards? Cool!

      --
      Blank until /. makes another boneheaded UI decision.
  3. I'd bet there is. by JGuru42 · · Score: 5, Informative

    It would not be very surprising to see a lot of dead code.

    I maintain the code for MoreTerra, a Terraria map editor program and I'm pretty sure I've got dead code in there and that's a pretty small project.

    With a large number of people working on the code it likely ends up slowly clogging up as no one quite knows what the others are doing.

    Dare I ask what type of dead code exists in something extra huge, but closed source, like the Windows code base or for MS Office? But I'd
    bet for all MS's faults that the code for Norton Antivirus is 10x worse.

    1. Re:I'd bet there is. by hedwards · · Score: 4, Interesting

      I'm mostly surprised that they're still getting performance improvements. It seems like they've done more over the last year than Sun did during the entire time it owned the project to unbloat it.

    2. Re:I'd bet there is. by machine321 · · Score: 5, Funny

      Now if only they'd take over the Java project.

    3. Re:I'd bet there is. by CapOblivious2010 · · Score: 0

      But I'd bet for all MS's faults that the code for Norton Antivirus is 10x worse.

      <cheap-shot>
      NAV could only have that much dead code if MS actually fixed some of the security holes in Windows
      </cheap-shot>

    4. Re:I'd bet there is. by Anonymous Coward · · Score: 4, Informative

      Dead code is a result of OOP development (C++/Java)

      Because a lot of OOP code has extra methods used to circumvent or enforce memory protection (private/public) with variables inside classes. Sometimes the methods are created with anticipation that they will be used, but all the code is is a getVARname or setVARname dozens or hundreds of times when something like get(varname) set(varname) would be more efficient. in C you don't have this problem because memory protection basically doesn't exist unless you roll your own.

    5. Re:I'd bet there is. by Anonymous Coward · · Score: 3, Interesting

      I don't think they are talking about unused mutators. If anything Object Oriented programming makes it much easier to find and get rid of unused code BECAUSE of the data protection it implies. Having the code segmented and modular in different classes would make it worlds easier to find and remove dead code at all stages of development.

      But really, C, with their fancy "structs" and "flow control" just leads to unnecessary cruft, we should just stick with ASM and Goto, b/c that's way more maintainable ;)

    6. Re:I'd bet there is. by MichaelSmith · · Score: 1, Flamebait

      Bloat keeps java afloat.

    7. Re:I'd bet there is. by Anonymous Coward · · Score: 4, Interesting

      Just to be Snarky, I'll point out that the Glasgow Haskell Compiler politely informs me whenever it finds a dead function. Functional languages are light years ahead of anything else when it comes to the Compiler actually being able to reason about the code it's compiling.

    8. Re:I'd bet there is. by Anonymous Coward · · Score: 2, Insightful

      I always wonder why OOP advocates think that making structured and modular code is not possible in anything else than OOP languages. Truth is, those concepts appeared long before them, and, in fact, were some of the ideas that drove the birth of languages like C

      If your C programs are not modular and structured you can bet I'm not going to hire you.

    9. Re:I'd bet there is. by Caesar+Tjalbo · · Score: 2

      Dare I ask what type of dead code exists in something extra huge, but closed source, like the Windows code base or for MS Office?

      I've no idea what the code is they found in LO but I wouldn't be surprised there was a lot of stuff that looked like a good initiative once but the original coder left and nobody had an itch itching hard enough to continue to scratch. Think Google's Summer of Code code which nobody bothered to hook up to the next iteration of the API or so.

      Indeed, we don't know what dragons are lurking in closed sources but I think that there's lots of cruft in an open source project which you won't find in proprietary code.

      --
      "I'm not much interested in interoperability. I want substitutability. I want to be able to throw your software out."
    10. Re:I'd bet there is. by Stevecrox · · Score: 4, Informative

      The Eclipse Java Compiler can indicate a warning if a private function is never called, the Eclipse Code Compiler and Findbugs will both throw warnings if an area of code is unreachable. Findbugs is able to detect if a variable is declared but never used (dead store) and will throw a warning. Lastly CPD (a part of PMD) is able to look for identical code blocks allowing you merge duplicate functions.

      Sure that doesn't cover public functions but I don't think there is harm in unused getters and setters and it's easy to find if a function is called through tools found in Eclipse. Just because Java developers don't use these tools doesn't mean they don't exist.

    11. Re:I'd bet there is. by Anonymous Coward · · Score: 0

      get(varname) and set(varname) would not be more efficient. Try again.

    12. Re:I'd bet there is. by Anonymous Coward · · Score: 0

      It can happen in C as well. People define their own macros to modify data structures within source files, (equivalent to inline getter/setter functions in a class definition). Sometimes these macros are never used, other times they are duplicated. New variables within a data structure can be added, but then not used in actual functions. More often they are initially used, and replaced with something more efficient and not removed.

      New functionality can lead to new call paths being created. When a number of data structures need to be combined together for some reason, a new function to process them can be placed in any number of existing files, or even in a new file. Very often, different programmers will each implement their own function with different parameters and results. Functions can be cut-and-pasted simply because one line in the middle of that function needs to be changed. The rule of "make-the-least-number-of-changes" as well as commercial deadlines encourages people to just modify one file with rather than to make across the board changes.

      There's a sort of entropy rule that the more broken a piece of software is, the easier it is to fix things. Once you get to that point where there are very few if any critical or minor bugs, then the danger is that any change is more likely to break things than fix things.

    13. Re:I'd bet there is. by fatphil · · Score: 1

      You're gibbering. C's "const*" is as much memory protection as "private", more so, it anything. In particular as private isn't there for memory protection /per se/, it's for encapsulation. Your public functions can nuke all concepts of memory protection, therefore your private methods provided no actual protection.

      --
      Also FatPhil on SoylentNews, id 863
    14. Re:I'd bet there is. by walshy007 · · Score: 1

      But really, C, with their fancy "structs" and "flow control" just leads to unnecessary cruft, we should just stick with ASM and Goto, b/c that's way more maintainable ;)

      I know this was said in jest, but I've always considered c as pretty much portable assembly, it is certainly one of the more directly translateable languages once you have calling conventions etc down.

    15. Re:I'd bet there is. by goonerw · · Score: 2

      Visual Studio also highlights regions of code that are unreachable (such as lines of code after a return statement for a simple example).

      --
      LOAD ".SIG"
      PRESS PLAY ON TAPE
    16. Re:I'd bet there is. by Anonymous Coward · · Score: 0

      in C#, not in C++

  4. Automate it by wisnoskij · · Score: 3, Insightful

    Sounds like they already put a lot of work into this, but someone should tell them that you can automate things like removing unused code.

    --
    Troll is not a replacement for I disagree.
    1. Re:Automate it by Anonymous Coward · · Score: 0

      Sounds like they already put a lot of work into this, but someone should tell them that you can automate things like removing unused code.

      Exactly. Automatic dead code detection and aggressive automated testing helps a long way. But even w/o such automated tools, there is one humble, manual one. Continuous refactoring. Sadly, few developers ever do it. Ask a random developer what refactoring is, and you can hear chirping crickets :/

    2. Re:Automate it by gottabeme · · Score: 1

      Forgive my ignorance, but doesn't refactoring have greater potential to introduce bugs and regressions? Doing that continuously sounds like a bad idea to me, in general. You'd never get a stable, dependable codebase.

      --
      "Those who consume the bulk of goods are those who make them. We must never forget this secret of our prosperity."
    3. Re:Automate it by jcfandino · · Score: 3, Interesting

      Refactoring is supported by unit testing, which you should do anyway.

      Do it constantly, even in the details like method names, and your code will have better quality and will be easier to understand.
      Modern IDEs will resolve the tedious parts, you just have to think of the change, and the tool will do it.

      The book Refactoring: Improving the Design of Existing Code is an essential resource.

    4. Re:Automate it by rgmoore · · Score: 4, Insightful

      I'm pretty sure that they don't want to automate it. One of the first things Libre Office did after they forked from OO.o was to come up with a list of "easy hacks" for people who wanted to get involved but didn't know where to start. That includes stuff like dead code removal and translating comments from German to English. By leaving that stuff marked out but undone, they hope to ease new people into the project. That may not be the most efficient way of doing this kind of thing, but if it helps to recruit new developers it will do a lot more for the project in the long run than just getting rid of the cruft. It's a big difference between a project run by paid coders on a tight budget and one that depends on a variable number of volunteers.

      --

      There's no point in questioning authority if you aren't going to listen to the answers.

    5. Re:Automate it by AmiMoJo · · Score: 3, Interesting

      Yeah but they don't help much. The compiler will kill off any code that really isn't used so to make noticable performance imporvements you have to do stuff at the achitectural level. Maybe someone wrote a function but then later there were performance issues and it was replaced in some code but not elsewhere. Now you have two functions doing the same thing but the compiler and automated tools can't really tell that. The other classic one is where you have features that are no longer used or no longer make sense but are still possible to invoke, and again you need to work at the architectural level for that stuff.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    6. Re:Automate it by viperidaenz · · Score: 1

      You just think it and it does it? What IDE are you using? I have to press Alt-Shift-R to rename a method.

    7. Re:Automate it by Surt · · Score: 1

      Refactoring tools have gotten really good. The chance of introducing a bug with them is close enough to nil (close enough that you are more likely to eliminate a bug than to introduce one). Plus, you're supposed to have automated tests to tell you if you've broken a contract.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    8. Re:Automate it by msclrhd · · Score: 2

      Refactoring is changing code from one form to another where the two behave identically (modulo bugs). These should be done in small individual patches/chunks so that it is easy to see what is going on (e.g. for the reviewer or bisecting a bug).

      These include things like moving variable declarations to where they are first used, inlining a function by hand/removing a level of indirection introduced by the Visitor pattern and changing repeated code into a loop.

      It helps if the code you are refactoring has decent test coverage, but refactoring is also important for design and code evolution and in some cases unit testing is not in place (e.g. refactoring to introduce tests into the code; refactoring a UI or other code that is difficult to unit test).

      Refactoring allows you to simplify a complex codebase by removing cruft, or by restructuring the code to support redesign. If you let a codebase stagnate it will become complex and will end up holding you back from doing some changes.

      It may be that you have inherited a C codebase and are transitioning it to C++, refactoring the code to use bool instead of int (or BOOL in Windows); moving variable declarations to where they are first used. It may be that your code is using COM where it is not necessary to do so, and are removing that (c.f. Mozilla Firefox).

      Also, refactoring should be done with an aim in mind, a direction. Otherwise, you could flip between two code states indefinitely. Refactoring should be done to decrease the maintenance burden (making the code easier to read and understand by reducing the complexity and increasing the consistency). Refactoring should be done to improve the overall architecture and design of the code. Refactoring should be done to reduce code duplication.

      Without refactoring a codebase will suffer from architectural decay and the maintenance burden will increase over time.

    9. Re:Automate it by bfandreas · · Score: 1

      Detection of dead code is something you can automate.

      But removing deprecated code is a totally different matter. I spent yesterday replacing methods and calls to them. I netted -10k lines of code.
      What really aggravates me is when people keep dead code around just in case it would come in handy again. It never does. And if it did, that's what code repositories are for.

      Every time I hire a new coder the first thing I teach them is how to deal with Subversion and how to use diff. Hand in hand with that comes the simple refactoring that comes with every modern IDE. It's not rocket surgery. Code needs to be simple and maintainable.

      Actually the worst is optimization. I don't care if my code is near O(n^3). I only iterate over a list of 5 values. Every five minutes. there's no need to replace my 10 lines of code with 100. That's especially aggravating when this is done by a guy who saves the same stuff into the database five times, all in new transactions, when somebody presses the save button. Now THAT'S criminal.

      --
      20 minutes into the future
    10. Re:Automate it by Anonymous Coward · · Score: 0

      Detection of dead code is something you can automate. ...sometimes. Some dead code removal needs information which is not available from the code; consider a program on a server which dedicates half its logic to servicing a request with id = 7.

      The remote systems that make that request have been updated and never make requests with id = '7' any more; the server should treat it as an error.

      An automated process has no way to detect this situation. It could in principle track code dynamically and remove it if it wasn't used after a certain period, but that's not really acceptable since some code only runs on leap years, or every 7 years or even less frequently.

    11. Re:Automate it by jcfandino · · Score: 1

      You should try this new eclipse plugin from IBM.

  5. It doesn't matter by Anonymous Coward · · Score: 1

    No one really cares about unused functions, it doesn't degrade the resulting binary at all if the compiler you are using is any good. It may help in readability though. Refactoring the code is a whole other thing, but it don't think that is what they are doing here.

    1. Re:It doesn't matter by Mr2cents · · Score: 4, Informative

      I do think it matters. Yes, a compiler can throw out dead code, but not in all cases. E.g. if you have an enum where some values aren't used, and you then call a function if a variable has that unused value, how is the compiler going to find out? It's not only functions, there could be unused tests in code etc. All this clogs up the code and can make reading the code a living hell. It can turn an elegant part into a mess. Not mentioning the time wasted of developers trying to find out what a function does, only to discover it's not used. The article doesn't deal with the results in terms of code size or performance, but I'm very interested to find out.

      Anyway: you can either have clean code or maintainable code, but not both at once in my experience.

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    2. Re:It doesn't matter by Renegrade · · Score: 2, Informative

      And this, boys and girls, is how we end up with Windows 7/64 guzzling two gigs of memory after start-up.

      Not by this one isolated idea, but the very concept of "meh it doesn't cause a problem" snowballing until it IS a problem.

      I drafted up a mini-essay assuming it was C-style code, but the article is talking about methods. Clearing out half of the methods means that those virtual method tables are now half the size, which will result in much snappier execution. Less cache misses, less trash in the cache lines, shorter hash collision tables, it's all good stuff!

      Nevermind all of the benefits of faster loading times, less address exhaustion, etc that apply to ANY language.

    3. Re:It doesn't matter by Anonymous Coward · · Score: 0, Insightful

      Except for the fact that the machine I'm on right now is running Win 7/64 and is using 900megs with apps running. Thanks for trolling though.
       
      Remember kiddos, when you have to make up fake numbers to support your point of view you're normally wrong. And an asshat.

    4. Re:It doesn't matter by Anonymous Coward · · Score: 1

      You mean the prefetch where it keeps often used programs semi loaded into memory?

    5. Re:It doesn't matter by Anonymous Coward · · Score: 0

      You do realize there is only 1 instance of a virtual method table per class, right? And that removing entries in that table has nothing to do with hash collisions(because you don't hash that table, you hash objects, which are just a pointer)? And that much of Windows memory use is the SuperFetch system precaching data to avoid having to go to the disk? But don't let the facts get in the way of a good tirade.

    6. Re:It doesn't matter by idbeholda · · Score: 1

      Let's not also forget that less lines of code also means that, generally, it's also easier to track down and fix bugs.

    7. Re:It doesn't matter by GGardner · · Score: 2

      The real problem here probably has to do with shared libraries. If you have a function in a shared library with external visibility, the compiler can't remove it, unless it is doing whole program optimizations across all of the programs, and I doubt the LibreOffice builds are doing that.

    8. Re:It doesn't matter by Anonymous Coward · · Score: 0

      I can't believe your trolling faggoty self got +5, but hey, this is Slashdot, home of the Linux Cocksucker Boy Toys.

    9. Re:It doesn't matter by epyT-R · · Score: 0, Troll

      ok.. turn off superfetch and disable prefetch.. win7 x86_64 still eats 400-500MB. it's still bloated.

    10. Re:It doesn't matter by smi.james.th · · Score: 5, Informative

      I am not a Microsoft fan, but Windows 7 is actually a very well-written OS, in my experience. If you have lots of RAM then it uses it, there's no sense in having 8GB of RAM if it's only using 250MB and paging the rest of what it needs.

      As a point of reference, have a look at this article. If you only have 512MB of RAM then Win7/64 will only use about 200MB of RAM.

      --
      One thing I know, and that is that I am ignorant...
    11. Re:It doesn't matter by Mr2cents · · Score: 1

      No that's just one of the problems. The rabbit hole goes much deeper than that. Also, even with such deep inspections, the public interface is, well, public, so you cannot optimise it away. At best you can use tools to hint at such cases. After that you can modify the API (and the API documentation).

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    12. Re:It doesn't matter by hairyfeet · · Score: 4, Insightful

      And THIS gets modded "informative"? Did someone give the trolls extra mod points this week? Did I miss a memo? Because I'm sitting here with not one but TWO Win 7 X64 machines running, one an AMD EEE netbook with 8Gb, the other my AMD 6 core Thuban desktop, also with 8Gb, and I'm using less than 600Mb with the basic theme on the netbook and just a hair under 980Mb on the desktop and that's with Aero and all the bling cranked. You are probably using an old tool that counts cache as "used" memory but since Windows dumps the cache if ANY program requests the memory that simply isn't useful anymore. BTW your old XP box uses so little RAM because it'll dump to paging even if there is plenty of memory free which is just fricking stupid, the RAM is using the same voltage regardless so why not use it to speed things up?

      But if you are seriously looking at 2gb and aren't trolling you need to have that thing checked, because either you have more bugs than a Bangkok Whore or one of your apps is leaking memory like a sieve.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    13. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Now turn off DWM, Search Indexer, and the whatever fancy things it automatically disables when it detects that your computer doesn't have much RAM.

    14. Re:It doesn't matter by westlake · · Score: 3, Informative

      And this, boys and girls, is how we end up with Windows 7/64 guzzling two gigs of memory after start-up.

      RAM is there to be used, not hoarded.

      In short, Windows 7 (unlike XP and earlier Windows versions) goes by the philosophy that empty RAM is wasted RAM and tries to keep it as full as possible, without impacting performance.

      Windows 7 memory usage: What's the best way to measure? [Feb 25, 2010]

    15. Re:It doesn't matter by dokc · · Score: 4, Funny

      Slashdot, home of the Linux Cocksucker Boy Toys.

      Can you, please, post us a link to the Linux Cocksucker Boy Toys source code.

      --
      In love, war and slashdot discussions, everything is allowed.
    16. Re:It doesn't matter by bonch · · Score: 5, Informative

      No, it's not. Windows 7 will use as little as 200MB of RAM if you only have 512 physically available. You're misunderstanding what's actually going on as you fret over megabytes in Task Manager.

    17. Re:It doesn't matter by milkywayer · · Score: 3, Interesting

      I don't see any problems with Windows 7. With my 8gigs RAM, it still uses 3.x GBs (including the browser, chat clients, video players) etc with more than half of of the memory still available for caching. The OS itself is working great. IIRC, uptill winXP, i had to do a clean install every few months to take care of all the slow downs/viruses - Vista was a breeze (still can't compute all the hate it got [yes, you had to run it on a bit faster machine but that's not the problem]) , win7 is a win.

    18. Re:It doesn't matter by Max_W · · Score: 1

      I would not say that Windows 7 is well written. Many its GUI controls are using very bad confusing abstractions. For example, audio, networking, etc.

      But if we compare personal computing and, say, telephone, we are still in 1912. Telephone was invented in 1870, bu the real use began in 1920s and 1930s.

      So, I want to say that Windows is still like that apparatus where on had to turn the handle several times to start speaking. No real OSs yet exist, just like no real usable telephone existed in 1912.

    19. Re:It doesn't matter by ksemlerK · · Score: 1

      1. 2 GB on startup? Something is wrong with your setup. I've been up for 3 days and 6 hours. I only have 1802 MB in use.

      2. Who cares about a measly 2 GB anyways? I have 16 GB in my computer right now, and if I wanted to, I could upgrade to 32 GB. 2GB? Please quit your bitching. Buy some fucking memory, and try running a modern machine for once.

    20. Re:It doesn't matter by viperidaenz · · Score: 3, Insightful

      Exactly. Unused RAM is wasted RAM. If nothing is using my RAM, I hope Windows 7 is using it for cache.

    21. Re:It doesn't matter by msclrhd · · Score: 1

      If you have an unused function, the compiler can remove that. But if the unused function is calling another function, class, global variable, enumeration type, etc. then that unused function is blocking you changing/cleaning up those (e.g. preventing you removing the global variable even if it is only ever used by the unused function).

      It also adds complexity to the readability of the code -- the developer does not necessarily know the function is unused or that it should not be used.

    22. Re:It doesn't matter by jankoh · · Score: 1

      Beware: even the article says: "over half the UNUSED code in LibreOffice has been removed" and not: "half of ALL the code" In november 2011, there were about 5000 known unsed methods, today there are about 2000... See blog by Michael Meeks http://people.gnome.org/~michael/blog/2012-01-09-unused.html for more detail

    23. Re:It doesn't matter by Anonymous Coward · · Score: 0

      The problem with this is that I use task manager to see how close to the limit my system is, and to gauge how much memory to get on a system. It's all well and fine to use free memory for caching disk or whatever, but I'd like my "gas gauge" back please! Give me a memory monitor that actually tells me how much memory I could use for my apps, and how close to the edge I am. That's pretty much the only reason to show memory usage in task mgr and perfmon, at least for normal users. All the cleverness with behind-your-back memory utilization is making my computer more opaque, I'd rather they not even show me that and just count all physical ram which is not being used for app or os as free, unless I click an "advanced view" checkbox.

    24. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Ignorant oaf. s/less/fewer/

    25. Re:It doesn't matter by Hognoxious · · Score: 1

      one an AMD EEE netbook with 8Gb

      That must have cost quite a bit, with it being a special order and all...

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    26. Re:It doesn't matter by hairyfeet · · Score: 2

      Actually it was a whole $350 with 8Gb from Newegg and a carrying case from Tigerdirect, so nope, not expensive at all. of course i lucked out as i ordered mine 2 weeks before the Thailand flood, now the same unit is a whole....let me look...$415, not really that big a difference, but of course you'll have to add the $30 for 2 4Gb sticks like i got.

      Anyway here is the link and if you'll check the comments below the first poster links to the 8Gb RAM upgrade. I can't say enough good things about this netbook, it gets 6 hours plus playing 720p video, gets a hair over 8 in Expressgate surfing and listening to music, has enough GPU to play L4D and GTA:VC, and has enough CPU muscle i'm using it to edit multitracks and even as a custom drum machine using hydrogen and running it into the mixer, great for having more realistic drums when laying down scratch tracks. Its got plenty of space, doesn't get hot, only weighs 3 pounds, and if you want even longer battery life there is a 10 cell you can pick up but personally 6 hours plus is plenty.. Oh and it comes with Win 7 HP X64 ready to go and swapping out the RAM is easy peasy. After I sold the 2Gb stick that came with it for $20 the RAM boost was a grand total of $14 and it was only $6 difference between 6Gb and 8Gb so I figured WTF ya know? Having that much RAM means that Superfetch has ALL my apps preloaded into RAM, its sweeet.

      so if you or anyone you know wants a netbook I'd say go for it, its a great lightweight unit that kicks ass on the road. It even has a USB 3 port with charging capability so if your phone dies you can use the EEE to give it a quick charge. Nice.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    27. Re:It doesn't matter by Anonymous Coward · · Score: 0

      I'm starting to have serious issues with Windows 7 file handling. Is anyone else noticing this? I am seeing this on 3 or 4 different PCs, with assorted hardware, and a mix of 32bit and 64bit versions.

      Basically, I find browsing files can really suck sometimes. It's like explorer is out of sync with the file system. Delete a file, it doesn't disappear so you try to delete it again and you get an error because it was already deleted the first time. Same for rename. Lots of locking issues as well. I've deleted folders, and the operation fails due to a file lock. I look inside, the folder is empty, wtf? I then try to delete the folder a second time, and this time it goes.

      This happens about once a week. And it really pisses me off. The filesystem is the core of the OS experience, it should never be abused, it should always work, and it should always be responsive.

      That's what I think. Anyone else seeing the same thing?

    28. Re:It doesn't matter by smi.james.th · · Score: 1

      I've experienced the thing about deleting folders once or twice but not often. I've been using Win7 for just less than a year now. Can't say that I've had any of the other problems that you describe.

      I guess the usual YMMV sticker still applies here...

      --
      One thing I know, and that is that I am ignorant...
    29. Re:It doesn't matter by Rockoon · · Score: 4, Insightful

      Many its GUI controls are using very bad confusing abstractions. For example, audio, networking, etc.

      They are necessary abstractions because these subsystem themselves are abstractions.

      If you want confusing audio subsystems, look at the mess in Linux right now.. most Linux installs literally have multiple audio subsystems that can output to each other in very confusing master/slave relationships.

      --
      "His name was James Damore."
    30. Re:It doesn't matter by Oligonicella · · Score: 1

      "...unless I click an "advanced view" checkbox."

      You understand you just asked for bloat.

    31. Re:It doesn't matter by Oligonicella · · Score: 1

      "No real OSs yet exist, just like no real usable telephone existed in 1912."

      That is a nonsense statement on both counts.

    32. Re:It doesn't matter by Anonymous Coward · · Score: 0

      That deletion thing happens to me almost daily. Then there is the issue that sometimes you try to move a file, and instead of doing it immediately Windows 7 shows a progress bar for something called "discovering items" which can take anything from 5 to 15 seconds.

    33. Re:It doesn't matter by ratboy666 · · Score: 1

      How would you know if Windows 7 is a well-written OS? (unless you work for Microsoft) I know Linux 3 is a well-written OS.

      Just saying...

      --
      Just another "Cubible(sic) Joe" 2 17 3061
    34. Re:It doesn't matter by smi.james.th · · Score: 1

      Fair point. I haven't seen the source code, of course, and while I've seen a little of Linux source code, I'm not experienced enough as a coder to be able to judge based on that.

      My yardstick has thus far been, does it work? In the past it was easy to point fingers at Windows and make jokes about Blue Screens of Death and having to constantly reboot. That's no longer the case. My machine at the moment has maybe once or twice in the past year given me any instability problems, and I only reboot it every other week or so, and that's more out of habit than anything else. Other objections you may have to Windows on grounds of closed-source and whatever else may still be there, but the OS itself works very well.

      --
      One thing I know, and that is that I am ignorant...
    35. Re:It doesn't matter by Matt_J_Harris · · Score: 1

      I see this daily. I have gotten into the habit of hitting F5 after I delete, rename or create anything. It is the #1 thing that annoys me about Win 7.

    36. Re:It doesn't matter by Anonymous Coward · · Score: 0

      So... Windows has achieved what Linux has done for many years.

    37. Re:It doesn't matter by Anonymous Coward · · Score: 0

      Technically, you know that Linux 3 is a well-written *kernel*.

    38. Re:It doesn't matter by shutdown+-p+now · · Score: 3, Informative

      The problem with this is that I use task manager to see how close to the limit my system is, and to gauge how much memory to get on a system. It's all well and fine to use free memory for caching disk or whatever, but I'd like my "gas gauge" back please! Give me a memory monitor that actually tells me how much memory I could use for my apps, and how close to the edge I am.

      As things are, you need Process Explorer for that, and a decent understanding of virtual memory management in NT to understand what it actually tells you.

    39. Re:It doesn't matter by shutdown+-p+now · · Score: 1

      Clearing out half of the methods means that those virtual method tables are now half the size, which will result in much snappier execution. Less cache misses, less trash in the cache lines, shorter hash collision tables

      WTF does hash collision have to do with virtual method tables?

    40. Re:It doesn't matter by srussell · · Score: 1

      Exactly. Unused RAM is wasted RAM.

      I keep seeing this assertion. If applications aggressively grab memory and resources that they might use, and if I'm a user who uses the computer for more than just a single-domain application (say, web browsing), then I'm going to encounter a lot of OS swapping as I jump around between applications. If the OS has a free buffer of RAM, then new applications I open are going to open more quickly as the OS doesn't first have to swap opt currently in-use memory.

      I can't help but think that this philosophy that unused RAM is wasted RAM is what's led to application bloat. I see this most in my career in situations such as frantic last-minute GC tuning resulting from UAT load testing; or when a developer discovers that some new feature is going to push the app over some threshold, and they have to go back and spend extra time analyzing and tuning other parts of the code base that don't, strictly, have anything to do with the feature they were task with developing.

      It's as if, when it became widely recognized that eager optimization had consequences, the industry threw the baby out with the bathwater and took it as permission to entirely ignore resource use considerations during the initial design and development phase. This philosophy has apparently permeated through to the general computing zeitgeist, as evidenced by your (commonly held, and understandable) conviction.

    41. Re:It doesn't matter by viperidaenz · · Score: 1

      Its supposed to be about the OS using available RAM for cache. If an application requests memory the OS can throw away the cache. no swapping required.

    42. Re:It doesn't matter by Anonymous Coward · · Score: 0

      You're right, not yet. There are some yet outstanding bugs in GCC 4.6 and the upcoming 4.7, that LibreOffice is hitting during compilation when attempting to use -flto.

  6. remigrated to openoffice by Anonymous Coward · · Score: 0

    I tried libreoffice a few days ago and as it repeatedly crashed within minutes of work, I reinstalled openoffice. For now. It looked promising and was significantly faster.

    cb

  7. oooh yes by Mr2cents · · Score: 3, Interesting

    I've been working on a project where there were 3 separate wrappers around a database, each returning different objects containing the same data... So you had to convert those each time two modules using different wrappers needed to communicate. I tried to clean it up a bit, but eventually I stopped because my manager was frowning upon that because "I broke working code". Also there were parts that I didn't know if they were still in use. I also ran a profiler and found 80% of the functions never got called. That doesn't mean it's dead code of course, but looking at the function names I got an eerie feeling with a bunch of them. Anyway, I learned a lot about how not to manage software, I quit the company since then and I can only hope things have changed over there.

    --
    "It's too bad that stupidity isn't painful." - Anton LaVey
    1. Re:oooh yes by Mr2cents · · Score: 2

      Well, no, I got paid so if they don't want me to do that, I don't do it. Simple as that. But I did write a mail saying what parts of the code were going to continue to be bug-prone if if didn't get cleaned out. When I was packing, I found it back and I was completely spot on. One of the parts I mentioned needed a small change at that time, and it was already taking an engineer two weeks to implement it, constantly introducing new bugs. In hindsight my manager said I was correct. Nobody wanted to see me go, I rescued the project on more than one occasion. It was on an embedded platform so when performance was degrading I wrote a tool to find out where it was spending most of its time. Four months later we shipped a new version with more features and a lot of performance improvement, faster than it ever was. It's been in use ever since.

      I also left the company without slamming doors, it was not directly related with that project but it did cause some changes: managers were now taking on smaller projects, with less R&D investments and less risks. I can understand their reasoning, but that didn't keep me motivated. That's all.

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    2. Re:oooh yes by Mr2cents · · Score: 2

      OK, to clarify: I wasn't doing that on live code, it was a special experimental branch. My manager didn't want me to spend more time on it. But I was allowed to experiment, and then turn to the manager, present it and ask his input. Just stopping on my assignments and doing a weeks long rewrite needs approval of course, but fooling around a bit while you're stuck with another problem, was no problem. Is it really so abnormal to work that way?

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    3. Re:oooh yes by Bucky24 · · Score: 1

      cower in my shadows you feeb.

      Hehe I've only seen one person use that phrase on this site before... I know who you are ;)

      The senior coder at the company I work for left this past August. Since then I've had to play with code that I know nothing about. I've broken things a fair few times, but there's really no way to get around that. Sometimes things that we'd rather not do are unavoidable.

      --
      All the world's a CPU, and all the men and women merely AI agents
    4. Re:oooh yes by Anonymous Coward · · Score: 0

      Indeed, I think I got crabs from his mother.

    5. Re:oooh yes by zidium · · Score: 5, Informative

      Mr2Cents,

      Your actions are indicative of a person who is not yet truly a craftsman of the software engineering trade.

      Speaking from personal experience dealing with huge, complex, unmaintainable PHP legacy systems for the last ten years, let me tell you a far better path:

      1. Search the code base for what may be directly calling the code.
      2. Set debug breakpoints at the start of each piece of cruft code and rigorously test the app.
      3. Create a custom exception (e.g. CrapCodeHitException) and throw it at the beginning of each code segment you want to remove. If you don't hit any of the exceptions after, say, a week of normal browsing doing other things, plus testing, then proceed to step 4.
      4. Catch the CrapCodeHitExceptions at the highest level you dare, log this into a separate log file you will have permission to read. Commit the code into a releaseable branch so that it ends up on your QA and staging servers.
      5. Get approval to have the logging code be pushed to staging. Add comments above each cruft piece of code stating a) the level of risk you think if it is removed, b) when one should feel free to remove it (pick increments like 3 mo, 6 mo, 1 yr, based on risk), c) your name. If shit hits the fan cuz of removal, you want to man up and accept responsibility so your peers don't waste precious cycles needlessly troubleshooting why this "perfectly fine" code was seemingly arbitrarily removed.
      6. After each time of your comments has elapsed, if the code was never triggered (parse the logs!), feel free to remove it. Please leave a note behind that you removed such and such, tho, and stick your name on it. Remove these notes after a year.

      I've personally cleaned up 100,000s lines of code using this mechanism on several large and complex sites, without a single failure.

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    6. Re:oooh yes by zidium · · Score: 2

      Mr2Cents, it is abnormal only because the majority of "coders" are not true craftsmen.

      It's a great sign of a craftsman, the want to improve just for the beauty and elegance of the end-solution.

      I wish you luck in your endeavors.

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    7. Re:oooh yes by Anonymous Coward · · Score: 0

      This sounds like a pretty weak story, man. Why would your manager fuss over an experimental branch where you were encouraged to experiment on? Sounds like you're not giving the actual story or it never happened.

    8. Re:oooh yes by narcc · · Score: 1

      there were 3 separate wrappers around a database, each returning different objects containing the same data

      It was on an embedded platform

      I just threw up a little...

    9. Re:oooh yes by narcc · · Score: 1

      Hehe I've only seen one person use that phrase on this site before... I know who you are ;)

      Clearly, that AC is not the real Michael Kristopherson!

    10. Re:oooh yes by sjames · · Score: 1

      Probably the manager was concerned that the messing around was taking time that needed to be spent elsewhere.

    11. Re:oooh yes by zidium · · Score: 1

      Or he was one of my previous managers!

      Sadly, maintainability astigmatism is a serious problem in modern Creative Dev environments.

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    12. Re:oooh yes by SadButTrue · · Score: 1

      Bah just rewrite it. Having reference code and a stable target makes development really fast.

      --
      grape - the GNU free, open source rape
    13. Re:oooh yes by Mr2cents · · Score: 4, Interesting

      Well, it was an embedded company. This was the first project of such a large scale, and they lacked experience. The manager had worked there for 30 years, and had an electrical engineering background. So it wasn't an ideal situation: he was certainly competent and he could definitely write code, but lacked the experience in software engineering, like how to keep a large software base maintainable. So for example, he had this obsession with not changing code once it was tested. Since all these modules were tested, he was very nervous about changing it. What he failed to see, though, was that more modules were going to be added, and without a clean definition of how this data was to be represented, constant conversions were going to be needed (plus some other things I'm not going into now). Also, automated testing was not a practice there. This is one of the things I worked on introducing at the company, although frankly it was much to late to add it to the existing project. So he was never going to allow to merge the changes back in, because it "broke" tested code.

      And I'm not saying I'm all for changing tested code - not at all , but in some circumstances, spending some effort up front can save you a lot of time later on. And I'm sure it would have.

      Also, I'm quite confident of my skills. Sure I can still improve, but I surely developed a reputation of writing code that "just works". After 4 years, only a small fraction of the bugs were assigned to me, mostly they were located in parts I didn't write. Mastering the programming language is important, but there are lots of other very important things that matter. You just need a lot of discipline, checking all input, immediately failing when something goes wrong (not letting bad data trickle down the code), clean separations, higher order programming, trying to minimise the interface between modules etc... The list is so large, it becomes more of an intuition.

      I hope this clarifies it a bit, I surely wasn't expecting the Spanish Inquisition.

      --
      "It's too bad that stupidity isn't painful." - Anton LaVey
    14. Re:oooh yes by phantomfive · · Score: 2

      Bah just rewrite it. Having reference code and a stable target makes development really fast.

      This sentiment is at the start of many disasters. Why would you ever rewrite code that works? You'll just end up spending time debugging it.

      --
      "First they came for the slanderers and i said nothing."
    15. Re:oooh yes by SadButTrue · · Score: 2

      hehe yeah, it really is. Even after having been burned by it a few times it is still so damn tempting.

      --
      grape - the GNU free, open source rape
    16. Re:oooh yes by Anonymous Coward · · Score: 0

      Yikes. Use of language with no static code analysis tools for the loss.

      In compiled languages, it's pretty easy to find out when code is truly dead.

    17. Re:oooh yes by MichaelSmith · · Score: 1

      Search the code base for what may be directly calling the code.

      This is what I hate about large scale OO code. You have ten thousand classes, each implementing an interface which extends an interface containing a method something like execute(). Refrerences to objects are just data. How do you find what calls that method without using a debugger? What if some execution paths are next to impossible to test? Where do you start?

    18. Re:oooh yes by Anonymous Coward · · Score: 0

      your an idiot for playing around with code you knew nothing about. lemme guess, after you "quit" you told you your future employers that the company sucked.

      your an idiot.

      cower in my shadows you feeb.

      • Caps Lock and Shift keys chewed off? Check.
      • Spittle on screen? Check.
      • Omnipotent fantasies? Check
      • Sub-literate rant rendered almost unintelligible as writer is so incoherent with rage over imagined slight to super-inflated ego both thumbs are needed to type? Check
      • Not taking court ordered Thorazine? Check

      MichaelKristopeit410 is that you or one of your many sock puppet identities?

      Not to be confused with the actual Michael Kristopeit, a poor and simple rentboy with a heart of gold, challenged from birth as the offspring of a real estate agent and the television weather woman. All the poor guy did was try and stop you sodomising puppies and trying to fellate raccoons. Nothing personal in it, yet your every waking moment is spent trying to blacken his name.

    19. Re:oooh yes by Hognoxious · · Score: 1

      Your actions are indicative of a person who is not yet truly a craftsman of the software engineering trade.

      And you are?

      You appear to have missed the bit about it being an embedded system. Half of what you wrote is irrelevant, impractical or impossible in that context

      Speaking from personal experience dealing with huge, complex, unmaintainable PHP

      Ah, that answers my question. No, you're not.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    20. Re:oooh yes by Anonymous Coward · · Score: 0

      I hope this clarifies it a bit, I surely wasn't expecting the Spanish Inquisition.

      Nobody expects the Spanish Inquisition!

    21. Re:oooh yes by Anonymous Coward · · Score: 0

      Its refreshing that you didnt call a coworker a moron simply because he wasnt perfect in the field you happened to be in.

      Take an insightful mod for your well written comment,

    22. Re:oooh yes by zidium · · Score: 1

      That's why noobs use editors while professionals use IDEs.

      True Debugging (with breakpoints, etc.) is *essential* for any medium+ sized Object Oriented project.

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    23. Re:oooh yes by zidium · · Score: 1

      I'm not skilled in embedded systems at all. I didn't see the word "embedded" in his comment at all, and I didn't even know you could have databases in embedded apps, either. What? it must be SQLite or something similar, right?

      I see evidence of his route all the time, however, in my world of dynamic website languages, however, and my advice is worth something there.

      --
      Slashdot Valentines Beta Massacre: iT WORKED! The boycotts killed Beta!!
    24. Re:oooh yes by Anonymous Coward · · Score: 0


      Why would you ever rewrite code that works? You'll just end up spending time debugging it.

      Because if the code is bad enough, it's cheaper and less error prone to re-write it.

      The problem with your analysis is the limited definition of the word "working", as if "working" is merely an external black box property of software. If the code isn't maintainable, it doesn't "work". The situation Mr2Cents describes is an ungodly mess.

    25. Re:oooh yes by MichaelSmith · · Score: 1

      Just because you can say "we got here this time" does not mean "we will get here when it matters". If you don't understand what the code is doing then you can't say your code is safe.

    26. Re:oooh yes by Anonymous Coward · · Score: 1

      I rarely test my code but when I do, I do it in production.

      ~The Most Interesting Coder in the World

    27. Re:oooh yes by Anonymous Coward · · Score: 0

      Nobody does.

    28. Re:oooh yes by JayWilmont · · Score: 1

      That's like saying driving in the dark is hard to do without using your car's headlights. Use a debugger to figure things out.

  8. It sucks by Anonymous Coward · · Score: 0

    Get over it.

  9. A Natural Consequence of Change by Rubinstien · · Score: 3, Insightful

    ...lots of stuff is left lying about which might not be used any longer on the off chance that it might be adapted to some future purpose. Sounds like genetics.

    1. Re:A Natural Consequence of Change by Anonymous Coward · · Score: 0

      Yeah, except even microbes pare down their excessive unused code, especially in resource crunch situations.

    2. Re:A Natural Consequence of Change by complete+loony · · Score: 2

      Don't leave code around that is no longer needed. Just don't. I've deleted heaps of code in my career that was obviously unreachable. And remember that all of your history should be in source control, so the code isn't permanently dead anyway. If you *really* need to look at how a method used to work you can check out an old version of the application and look. And that is a fairly rare occurrence anyway. It is *far* more important to make sure the current version of the code is readable.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    3. Re:A Natural Consequence of Change by Rubinstien · · Score: 2

      I've deleted heaps of code too, but I seldom remove a still-functional API, even if nothing is currently using it. Generally add a comment to that effect, though. I've been grateful in the past when someone prior to me decided to keep something that was no longer in use but still potentially useful: http://slashdot.org/comments.pl?sid=1445528&cid=30120820 . If the code has unit test stubs I try to keep unused API functional and testable as well. It generally takes little effort to do so.

      Agree as well about revision control, but I also know that code tends to get moved from one revision control system to another, and often enough some or all of the revision history is dropped -- whether for expedience or simply due to impedance mismatch.

    4. Re:A Natural Consequence of Change by schlachter · · Score: 1

      And as with your example...there's usually very little selection pressure to remove the code because the cost to keep the code around is near zero for the developers and not much higher for the users. Every so often there is a serious shift in one's environment which makes it worthwhile to invest the time to clean things up.

      --
      My God can beat up your God. Just kidding...don't take offense. I know there's no God.
  10. Still no update system... by Kenja · · Score: 3, Insightful

    so most people wont notice a new build.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:Still no update system... by MonsterTrimble · · Score: 2

      That's a good point - why the heck isn't there an update script or something on Windows & Macs? I get you don't want to push nightly build but major point releases couldn't hurt. I think my in-laws are still on OO 2.3...

      --
      I call it 'The Aristocrats'
    2. Re:Still no update system... by Anonymous Coward · · Score: 2, Informative

      LO 3.5 beta on Windows does have an update notifier that also offers to download the update for you, too.

    3. Re:Still no update system... by Anonymous Coward · · Score: 0

      No idea.

      Why the hell don't MS Windows and OS X have a repository system to update apps?

    4. Re:Still no update system... by Anonymous Coward · · Score: 0

      What, like the Apple App Store?

      Oh, wait. I can't tell if that's a response to your question, or a troll.

    5. Re:Still no update system... by rrohbeck · · Score: 1

      Because most people use it on Linux which usually has a system wide automatic update?

    6. Re:Still no update system... by j-beda · · Score: 1

      Why the hell don't MS Windows and OS X have a repository system to update apps?

      Not a repository system, but Sparkle is a very commonly used free update framework for Mac OS X, used by virtually every piece of non-Apple software I use.

      http://sparkle.andymatuschak.org/

      Appfresh seems to wrap all of the Apple, Microsoft, Adobe and Sparkle mechanisms in one place, but I haven't tried that.

      http://metaquark.de/appfresh

      AppUpdate and WigdetUpdate Dashboard widgets do a reasonable job of keeping non-Apple software current:
      http://gkaindl.com/software/app-update/
      http://gkaindl.com/software/widget-update

    7. Re:Still no update system... by j-beda · · Score: 1

      I also see that Google has "Update Engine": "a flexible Mac OS X framework that can help developers keep their products up-to-date. It can update nearly any type of software, including Cocoa apps, screen savers, and preference panes. It can even update kernel extensions, regular files, and root-owned applications. Update Engine can even update multiple products just as easily as it can update one."

      http://code.google.com/p/update-engine/

      I don't know if anyone else uses that though. Sparkle is probably not as full featured, but is probably easier to implement.
      http://sparkle.andymatuschak.org/

      http://code.google.com/p/update-engine/

  11. Physical to virtual comparison by RelaxedTension · · Score: 4, Insightful

    Can you imagine this in any other engineering discipline? Oh yes, we built the bridge but there are a few hundred unnecessary iron girders that we forgot to remove...

    Those would be perfectly valid if upon discovering your girder was 3 inches too short you could instantly create a copy of it, set the original aside, then alter and test that copy of the girder. Then you might leave a few extras lying around.

    1. Re:Physical to virtual comparison by Anonymous Coward · · Score: 0

      What you say is applicable to many computer related activities not just programming. Well said

    2. Re:Physical to virtual comparison by martin-boundary · · Score: 1

      Those would be perfectly valid if upon discovering your girder was 3 inches too short you could instantly create a copy of it, set the original aside, then alter and test that copy of the girder. Then you might leave a few extras lying around.

      Only in a lab environment. If the bridge was taken out of the lab, and placed on a busy river, then even if you wanted to alter the girders, the traffic wouldn't allow it. You'd have to wait until midnight on Christmas Eve to fix not just the girder but make all the other design changes you've been preparing for months, and you'd have only an hour to do it all.

  12. Re:Worked Well? by theguyfromsaturn · · Score: 4, Informative

    I never get crashes with LibreOffice. Whenever I try Word on some documents (docx) I get a crash. I was completely unable to edit some documents in Word (sent to me by colleagues) until I opened them in LibreOffice, saved them in doc format, then reopened them in Word. It happens with distressing regularity. I find LibreOffice much more stable than Word personally. The worst part is when once I edited a doc in Word, saved it, and when later tried to open it again had a similar problem. I am not sure what document elements cause this but it's a sad state of affairs when LibreOffice is not only more stable (for me), but handles better MS own file format (even though there are still big deficiencies in the docx file handling in LibreOffice). So, stability issues? I guess it depends on your computer.

    --
    I like my dinosaurs feathery, and my pterosaurs hairy (or is it pycnofibery?)
  13. Bad examples by intx13 · · Score: 5, Insightful

    Bridges often have unused structural elements: walk-ways made unsafe by modern traffic levels, maintenance accesses unused for safety reasons, supports made redundant beyond the factor of safety by bridge improvements, etc. Chips and boards too: FPGAs with 10% utilization, chip designs re-purposed with functional components disabled, subsystems replaced in boards by new designers not confident enough to remove the old design, etc.

    Cruft in software is more often removed because (1) software has a potentially longer lifetime than hardware and (2) it's a lot easier to remove an uncalled function from a program than a girder from a bridge! Software cleanup should be an expected and planned part of a project's life cycle.

    1. Re:Bad examples by Ethanol-fueled · · Score: 4, Interesting

      ...subsystems replaced in boards by new designers not confident enough to remove the old design, etc.

      It sounds crazy, but I work with a real-life example, a beamforming circuit board that utilizes a certain technique, but has all the legacy components utilizing another technique that was never even implemented!

      In that case, it wasn't a matter of confidence, but probably corporate sloth - engineers are expensive, and so they figure that paying the board-house more for the extra components per board would be cheaper than getting an engineer to redesign the board.

    2. Re:Bad examples by Anonymous Coward · · Score: 0

      Sounds familiar.
      Around here, the reasoning would not be that the engineer is too expensive...

      The reason for not changing the board is because the purchasing department has kept the price per unit down over the years. Any change to the design would be a crack in the armor and would allow the manufacturer to raise the price immensely (all the way up to reasonable levels even)

    3. Re:Bad examples by kbielefe · · Score: 3, Insightful

      It's not crazy. A major board redesign will set a schedule back three months or more, so if you have two options and aren't sure which one will work, it's not uncommon to design for both if you have the room. Maybe you're evaluating two vendors. There are also usually components that are only used during development. Sometimes there's an experimental or premium feature that requires an extra chip, but you don't want to make two boards. Of course, most of the time unused components get left off in mass production, but developer's boards or ones from prototype runs might still have them.

      --
      This space intentionally left blank.
    4. Re:Bad examples by artor3 · · Score: 1

      To expand on your example of chips, they typically have a large amount of area devoted to self-test and tuning systems which get used exactly once, in the factory (okay, maybe a few times e.g. to make sure you didn't break anything during packaging), and then never touched again. Scan chains in particular can add a lot of transistors.

      It strikes me as a close analog to test code in software... that is, unless test code gets taken out of the final product with compiler directives. I don't really know how all that software black magic gets done.

    5. Re:Bad examples by 0123456 · · Score: 1

      To expand on your example of chips, they typically have a large amount of area devoted to self-test and tuning systems which get used exactly once, in the factory (okay, maybe a few times e.g. to make sure you didn't break anything during packaging), and then never touched again. Scan chains in particular can add a lot of transistors.

      We used to use the scan chains for debugging when our chips hung; we could use them to dump out the contents of the internal memories/registers and some of the other internal state and then load that into a simulator to see what the heck was going on inside it.

      On at least one occasion we also had to 'steal' transistors to repair part of a chip which had a design fault, which meant disabling one component of the chip and redesigning the metal layers to connect up some of the transistors that component used to use (AFAIR changing the metal layers cost around $50k whereas changing the silicon cost around $1M). So it's quite possible that there are some crufty transistors on otherwise working chips.

    6. Re:Bad examples by dslbrian · · Score: 3, Interesting

      I think it's pretty common, and not just with test logic like scan chains. I've worked on numerous ICs where some later project wants to reuse a part of the design, without necessarily using everything. If time and budget allow the unused bits get removed and a smaller design results, but more often the unused logic is tied off (at the board level or via metal mask - board level being cheapest and metal mask being cheaper than cutting a new set of diffusion masks for a potentially small runner) and the same die and package are reused (this may allow test fixture reuse also).

      I've seen some pretty egregious cases of this however. I recall opening up a 4-port USB hub once (the cheap $10 ones) only to find a gigantic controller chip on it (something like 80 pins) of which about 10 pins were connected. It was obvious the chip didn't start life as a USB controller, but apparently it was cheap enough to throw down as-is. I always wondered what else was on the chip, perhaps part of something that normally has an embedded USB hub (monitor or keyboard maybe).

    7. Re:Bad examples by LordLimecat · · Score: 1

      Also, I dont care what your field is, it is highly unlikely that the consequences of a disastrous software cleanup will be worse than the consequences of a disastrous girder removal from a heavily used bridge.

      Code can be reverted, bridges cannot.

    8. Re:Bad examples by hawk · · Score: 1

      I code for a nuclear reactor, you insensitive clod!

    9. Re:Bad examples by Anonymous Coward · · Score: 0

      > I code for a nuclear reactor, you insensitive clod!

      automated legal documents coming out of a nuclear reactor. yikes.

      suing the neighbors who get cancer for stealing the power company's subatomic particles? Monsanto would be proud.

      (-: ok sorry, the combination was too good to let past unlampooned :-)

  14. Re:Then why is it still called LibreOffice? by Anonymous Coward · · Score: 0

    Mephisto is a German demon

  15. Re:Worked Well? by hedwards · · Score: 2, Informative

    LIbreOffice hasn't been OO in well over a year. But nice try with the trolling.

  16. Cruft in engineering... by Forbman · · Score: 4, Interesting

    Oh yes, we built the bridge but there are a few hundred unnecessary iron girders that we forgot to remove...
    Well, look at bridges built in the 1800's compared to the ones today. Would we build a modern bridge today using wrought iron links http://en.wikipedia.org/wiki/Clifton_Suspension_Bridge? Each building made in a certain period in a way represents a degree of refinement compared to its predecessors. Better materials, better methods. Buildings in general cannot be "cleaned up" the way code can, where "cruft" today was yesterday's conservative design.

    Read a book about the differences in the construction of the World Trade Centers versus the Empire State Building, for example (the WTC has sibling buildings still around using the same techniques, such as the Aon [nee Amoco] Building in Chicago)...

    1. Re:Cruft in engineering... by Anonymous Coward · · Score: 0

      You mean "nee Standard Oil"

    2. Re:Cruft in engineering... by epyT-R · · Score: 2

      or, today's conservative design is yesterday's+cruft added by redundant bloat in managed runtimes that're already available from the host OS. this happens when programmers graduate and take their professors' ivory tower vacuum 'everything should be portable/who cares about performance/efficiency computers are so fast anyway' mentality with them to their employers.

    3. Re:Cruft in engineering... by porges · · Score: 1

      The building, not the company.

  17. Heijunka by pcwhalen · · Score: 1

    The issue is similar to the Japanese concept of "heijunka." http://en.wikipedia.org/wiki/Production_leveling
    Pressure for speed of production of software vs. quality of product in speed and lack of bugs demand compromise. No one will use your software if you get beat to market by the competition. No one will buy your product if it's unreliable.

    --
    Pay no attention to the man behind the curtain with all your metadata.
  18. This happens in other disciplines. by tragedy · · Score: 4, Interesting

    The quoted section in the summary asks if we could imagine this in other engineering disciplines. As the rest of the summary points out, it happens all the time in microchips. It also happens a lot in civil engineering, including bridge building. Removing things takes work. Unless there's work to be saved by doing it, or some way to profit from selling what's removed as scrap or it's a safety issue to leave it most engineers won't remove old parts of a structure. Consider underground pipes. How often are they removed when they're replaced? If the new ones are being laid down where the old ones went, they'll be replaced. Otherwise, 90% of the time they'll just leave the old ones there. Same goes for just about everything. Old installations of any kind are full of stuff that no longer serves any purpose. Brackets and supports for heavy equipment that isn't used anymore, old wiring and panels, concrete slabs that something mystery object used to sit on, etc. When was the last time you saw anyone take away some 30 ton piece of equipment then pay more money to have the floor where it used to sit un-reinforced? Now, sometimes they do. Usually it's when the place is being sold and the new owners are re-modelling. Other times the owners do decide to do a major cleanup. That's exactly what's being done here with libreoffice. Makes it no different than any other engineering discipline then.

    Incidentally, if it's truly "dead" code, then it shouldn't actually be compiled, so it's not like the bridge engineer left in a bunch of extra girders, it's more like he's keeping addendum 6-c to revision 12b of the plans for section 3 in the same file cabinet as revision 13 rather than shifting it to a storage box and warehousing it.

    1. Re:This happens in other disciplines. by luther349 · · Score: 0

      very true stuff like old pipes etc they leave because it cost more to remove them. and they do not hurt anything staying.

    2. Re:This happens in other disciplines. by deodiaus2 · · Score: 2

      I once inherited a motor design which I was modifying. There was a strut going along the entire length. I was thinking of removing it, as I could not find a use for it. However, I wasn't sure if there might not be a manufacturing reason for it, or to provide additional structural support..
      So I left it in.
      Why, because 10 years ago, I was fired because I removed some venting slots on another generator. I removed them because they only provided minimal ventalation, but really interfered with the magnetic field distribution.

    3. Re:This happens in other disciplines. by Anonymous Coward · · Score: 5, Interesting

      A nice engineering example is the stone pylons at each end of the Sydney Harbour Bridge. They were built to support the cranes that were used in constructing the steel arch of the bridge. Since the bridge's completion they've served no structural purpose whatsover.

      As the parent poster suggests, it would have cost time and money to remove them. However, in bridge building they plan around that - a bit of extra effort was put in at the start and the pylons were designed and built in such a way that they looked good after the bridge was finished. They were left in place as a feature of the completed structure and, as they were built in sandstone, they do a reasonably good job of making the bridge work visually with the feel of the historic precint beneath the southern end of it.

      Dead code rarely adds anything to the aesthetics of software.

    4. Re:This happens in other disciplines. by thegarbz · · Score: 1

      This happens in all facets of engineering, not just civil structures. Go into any oil refinery that's more than 10 years old and you may find whole units left in place filled with nitrogen as it's too costly to remove.

      The only time unused stuff is cleaned up in the engineering world is if the realestate becomes valuable, or if it is mandated to by some safety / environmental code.

    5. Re:This happens in other disciplines. by FienX · · Score: 3, Informative

      I've worked on enterprise asset management systems in a number of different industries including electrical utilities, natural gas pipelines, and military. In almost every company they've had some variant of an "abandoned in place" asset status. In cases like power plants, trying to remove a single cable from a series of cable trays or raceways is rarely, if ever, worth the effort and risk. Some cable trays have dozens of cables (and I'm not talking cat5) in them, sometimes half of which are "dead" but removing those from the middle of a stack of hot cables in a working power plant doesn't have much of an ROI.

    6. Re:This happens in other disciplines. by Nethead · · Score: 4, Informative

      Ever been in the telco closets of a 50 year old office building? Old 9600 baud modems still powered up and connected to 66 blocks, old DS0 smartjacks with red lights, all next to Cat5 and fiber cross connects.

      Look above the drop ceiling of an old department store store sometime and gander at all the serial cable wire that is covered by the Token Ring wire covered by the 10base5 wire that is covered by the ThinNet wire that is covered by the Cat5 wire that is covered by the fiber ducts. All that tangled in with the old 25 pair telco wire.

      If it's not on your work order, you don't touch it.

      --
      -- I have a private email server in my basement.
    7. Re:This happens in other disciplines. by HappyEngineer · · Score: 1

      Then why did they fire you?

    8. Re:This happens in other disciplines. by Anonymous Coward · · Score: 0

      A compiler cannot throw out all dead code. Otherwise it would be able to solve the halting problem.

    9. Re:This happens in other disciplines. by Anonymous Coward · · Score: 0

      He stole money.

    10. Re:This happens in other disciplines. by rmstar · · Score: 1

      Incidentally, if it's truly "dead" code, then it shouldn't actually be compiled, so it's not like the bridge engineer left in a bunch of extra girders, it's more like he's keeping addendum 6-c to revision 12b of the plans for section 3 in the same file cabinet as revision 13 rather than shifting it to a storage box and warehousing it.

      Fun anecdote: In the building where I have my office, there used to be chemistry labs. They have been gone for at least fifteen years, yet we have the fire extinguishing infrastructure still in place. Twice a year a couple of engineers drop by and inspect everything, replacing old parts and stuff. The building next to it is identical in structure, but was offices all the time, and thus has nothing of the sort.

      That amounts to dead code that is still being run.

    11. Re:This happens in other disciplines. by Anonymous Coward · · Score: 4, Interesting

      We are currently preparing to move to another office building in another town.

      Our old premises are just like you describe. Build in 1964.
      Not counting anything else: There is 600 kilometer of Cat5e cabling in the building-complex. (I was involved in the Coax -> Cat5e upgrade back in '97. Still remember some details.)

      Actually it is a good thing.
      The recycle value of the wiring is more than the value of the building and the grounds.

      With todays fucked up real-estate market for office buildings we couldn't sell the old location to anybody.
      But because of the recycle value we had no trouble selling the entire site to a demolition company.

      Win-win for everybody:
      We get money for what is basically an unsellable building-complex.
      They will break it down and recycle it. Gives them about a year of guaranteed work and a reasonable profit when due to the recession their business is at an all time low.
      Afterwards they will sell the cleared grounds to the City Councel who are desperate to get a reasonably priced area of land at the edge of the city-center by 2014 so they can build a new City hospital. (The current hospital is on land not owned by the City, The contracts end in 2016 and can not be renewed because that would require a re-check of the environmental status of the grounds and everybody knows there is pollution there. That's wasn't an issue in 1986 when the old hospital was build, but new legislation passed in 2008 making it an issue now.)
       

    12. Re:This happens in other disciplines. by thegarbz · · Score: 2

      I know what you mean. The plant I work at currently has had a method of cut and cap for old decommission / damaged and irreparable cables. They were historically buried in the ground for some 500 motors on site.

      Now we have more failing cables and the ground is full. Actually not only is the ground full but so are the switchroom entries. The engineering behind the infrastructure going in to run cables (some of them as big as 240mm^2) is amazing. Cable trays are no longer installed by electrical contractors but by civil contractors with some detailed load-baring calculations and foundation supports.

      Some companies really screw themselves.

    13. Re:This happens in other disciplines. by Anonymous Coward · · Score: 2, Interesting

      Interesting story, but Wikipedia suggests otherwise (http://en.wikipedia.org/wiki/Sydney_Harbour_Bridge). That article indicates that the cranes actually were supported by the arch itself, and that the pylons were only added after the fact: "They were included to provide a frame for the arch panels and to give better visual balance to the bridge. The pylons were not part of the original design, and were only added to allay public concern about the structural integrity of the bridge." The arch and deck were finished in June 1931, and the pylons weren't even started until July of that year.

    14. Re:This happens in other disciplines. by Brian+Feldman · · Score: 1

      Don't you think that in the event of a fire, it may have paid off to keep the system intact anyway?

      --
      Brian Fundakowski Feldman
    15. Re:This happens in other disciplines. by tragedy · · Score: 1

      Because he made a change to the generator that may have seriously altered its performance after looking at some vents, concluding they weren't needed based on only considering their airflow characteristics, but not other important characteristics. This is a very good point. Sometimes you don't remove old stuff not only because it's extra work for no real benefit, but also because your understanding of the entire system may not be an absolute, end to end one.

    16. Re:This happens in other disciplines. by tragedy · · Score: 1

      That's not how the halting problem works. The halting problem is about whether you can create an algorithm to take an arbitrary algorithm and a set of inputs and determine, in all cases, if the algorithm will ever halt. We are pretty much dead certain that you can't do that. That doesn't mean that you can't create an algorithm that will take an arbitrary algorithm and a set of inputs (or the set of all possible inputs) and determine, in _some_ cases, if the algorithm will ever halt. The halting problem does say that there are cases where you won't be able to determine whether or not an object is ever used, but it certainly doesn't say that there are no cases where you can. For objects that are never used, regardless of input, it's not even a remotely intractable problem to construct a tree to determine if it is called or used by any other objects and if those objects are called or used, etc. There's a boatload of special cases where it's trivial to tell if parts of some algorithm will ever be reached.

    17. Re:This happens in other disciplines. by tragedy · · Score: 1

      For a chem lab, good chance it's a halon system. If that goes off, you might be better off taking your chances with the fire.

    18. Re:This happens in other disciplines. by rmstar · · Score: 1

      He is still right in the sense that proving that some code is dead might not be possible for the compiler. Not just beacause it can be arbitrarily hard, but because it could be in fact undecidable. You are right in that many interesting cases can be cached by good heuristics.

    19. Re:This happens in other disciplines. by tragedy · · Score: 1

      He's right that dead code can exist that a compiler cannot detect. That's pretty irrelevant in the real world where the majority of "dead" code (specifically, the kind TFA was talking about) is trivial to detect because it's never called by anything. That's what I meant by "truly ""dead"" code" in my original post, as opposed to the conditionally dead code he was talking about. Essentially, he's not right at all because you can't call the code he's talking about "dead code" because, according to the halting problem, whether it's dead or not is theoretically un-knowable. There's code you can tell is unreachable, which you can call "dead code", and code that you can't tell is unreachable, which you can't call "dead code" unless you find a way to determine if it's unreachable or not, at which point you can add that technique to a compiler.

  19. AOL by shtychkn · · Score: 1

    If you removed all of the dead code from AOL you'd have nothing left...

    1. Re:AOL by Anonymous Coward · · Score: 0

      wtf is aol?

  20. Regular security reviews remove this problem by Anonymous Coward · · Score: 1

    I used to work at a large, evil company that did a complete review every release of every single line of code in their products, requiring at least two and sometimes four (for critical areas) devs to sign off on it. Let me tell you; there was _no_ dead code.

  21. Not to mention the human genome itself. by Freddybear · · Score: 5, Interesting

    Human DNA (and just about every other species as well) is full of things like inactive duplicate genes (some with slight alterations), pieces of old retroviruses, and other mutations and replication errors that have been "commented out". Plus a whole lot of sequences which we don't know what they're good for yet.

  22. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 5, Insightful

    I've seen chemical plants built with millions of dollars worth of unnecessary piping and valves, because the project timeframe meant that it was cheaper to install extra connections that might never be used and save engineering time than waste time re-engineering it.

    If removing unnecessary items can save thirty thousand dollars (say) at the cost of three days, removing the cruft is only worth it if the delay costs less than ten thousand a day.

  23. Re:Worked Well? by Anonymous Coward · · Score: 1, Interesting

    Stop opening Word documents with non-MS software and you won't have any problem. Other software are more likely the reason of incompatibilities. I use MS-Word every day and I have not seen such problems since Office 2003.

  24. Re:Then why is it still called LibreOffice? by Squiddie · · Score: 1

    You know the Germans always make good stuff.

  25. Thousands, if only... by Anonymous Coward · · Score: 0

    Orders of magnitude :(

  26. Re:Worked Well? by Anonymous Coward · · Score: 0

    A name change doesn't make it any more stable. It's still the same old codebase.

  27. Room for improvement? by hcs_$reboot · · Score: 1
    From summary:

    Exciting to think that LibreOffice has quite so much room for improvement

    Sorry but removing the dead code is not really "room for improvement". It's rather "fix a code that lack(ed) a proper project management".

    --
    Slashdot, fix the reply notifications... You won't get away with it...
    1. Re:Room for improvement? by Anonymous Coward · · Score: 0

      From summary:

      Exciting to think that LibreOffice has quite so much room for improvement

      Sorry but removing the dead code is not really "room for improvement". It's rather "fix a code that lack(ed) a proper project management".

      so fixing is not improving?

    2. Re:Room for improvement? by fatphil · · Score: 1

      Making less shit is still improving.

      --
      Also FatPhil on SoylentNews, id 863
  28. Smaller File Size... by Anonymous Coward · · Score: 0

    Well this completely explains my confusion over why the latest release of LibreOffice was smaller than the older version.

  29. Re:Worked Well? by pwizard2 · · Score: 2

    LibreOffice/OpenOffice.org Writer has usually been good at handling traditional .doc files. (OO got much better when early 2.x versions came out) I'm usually able to share these documents with Word users and make changes without any major issues.

    Docx is a whole different story. I recently opened a moderately complicated docx in OO Writer. This document had one of those auto-generated table of contents that corresponded to section headings, several embedded pictures, a few tables, and lots of lists. While Writer would let me see what was in the document, the editing capability was completely shot to hell. Lists were broken, the table of contents was a read-only object that Writer wouldn't (or couldn't) let me change, style/formatting was glitchy in general, and track changes was broken. Converting that document to another format just made things worse. Don't even think of using OO/LO with Docx files unless the only thing you have to do is read them.

    --
    "It is a denial of justice not to stretch out a helping hand to the fallen; that is the common right of humanity."
  30. Re:Not at all. I've had a house built. by theManInTheYellowHat · · Score: 2

    Except building a house is a one time endeavor. A better analogy would be to build a house on the foundation of another house and then remodel it a dozen times and then add on a few additions. Soon there after divorce your spouse and find another to guide the new additions and find another site upon which you can move that house to and hopefully not have to deal with that awful foundation.

  31. 80286 microcode by Anonymous Coward · · Score: 2, Interesting

    Intel's microcode to support 16-bit protected mode became obsolete as soon as the 80386 was released, but they had to support it for backward compatibility, in case someone tried to install Windows 3.0 on an IBM AT clone, for instance. Probably that microcode has been carried forward ever since. Also, there are a lot of CISC instructions such as SCAS* with the "REP" prefix which were heavily used in assembly language in the eighties, but which are now deprecated and typically slower than the RISC-style replacements.

  32. Re:Not at all. I've had a house built. by Belial6 · · Score: 4, Funny

    If it is a house that I have owned, it would be Pez dispensers. Whenever we do remodeling, we make a point to slip a pez despenser into the walls. My wife and I figure that some day a long time in the future, someone will have a mildly amusing story.

  33. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    And then rebuild it from scratch with new age materials.

  34. Re:Worked Well? by ColdWetDog · · Score: 4, Funny

    Of course, that behavior is quite similar to what happens when you open the moderately complex docx document in Word.

    --
    Faster! Faster! Faster would be better!
  35. Re:Not at all. I've had a house built. by angelbar · · Score: 0

    Dont understand... Dont you ave one with a car?..

    --
    -no sig today-
  36. Re:Worked Well? by Anonymous Coward · · Score: 0

    try resizing the main window using the upper left corner...

  37. KLOCs by jcfandino · · Score: 1

    This guy should be fired. Look at his productivity metrics results, Negative!

    1. Re:KLOCs by tlhIngan · · Score: 2

      This guy should be fired. Look at his productivity metrics results, Negative!

      Has happened before. Bill Atkinson wrote -2000 lines of code whilst working on a graphics toolbox at Apple.

  38. Don't know about LibreOffice by rsilvergun · · Score: 4, Informative

    but recent (3.x) versions of OpenOffice ate my kids documents. It really sucked. From what I can gather it's a known bug in the document recovery module that hasn't been fixed to this day. The program crashes, writes a blank document out as the 'recover' document, then cheerfully overwrites all your original file and any of the automatically made backups. I suppose that somewhere along the line there was some user error. My kid probably could have said 'no' to something and stopped the whole mess. But seriously, she shouldn't have too. I've got a 500 frickin' gig drive in her machine. The biggest word doc I've ever seen in my life was 5 megs (mostly pictures). Why the hell do we still delete shit? Just make a huge undo buffer or something. I've got half a fscking terabyte. Come on OO.org, just use it already!

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    1. Re:Don't know about LibreOffice by Anonymous Coward · · Score: 0

      Be careful what you wish for, you just might get it.

      Captcha: blowup

    2. Re:Don't know about LibreOffice by cheaphomemadeacid · · Score: 2, Insightful

      So in a bright moment of usefullness i actually posted your complaint as an 'enhancement' bug report on libreoffice, probably more useful than posting it on slashdot ;P ref: https://bugs.freedesktop.org/show_bug.cgi?id=44780

    3. Re:Don't know about LibreOffice by zippthorne · · Score: 1

      From now on, It'll also be your fault for not having backups:

      Windows 7
      Windows Vista
      Windows XP
      OS X (leopard, snow leopard, Lion*)
      Linux
      Linux
      Linux...

      (some of the linux methods will also work on OS X and Windows....)

      *Lion doesn't even require a separate partition or disk. Of course, it will not protect you against disk failure in that case.

      --
      Can you be Even More Awesome?!
    4. Re:Don't know about LibreOffice by dotancohen · · Score: 1

      Why the hell do we still delete shit? Just make a huge undo buffer or something. I've got half a fscking terabyte. Come on OO.org, just use it already!

      Because it is not up to the application to do your backups for you. Maybe a self-backing up filesystem would be nice, though. I understand that OS-X and Windows 7 filesystems do have that feature.

      --
      It is dangerous to be right when the government is wrong.
    5. Re:Don't know about LibreOffice by bmo · · Score: 1

      >Maybe a self-backing up filesystem would be nice, though. I understand that OS-X and Windows 7 filesystems do have that feature.

      No, that's not what he's asking for and that's not what OSX and Win7 do.

      He's asking for a versioning filesystem, like what happens in VMS.

      Files-11 (RSX-11 and OpenVMS)
      Main article: Files-11

      A powerful example of a file versioning system is built into the RSX-11 and OpenVMS operating system from Digital Equipment Corporation. In essence, whenever an application opens a file for writing, the file system automatically creates a new instance of the file, with a version number appended to the name. Version numbers start at 1 and count upward as new instances of a file are created. When an application opens a file for reading, it can either specify the exact file name including version number, or just the file name without the version number, in which case the most recent instance of the file is opened. The "purge" DCL/CCL command can be used at any time to manage the number of versions in a specific directory. By default, all but the highest numbered versions of all files in the current directory will be deleted; this behavior can be overridden with the /keep=n switch and/or by specifying directory path(s) and/or filename patterns. VMS systems are often scripted to purge user directories on a regular schedule; this is sometimes misconstrued by end-users as a property of the versioning system.

      I am still waiting for this to appear on desktop machines, after first encountering it 25 years ago on a VAX.

      --
      BMO

    6. Re:Don't know about LibreOffice by Anonymous Coward · · Score: 0

      So like System Restore but thought out properly.

    7. Re:Don't know about LibreOffice by bmo · · Score: 1

      It is so much more than System Restore.

      It totally changes the way you deal with files.

      The closest thing I can think of is if you put your home directory in a version control system.

      --
      BMO

    8. Re:Don't know about LibreOffice by dotancohen · · Score: 1

      I see, thanks!

      --
      It is dangerous to be right when the government is wrong.
  39. Re:Not at all. I've had a house built. by theNAM666 · · Score: 3, Informative

    If you have newspaper or other similar material in your walls, which wasn't processed and designed as insulting filler, I have one word for you: mold.

    You'd better know.

  40. Re:Worked Well? by hairyfeet · · Score: 3, Interesting

    Actually I've found LO/MS Office to be pretty much mutually exclusive when it comes to any complexity of formatting. This is why i give it to home users that don't have kids or who just has young kids but not those with HS or college kids because if the teacher is using MS Office anything they give to you will be word salad in LO and anything you give to them will be word salad in MS office. And why does so many LO users find that hard to accept? they are trying to reverse engineer a binary format without jack shit for source code to look at, the fact they can open up as many as they can is a miracle and they should be applauded for it. But you take a complex doc with headers, footers, tables, etc and while i've had no problem opening that in any version of MS Office I have from 2k-2K7 that same doc will take a big old shit in LO. by the same token i make the same doc in LO with the same headers, footers, and tables and MS office will either crash or output gibberish. Does that make one better than the other? noooo, it just makes them incompatible.

    That is why I give away LO to home users like I said but don't even mention it to SOHOs and SMBs because if you are having to share with MS Office users it can quickly become a mess. So I'd say it is just using the right tool for the job, LO when its home users who'll mainly be printing or not sharing with businesses, MS office for business and HS or above education.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  41. Re:Not at all. I've had a house built. by Grishnakh · · Score: 4, Insightful

    No, a better analogy is to build a house (full of extra materials as the parent said), and then use a giant replicator machine to mass-produce the house, almost instantly, and create thousands and thousands of new homes using that house as the basis. The wasted material in the one house is bad, but not that bad because it's one house, and it takes extra time and labor to do it more efficiently. But multiplied across thousands of identical copies, that wasted material adds up a lot. Plus, it's inefficient and you could have a better-performing house by doing a better job with the small details (better at energy efficiency for example). The slight increase in energy efficiency with that one house, realized by spending a bunch of extra time and effort removing wasted materials and doing a better job with various small details (like making sure the house wrap is applied extremely well rather being hurried and missing some staples in important places), won't amount to much with just the one house. However, multiplied across many thousands of houses, those energy savings add up to a lot.

    The fact that software is easily and quickly replicated with perfect precision and little or no effort or time really makes it hard to make good analogies for it without resorting to Star Trek-style replicators; it's the only technology we have that's like that. And because it can be and is copied so easily, very different dynamics apply to it than to many other fields of endeavor.

  42. Re:Not at all. I've had a house built. by Grishnakh · · Score: 5, Funny

    If you have newspaper or other similar material in your walls, which wasn't processed and designed as insulting filler

    What material in your walls could be more insulting than newspaper?

  43. Re:Not at all. I've had a house built. by dokc · · Score: 2

    A lot of European cities were rebuilt on the same place over and over again, after wars, natural catastrophes, crazy rulers,...
    There are layers and layers of building foundations and walls under the modern (and especially not so modern) buildings. It's not uncommon constructions to be stopped for excavations to take place.

    --
    In love, war and slashdot discussions, everything is allowed.
  44. Re:Then why is it still called LibreOffice? by Grishnakh · · Score: 1, Offtopic

    Not always. Aren't the Germans huge fans of homeopathy?

    Some of them also have very questionable taste in style. Just look at some of their wacky-looking cars; compare a top-of-the-line Porsche to any Ferrari, for instance. The Italians have been the masters of automobiles as art for quite some time, but Porsches and BMWs usually have very bad proportions. BMW's sedans look good, but every time they try to make a sports car it just looks weird, and they do much better when they stick to making the engine and supplying it to someone else, like with the McLaren F1. A lot of VWs have rather questionable styling too. But the Mercedes cars are a giant exception to all this; those are some of the best-looking cars out there, short of the Ferraris. I wonder if the Germans styling those cars come from a different region of the country, or if they outsource their design.

  45. Re:Worked Well? by dokc · · Score: 3, Insightful

    "WORKSFORME"

    The most unhelpful response to a bug report ever.

    But very helpful response on trolling.

    --
    In love, war and slashdot discussions, everything is allowed.
  46. Re:Not at all. I've had a house built. by theNAM666 · · Score: 4, Funny

    Well, there are a variety of fiber, composite and other materials with higher R-factors per volume, but that's beside the point.

    Newspaper as in processed recycled newspaper bought as insulation from Home Depot or the equivalent is one thing. Stuffing newspapers into your wall after receiving them in the post and reading them (a common practice) is quite another. The latter retains moisture and can lead to mold, rotting and structural damage, just to start with the most obvious problems.

  47. Software developer != Bridge building by Anonymous Coward · · Score: 0

    Why the analogy of bridge building - they are not even close.

    If I want to build a bridge I would use a plan, that someone already created and guess what the bridge would not change afterward. If the bridge did not meet your needs you would build a new one.

    Building a bridge is like installing Windows XP, in both cases the work has been done already by a previous person. You are just coping it.

    http://www.developerdotstar.com/mag/articles/reeves_design_main.html
    http://blogs.msdn.com/b/steverowe/archive/2005/02/28/381910.aspx

    1. Re:Software developer != Bridge building by Whiteox · · Score: 1

      It should've been a car analogy.
      Compare the Ariel Atom to let's say a Mercedes 600.

      --
      Don't be apathetic. Procrastinate!
  48. Unused memory is wasted memory by bonch · · Score: 1, Offtopic

    Unused memory is wasted memory. Windows 7 intentionally uses as much memory as possible if it's available rather than paging during application use. I wouldn't be surprised if competing operating systems like OS X behaved similarly. If something ends up needing that memory, the operating system will happily give it away. It's silly that your argument constantly reappears in various online forums, because it signifies a lack of knowledge about how modern memory management actually works.

    1. Re:Unused memory is wasted memory by unapersson · · Score: 1

      Other operating systems have been doing that for much longer than Windows, when Windows Vista/7 started doing that it was just catching up with the status quo.

    2. Re:Unused memory is wasted memory by Macthorpe · · Score: 1

      Tell GP that. Apparently using all that RAM is the Worst Thing Ever(tm).

      --
      "It does not do to leave a live dragon out of your calculations, if you live near him." - Tolkien
  49. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0
  50. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 3, Insightful

    "Wooooosh"

  51. Re:Worked Well? by Anonymous Coward · · Score: 1

    I see your anecdote and raise you another - I use recent editions of MS-Word every day too, and often see exactly the problem the GP post is alluding to. I don't open Word documents with non-MS software, and nor do my team members.

    I usually ask the sender of the document to send it through again in another format. I hadn't thought of using LibreOffice to open the offending file instead. Thanks GP :)

  52. obligatory by Anonymous Coward · · Score: 0

    NO-body expects the Spa... oh, bugger.

  53. Re:Not at all. I've had a house built. by rgmoore · · Score: 3, Interesting

    Building a house isn't a one-time endeavor. Much like code, houses are never 100% finished. They're frequently repaired and less frequently remodeled, renovated, or expanded. If you look at photographs of the same house over the span of a century or more, it's sometimes hard to believe that the final version is the same building as the original. And when people work on their houses, they usually go for the most cost effective approach, even if that means leaving no longer used stuff in place because it would be more expensive to rip it out. Look inside the wall of an old house, and you'll be amazed at the stuff you find.

    --

    There's no point in questioning authority if you aren't going to listen to the answers.

  54. Re:Worked Well? by Daengbo · · Score: 1

    The point of TFA is that ... no ... it's not the same codebase anymore. Not by a long shot.

  55. Re:Worked Well? by Demonoid-Penguin · · Score: 1

    LIbreOffice hasn't been OO in well over a year. But nice try with the trolling.

    It also includes a fair bit of Go-oo. That and the work to remove Java means it's a substantially different code base.

    It still has a ways to go before it can do what OpenOffice.org can do - and now that OpenOffice.org is under Apache I expect OO will continue to improve (also).

  56. Re:Worked Well? by Anonymous Coward · · Score: 0

    If people going to mod they should do so fairly. This is no less flamebait than it's parent. modding isn't supposed to be a way of picking a side.

  57. Re:Not at all. I've had a house built. by adolf · · Score: 3, Interesting

    That's nothing. Whoever built the wall that exists between my office and the dining room left inside a leather dog collar and a half-dozen pork (I think) rib bones.

    We've also found a cast iron floor lamp inside of a wall, as well as several hundred copies of the Saturday Evening Post that are positively impossible to drill through.

    Pez dispensers seem so...basic.

  58. Re:Then why is it still called LibreOffice? by Anonymous Coward · · Score: 0

    Yeah, like SAP.

    Oh wait...

  59. Re:Worked Well? by HJED · · Score: 1

    Also LibreOffice often seems to crash when editing docx formatted documents, however recent versions of MS Office open odt documents quite well so I find it easier to save everything it odt.

    --
    null
  60. Re:Worked Well? by HJED · · Score: 1

    Whilst I agree with you on the docx side, MS Office seems to work with odt documents quite well unless you use complex styles in OO (and most users won't/shouldn't) in which case you have to run a document recover when you open it in MS Office, but usually the output is still fine just with some missing features.

    --
    null
  61. Re:Not at all. I've had a house built. by AmiMoJo · · Score: 1

    The difference with a house is that material is expensive and energy lost through poor insulation or construction is expensive. Bandwidth and memory are both pretty cheap, and with computers wasting memory tends to result in slower operation which is much harder to measure in monetary terms.

    Consider this though. Would we have pretty high quality and very complex office software by now if we were not able to be a bit wasteful? Hard to say but I'd guess not, at least not for free. Still, I very much welcome code cleanup, wish I had the time to help.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  62. Your programmers suck? by junglebeast · · Score: 2

    "...and it probably isn't because the code base is especially bad."

    Yes, it does mean that. Thousands of lines of deprecated code implies it was written in a sloppy and disorganized way and this is not only an indicator but, I would argue, a definition, of a terrible code base.

  63. Re:Then why is it still called LibreOffice? by Anonymous Coward · · Score: 0

    Mercedes is from Stuttgart, south of Germany, closer to Italy. Not that I believe it matters.

  64. Re:Worked Well? by Anonymous Coward · · Score: 0

    Terrible excuse for MS software. Programs are expected to accept any kind of input properly.

  65. Re:Not at all. I've had a house built. by Grishnakh · · Score: 2

    I find your reply insulting.

  66. Re:Not at all. I've had a house built. by Grishnakh · · Score: 3, Informative

    Actually, building materials (at least here in the USA) are dirt cheap. Labor by far is the biggest factor in a house's cost. There are some exceptions, like appliances, cabinets, granite countertops, plumbing fixtures, etc., but things like framing, drywall, nails and other fasteners, even electrical outlets (except the GFCI ones) are all dirt cheap. That's why there's waste; the contractor doesn't care if his workers waste $2 worth of materials as long as they're fast. However, when the plumbers are putting in expensive polished faucets, they're probably more careful since replacing one of those is worth several hours of labor.

  67. Re:Then why is it still called LibreOffice? by Grishnakh · · Score: 1

    Something matters, because there's (IMO) an enormous difference between the styling of Mercedes cars and BMW cars; it could just be company culture, but it could also be regional differences. After all, not that far away is France, home to several automakers, and I don't think anyone will deny that French cars have always had a very different design aesthetic from any German makes. Furthermore, there are cultural and linguistic differences between different parts of Germany. I'm just wondering if that's a factor in the differences between the various German automakers.

  68. Re:Not at all. I've had a house built. by mfraz74 · · Score: 2

    The factory where I work which must be over 60 years old, there are redundant cables and pipes everywhere. It would cost far too much money to figure out what is redundant and then remove it without disrupting anything else.

  69. Re:Not at all. I've had a house built. by Richard_at_work · · Score: 1

    We remodelled our bathroom, and when removing the ancient bath we discovered two sealed packs of cigarettes from the 1920s.

    Sold them to a collector for £3000 each.

    Funny what you find, isn't it?

  70. Re:Not at all. I've had a house built. by wisty · · Score: 1

    > pork (I hope) rib bones

    FTFY

  71. Re:Not at all. I've had a house built. by roman_mir · · Score: 1

    well, at least Pez dispenser is not a dirty diaper.

  72. In other domains by Anonymous Coward · · Score: 0

    When the local city gets bus-sheds, while having to put up with commercials. There are many situations where you are given something for "free" and have to put up with extra stuff just in addition to what you wanted. I hear there are actually people who watch commercial breaks in order to see things they want on their television. Nothing is free, and you pay one way or another.

    But is Libreoffice that bloated? The unused code might as well have been unused features. Compare the install-base of M$ Office and LibreOffice and the relative size of the excess becomes less relevant.

    That being said, there are some things that OSS can do better. One thing is that there should be groups that tests their GUI. Another is groups that document features properly. The documentation of OSS has gotten a lot better since Youtube came along. Now, people are posting guides to software fairly often. But, there is still need for a coder community that includes other groups better. Perhaps even get some graphic talents along for the ride? Perhaps somebody who knows this stuff should do a Youtube vid about OSS project management?

  73. Wait! You used QA and staging systems? by Colin+Smith · · Score: 2

    QA? ...

    Holy fuck. There's light.

     

    --
    Deleted
  74. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    Unless you're talking about removing inefficient structures in frameworks, I fail to see how that would decrease build times. That said, I haven't developed land before but I presume there'd be a frightening amount of decrepit function in some of Europe's catacombs.

  75. nucliair plant by leuk_he · · Score: 1

    Now image this being a nuclair plant. On one hand one does want extra high engineering conditions applied. An extra pipe will cost a lot because of this.

    On the other hand, removing cruft might cost very much. It might be low level radioactive, which makes it more expensive to get rid of.

  76. Re:Not at all. I've had a house built. by Hognoxious · · Score: 2

    You've probably got a dead cat. Sometimes they get stuck between the layers. In old houses they were sometimes put there intentionally as protection against witches.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  77. Re:Not at all. I've had a house built. by chilvence · · Score: 1

    Newspaper is actually pretty handy - if you need to fill a hole in a hollow wall, you could end up pushing a kilo or two of filler in there before it starts to build up, but if you just stuff it full of newspaper first, you only need as much as you would to cover the surface. It might seem like a bodge, but really it just saves you materials. It can also be used to stop the draft from under the floorboards underneath a carpet. I've worked on houses that get wrecked by students every single year, and to be perfectly frank, if you have to bodge something up to make it look clean, it doesn't matter, because next year it will invariably be trashed again.

  78. The path of least resistance? by Anonymous Coward · · Score: 0

    It is always tempting to say others' code is "cruft" and unused. Removing features and marking them "obsolete" is oh so innovative and _daring_!

    But the reality is dull. OO/LibreOffice severely lag behind the MS version in performance (I'm running OO 3.3 and MS Office 2003). When I'm loading even a normal-sized Excel workbook (20 to 30 sheets with a lot of calculations in them), OO hangs... MSO doesn't.
    Same for long Word documents. I use OO to write memos, but MSO is for longer works (unless I fancy to use LyX/LaTeX for the purpose).

    The morale of the story is anybody can delete somebody else's code, but it takes real talent to improve the complexity of an algorithm. Microsoft at least used to set the right priorities in development (until a decade ago, I reckon :)

    1. Re:The path of least resistance? by David+Gerard · · Score: 1

      The Excel loading speed will be a lot better in 3.5, which should be out next month.

      --
      http://rocknerd.co.uk
  79. Re:Then why is it still called LibreOffice? by Anonymous Coward · · Score: 0

    No, regional differences on that scale do not affect car companies that operate globally. These companies would be perfectly able to copy, say, American car designs, but they just won't do it. Audi, BMW and Mercedes are rather treated as brands by the respective car designers, which means that the cars must each have certain recognizable elements and an overall design that is related to other past and current cars that they built. Plus, different styles cater to different people. So it's both diversification and brand recognition at work there.

  80. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 3, Interesting

    Good analogy.

    But Libreoffice still uses Java. I don't see that fitting into your analogy, because the Java dependency really has to be removed. It was put there only because OpenOffice was in the hands of Sun. Now Java is in the hands of Oracle. The Java dependency has to go.

  81. Re:Not at all. I've had a house built. by Anne+Thwacks · · Score: 1

    Yes - when I bought my last car, I fitted a new stereo. When I fitted the speakers, inside the doors were three old speakers, loads of wire, some beer cans, a screwdriver and a broken pair of pliers. I did a thorough search of the rest of the car and found a lot of spare wires and coins under the rear seat, but no cocaine

    --
    Sent from my ASR33 using ASCII
  82. Automated code cleanup? by AAWood · · Score: 1

    Wait; so they've had half their people working for half a year to remove code which isn't used anymore?

    (Disclaimer here; I'm an occasional, hobbyist programmer at best. It's entirely possible that I'm missing something here, and if I am do please enlighten me.)

    I wonder why this couldn't be automated. You make a program that runs through and makes a big list of every function in the source, deletes functions that aren't called anywhere, repeat a few times to deal with chains of unused functions, and you're done. It seems like exactly the kind of task a computer is designed to do. Have a few flags to tell it whether to treat commented-out functions calls as valid so you don't wind up removing the alternate version of routines while trying out experimental new versions, and whether to actively delete the functions or just feed them back to the programmers to examine themselves, and you're finished. If you really want to be clever, have it look for calls that technically exist, but due to the logic involved would never get invoked in any circumstances.

    I'm not even sure it'd be fair to say it would take too long to develop such a tool. After all, once it's made for a particular language, then it's done; everyone can take advantage of it, and in a few years time when you decide you need to do another grand cleanup, no need to take up six months and half your team for the task.

    Now don't get me wrong here; code optimisation is a different beast, and there's far more to maintaining a tidy code base than this. But we're explicitly talking about a project to just remove unused code here. Do we really need to get those many eyes all focused on this?

    1. Re:Automated code cleanup? by MrNthDegree · · Score: 1

      "Failing that, why not run Caolan's callcatcher over your project to see which nooks and crannies are surplus to requirements. "

      From the original blogpost ;)

    2. Re:Automated code cleanup? by AAWood · · Score: 1

      Hey now, this is Slashdot, surely you can't expect me to RTFA? ;)

      See, that just raises further questions; so the tool exists, but rather than just run it on the whole project they're asking individuals to run it on their own code as they're going forward? Makes sense from this point on, but why spend the last 6 months... You know what, screw it, I'm sure it makes sense in context!

  83. Direct link by Curupira · · Score: 1

    Nice blogspam, but why don't we link to the original blog post from Michael Meeks (Libreoffice developer)?

  84. Re:Not at all. I've had a house built. by clickety6 · · Score: 1

    That's nothing. Last summer we has a wall taken down to extend the living room and we found Jimmy Hoffa inside it...

    --
    ----------------------------------- My Other Sig Is Hilarious -----------------------------------
  85. Re:Then why is it still called LibreOffice? by mwvdlee · · Score: 2

    The design aesthetics are probably different because they intentionally make it different.
    For most car brands, you can take the earliest cars and still see some of the design language reflected in the current models. In particular the front grills are usually easiest to recognize. This is done intentionally by the designers, even though nowadays car designers have no real connection to the brands; modern Lambourghini's are designed by a Dutch guy and Pininfarina (design studio for most of the Ferrari's) designs cars for other brands as well (i.e. Volvo, Peugeot, Ford).

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  86. Re:Not at all. I've had a house built. by Registered+Coward+v2 · · Score: 1

    I've seen chemical plants built with millions of dollars worth of unnecessary piping and valves, because the project timeframe meant that it was cheaper to install extra connections that might never be used and save engineering time than waste time re-engineering it.

    If removing unnecessary items can save thirty thousand dollars (say) at the cost of three days, removing the cruft is only worth it if the delay costs less than ten thousand a day.

    You're example is more along the lines of planning ahead to save money than leaving in stuff that is not used and is affecting performance. One company i worked fro, when they had a new office built, put in miles of cabling to met yet undefined connectivity needs because it is cheaper to buy the cable and install it before the walls go up than after.

    Now, if they ran new wire and the old wire impacted its ability to send signals at high speed due to some inductive interaction, then it's like the dead code - something in place that has no use but is affecting current performance.

    As you pointed out, in the end the decision is is the cost of removing the item worth the improvement we'll see?" With physical items, removal is also often driven by aesthetics; for example, once my deck supports were replaced I no longer wanted the temporary bracing left up simply because it look ugly, in this case the "cost" of looking tat an ugly deck was more than the real cost of removal of the temporary supports.

    With coding, we often don't "see" the dead code - new features are added and code adapted to make it work; but there is no apparent "extra" code left behind or now rendered unnecessary by the changes. Plus, searching for it is boring compared to adding something else so coders move on to the next thing. Once performance starts lagging, then someone may look to "optimize" the code; because the cost of the performance hit exceeds the cost of optimization.

    --
    I'm a consultant - I convert gibberish into cash-flow.
  87. Re:Worked Well? by mwvdlee · · Score: 2

    "WORKSFORME" is a perfectly helpful response to "ITDONTWORK".

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  88. Re:Not at all. I've had a house built. by Eunuchswear · · Score: 1

    Actually, building materials (at least here in the USA) are dirt cheap.

    Fucking well should be.

    I've seen houses in the US built of plastic! Fuckers were all slowly falling apart as the UV degraded the PVC. The fake window wooden shutters were riveted to the fake wooden walls.

    --
    Watch this Heartland Institute video
  89. Are you sure it's Pork bones??? by yet-another-lobbyist · · Score: 1

    ... or maybe they belong to the previous owner's "missing" spouse?

  90. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 1

    The fact that software is easily and quickly replicated with perfect precision and little or no effort or time really makes it hard to make good analogies for it without resorting to Star Trek-style replicators.

    Why not refer to biological systems? I wouldn't be too surprised if I have the code necessary for growing a tail hidden somewhere in my DNA, but last I checked it obviously wasn't being used. From what I understand, evolutionary processes as left to nature tend to leave a lot of cruft behind.

  91. Re:Worked Well? by hairyfeet · · Score: 1

    The problem friend is only 2K10 has support for ODT IIRC and you have NO way of knowing which version of MS Office the person you are sending that ODT to will have. Just in my family I have Office 2K on my netbook, 2K3 on my desktop and my oldest has 2K7 on his desktop and a copy of 2K10 his school gave him on his laptop. I have known businesses that have hung onto machines for lower positions like secretaries until literally the thing is about to die and often the software will be just as creaky, and with schools you have NO clue what the teacher will have.

    So while your theory would be sound if you could easily know what the other guy is running you don't and THAT is a serious problem when you have business or grades depending on it.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  92. Re:Not at all. I've had a house built. by kwark · · Score: 1

    Excavating, as in a archeaological.

  93. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    Under the false floors of data rooms across the world lie millions of miles of unused cable. Nobody is going to go in there and try to untangle them and risk disconnecting live cables.

  94. Re:Then why is it still called LibreOffice? by SteveFoerster · · Score: 1

    I don't think this is the answer you're looking for, since you don't like Porsche styling and they too are from Stuttgart.

    --
    Space game using normal deck of cards: http://BattleCards.org
  95. It often happens for a reason by Rambo+Tribble · · Score: 1

    In the unlikely event that the code being refactored is poorly documented, (ahem, ahem), a programmer who implements faster, more compact, shinier code to replace existing libraries may choose to leave the old libraries in place, (still poorly documented), to avoid breakage and meet deadline. It's more like cities being built upon the remains of their older selves, rather than having a faulty construction manifest.

  96. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    Actually an even better analogy was to use the car analogy...

  97. Re:Then why is it still called LibreOffice? by Anonymous Coward · · Score: 0

    Something matters, because there's (IMO) an enormous difference between the styling of Mercedes cars and BMW cars; it could just be company culture, but it could also be regional differences. After all, not that far away is France, home to several automakers, and I don't think anyone will deny that French cars have always had a very different design aesthetic from any German makes. Furthermore, there are cultural and linguistic differences between different parts of Germany. I'm just wondering if that's a factor in the differences between the various German automakers.

    Interesting, I've always thought the Mercedes to be one of the ugliest.
    But then I prefer pickups.

  98. String instructions ARE faster by Chemisor · · Score: 2

    The only people bashing CISC are sheltered academics who have never been out in the real world or have heard of benchmarks. On my Core i7, for example, the benchmarks show that string instructions usually are the fastest way to do things.

    A basic rep stos yields 25 GBps. So does the fastest recommended SSE method using movntps and prefetch. A RISC-style fill loop only manages 12 GBps. You can improve its performance by unrolling the loop four times, getting the same 25 GBps as a string instruction with a lot more code.

    With a copy, rep movsl and movsq gives 3.2 GBps. movsb gives 2.5. A RISC-style copy loop gives 3.2 GBps. The fastest SSE copy loop with movntps and prefetch gives 6.4 GBps, at the expense of code size.

    As you can see, for most applications it is a very good idea to use the string instructions. An SSE optimized copy may be useful if you're copying large blocks somewhere; otherwise don't bother. Outside tight loops, reducing code size will improve performance much more than directly trying to make it fast.

  99. Re:Not at all. I've had a house built. by K.+S.+Kyosuke · · Score: 2

    Bandwidth and memory are both pretty cheap

    I don't know what kind of computer without a memory hierarchy do you have, but my instruction caches haven't been exactly cheap.

    --
    Ezekiel 23:20
  100. Sturgeon's Law of Project Cleanup by Chemisor · · Score: 1

    In any project, 90% of code can be removed with no loss of functionality.

  101. Re:Not at all. I've had a house built. by K.+S.+Kyosuke · · Score: 3, Funny

    What material in your walls could be more insulting than newspaper?

    An immured scientologist proselytizer that once came to your house to annoy you, only to never leave your house alive again?

    --
    Ezekiel 23:20
  102. Re:Worked Well? by wvmarle · · Score: 1

    Can Office 2k open files saved in Office 2k10's default format? Having an older version of Word than the person sending you the file has always been a serious problem. And you can't tell even from the extension what format it really is. At least .odt is an actual standard.

  103. Just a question by Stan92057 · · Score: 1

    Just a question. Isn't the extra coding necessary to get around patented code? And by removing the workarounds doesn't that leave the program up for patent lawsuits?

    --
    Jack of all trades,master of none
  104. Re:Not at all. I've had a house built. by mikechant · · Score: 1

    Under the false floors of data rooms across the world lie millions of miles of unused cable.

    And many mummified mice, in my experience...

  105. Re:Not at all. I've had a house built. by jbengt · · Score: 2

    Having had to design changes to existing building systems that had lots of unused piping, ductwork, etc., I would say it's well worth the cost to get rid of obsolete work, rather than dealing with confusion figuring out what is active and what is necessary, or trying to snake new services through the existing congestion unnecessarily. It is relatively inexpensive to remove accessible items at the time they are made obsolete; the problems occur later when no one remembers what a particular item is for or whether it is still active.

  106. Re:Worked Well? by hedwards · · Score: 1

    I doubt very much that the Apache version of OO.org is going to do much improving at this point. Virtually all of the developers have already jumped ship for Libreoffice and I have yet to find anything that Libreoffice can't do that OO.org can. The reality is that they sucked in most of the patches from Go-oo and at this stage it's a superset of what OO.org was able to do.

    You seem to be underestimating the number of patches and the amount of work that wasn't allowed into OO.org when Sun was running things.

  107. Re:Worked Well? by hairyfeet · · Score: 2

    Actually the answer is YES, yes it can, with the free converter pack. And I can testify that it works because my oldest always sends me DocX files from his Office 2K10 (He ALWAYS forgets to send as doc) and they open and display just fine. Now granted he's only a junior so his DocX files are just basic header and footer, no embedded tables or anything yet so I can't tell you how it will do with something fancy, but I CAN tell you that it opened a 15Mb business proposal I did with 4 other guys that had headers, footer, embedded tables, and frankly that amazed the hell out of me because I had 2K, one had 2K3, one had 2K7 and one had (2K6?) whatever the number for Office for Mac was around 2007.

    So I can say that honestly I've never had a problem with Office since i started using it regularly with office 2K. Now maybe i just haven't tripped over the edge cases, who knows, but sharing both doc and DocX in 2K has not been a problem with the Office converter pack.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  108. Re:Then why is it still called LibreOffice? by Scaba · · Score: 1

    And an excellent shoe company.

  109. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    Lighten up Francis.

  110. brimstoned by sgt+scrub · · Score: 1

    Let him who hath no extra wire hanging from the back of the rack cast the first flame.

    --
    Having to work for a living is the root of all evil.
  111. I'll stand up for "who cares". by Shandalar · · Score: 1

    Am I the only poster who will stand up for the response "Who cares"? The transistors analogy and, especially, the bridge-and-girders analogy, are just terrible analogies. To the customer, the cost of having legacy dead code sitting there on the hard disk is zero. The incremental cost of duplicating that dead code is also effectively zero. Software is unlike every other engineering problem for this reason. (And probably other reasons.) In other disciplines, it costs real resources and affects the working systems' performance if half of the material in the system overall is not used. Even if it were a problem, it's mitigated by, as mentioned above, the compiler not even compiling the dead code, in many cases. The actual cost is to those of us who have to maintain the code, or create new projects based on the code. As mentioned in other responses above, the learning time and workaround time is the bad part. But, we're basically paid by the hour, when it comes down to it, so wrap the code up and treat it as a black box and move on! Ship quickly! I know we all want elegance but our job, really, is to ship working systems quickly.

  112. A drain to nowhere by eyegone · · Score: 1

    I built a swimming pool at my new house. The local code required the installation of a drain that runs from the sewer hookup in front of the house to the general area of the pool pump and filter -- where it connects to absolutely nothing.

    Every attempt to figure out why this was required was met with a blank start and a vague mumble of, "It's the code."

    --
    "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    1. Re:A drain to nowhere by Whiteox · · Score: 1

      Maybe it's there in case you need to empty the pool of water for some reason. Just connect a PVC box to it with a grate/grill on top. If you ever need to empty the pool, the water can be fed to the sewers. Otherwise you're going to have lots of acidic/chlorinated water seeping into other yards, destroying your lawn and gardens etc.
      A friend's above ground pool ruptured, wiped out a fence and demolished the neighbour's back yard.

      --
      Don't be apathetic. Procrastinate!
  113. lifetime by backwardMechanic · · Score: 1

    (1) software has a potentially longer lifetime than hardware

    Are you serious? There are plenty of bridges still in use from long before computing was even imagined. Consider these as a starting point. Respect to those engineers.

  114. Re:Then why is it still called LibreOffice? by Anonymous Coward · · Score: 0

    Ah, yes, I remember Adabas/Natural. The dmbs can't isolate updates from other processes before a commit. A mask to test alhanumeric input for a date format accepts some dates that raise an exception when the same mask is used to convert that input to a date field, the lack of stack traces punishes those who write modular code because you don't have a clue how the code where an exception occured was reached when calls get nested more than a few levels deep, exception handling is so limited that you can only crash or restart the application, no option to actually handle it and continue.

    It's possible that it is good stuff, I may have misunderstood the German sense of humor.

  115. Re:Not at all. I've had a house built. by hawk · · Score: 1

    Your emotions need better insulation . . .

    hawk

  116. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    That's nothing, when I renovated my basement I found the body of an old man, perfectly preserved. This was really upsetting. It was not the old man who vexed me, but his Evil Eye.

  117. "Dead" code? by msobkow · · Score: 1

    So-called "dead" code is usually the result of some feature that has been disabled or re-implemented. But keeping the code around as an example of how not to do things can prove very helpful to future maintainers. And if the code in question is ever needed again, you don't need to rewrite it from scratch.

    In my case, there are several pieces of "dead code" features I tried and abandoned in the attributes of a business application model for MSS Code Factory. But although I left them in the model and they take up memory at runtime, they're concepts that I do want to follow up on again and tackle from a different angle than the former (failed) approaches to using that information.

    There are also probably still a few unused methods and classes in the core code. I went through a huge cleanup effort over the past 18 months of a 15 year project, and got some incredible performance improvements along the way. The system now runs in under 10% of the time it took 18 months ago. Not a bad payoff, even though raw performance of the system was never a key requirement.

    --
    I do not fail; I succeed at finding out what does not work.
  118. Re:Not at all. I've had a house built. by FrangoAssado · · Score: 2

    That would be relevant if the unused code was very tightly mixed with the used code.

    In this case, if you look at the way they detect unused code, you'll see that all the code that was removed consists of whole methods and sometimes whole classes. This means that the vast majority of the code that was removed would probably never be loaded in the instruction cache anyway -- very small methods tend to be inlined by the compiler and so don't cause surrounding (and potentially unused) code to be loaded to the cache.

  119. Re:Not at all. I've had a house built. by Grishnakh · · Score: 1

    That's a pretty good idea; the big difference between software and biological systems, however, is time. For any macro-sized organism, it takes a long time for a clone to grow, unlike what they portray in the movies. It's perfectly possible to clone people, for example, but if you're 40 years old, it'll take 40 years to make a clone that looks like you (and by then, you won't look like that any more). Not only that, but biological systems aren't usually perfect in their DNA replication processes; errors happen all the time, causing mutations.

    Software, OTOH, takes almost no time to replicate, only the time needed for the hard drive to read and write the pattern of bits associated with that software, or the time needed to transmit that pattern over a network, which is anywhere from milliseconds to a minute maybe, and errors are extremely rare and usually corrected by error-correction processes. This is very similar to the timeframe needed for Star Trek-style replicators; give it a command ("tea. Earl Grey. Hot."), and a few seconds later you have a perfect copy of that item in your hands. For a cup of tea, such ability is pure fantasy at this point, but for a piece of software that took many man-years to write, it's reality.

  120. Re:Not at all. I've had a house built. by Grishnakh · · Score: 1

    Not a good idea in a modern house, with wooden walls and drywall; he'll cause mold problems. It's better to take him down to your brick-walled wine cellar, where you can shackle him to a small alcove in the wall and brick him up. Even better if his name is Fortunato.

  121. Re:Not at all. I've had a house built. by Belial6 · · Score: 1

    I did say that it would give them a "mildly" amusing story.

  122. Re:Not at all. I've had a house built. by Simon+Brooke · · Score: 3, Insightful

    This is true in Europe too. I'm in Scotland. I live in a small but comfortable house I built for myself on my own land last year. It cost in total more than I earn in one month, but less than I earn in two. I'm a senior geek, I get a good wage - but I'm not a banker or a pop-star.

    What makes housing expensive is partly labour, but it is mainly that planning policy creates a form of artificial scarcity, and partly also that government support for home ownership creates a speculative bubble, further inflating the cost. Housing is not intrinsically expensive.

    --
    I'm old enough to remember when discussions on Slashdot were well informed.
  123. Re:Not at all. I've had a house built. by formfeed · · Score: 2

    Frankly I don't know what's inside my walls, and I'm not sure I want to know.

    Asbestos, lead, dead mice, and razor blades. (Old bath room cabinets used have a little slot to dispose of razor blades.)

  124. Unfair Characterization of Deprecated Code by Anonymous Coward · · Score: 0

    The summary is clearly written from a user's perspective, and overlooks the reasons for deprecating code and features in a piece of software. There is a tradeoff when you make changes to a piece of software. If you are adding a new feature that does what an old feature did, do you leave the old feature? If you don't, it may break compatibility and interoperability with other software. If you do, you end up with deprecated code.

    It's when so much time has passed that the reason for leaving the old code in place has dissappeared and the code and the reason for its existance have been forgotten that you run into trouble. This is where a code cleanup is needed. Deprecated code does not in-and-of-itself need to be removed, changed, or updated. But it should not be forgotten.

  125. Re:Not at all. I've had a house built. by EricScott · · Score: 1

    That's nothing. Whoever built the wall that exists between my office and the dining room left inside a leather dog collar and a half-dozen pork (I think) rib bones.

    We've also found a cast iron floor lamp inside of a wall, as well as several hundred copies of the Saturday Evening Post that are positively impossible to drill through.

    Pez dispensers seem so...basic.

    Those aren't pork bones!

    Dog collar.. animal bones.. hmmm.

  126. Re:Not at all. I've had a house built. by EricScott · · Score: 2

    Function level linkers have been around for a long time now. None of that dead code will end up in the binary.

  127. LibreOffice's Linux RPM packaging is awful by rklrkl · · Score: 1

    Yes, I know most Linux distros ship LibreOffice now, but has anyone running Linux ever actually tried to install LibreOffice recently via the RPM downloads from the libreoffice.org? It's excrutiatingly packaged with so many flaws that it's embarrassing. Here's the list of what I have to put up with (at work, we use CentOS 6, which doesn't include LibreOffice):

    1. There are *three* separate .tar.gz downloads (one for the core package, one for the main language pack and one for the help language pack (hmm...shouldn't the help language pack be merged into the main language pack)? Each of these .tar.gz's unpack into separate top-level sub-directories, just to inflame the awkwardness (I manually move what I want into the core package's RPMS sub-directory, but it's crazy to have to mess around like that). It should also be noted that the core package is dubiously labelled "en_US" but I'll get into that later on.

    2. The RPM set has a major.major number *in the package name* (i.e. not in the version field where it should be). The lame official excuse for this is that you can install two LibreOffice versions side-by-side. How many normal end-users would *ever* do that, especially for two minor releases? Virtually no-one and yet this stupidity means that I can't upgrade any previous version easily. I have to manually uninstall all the old RPMs and then freshly install the new ones - completely maddening! Note that the developer version is named "LODev", so developers already have a completely differently named set of ("lodev"-prefixed) RPMs that can co-exist with the production release RPMs without the latter needing the version number embedded in the package name.

    3. There are *two* core parts of the RPM package names: "libreoffice" and the bizarre "libobasis", so bang goes any chance to specify all the RPMs with a single wildcard.

    4. I unpack the core package .tar.gz for, say, 3.4.4 and what do I see? Apart from confusingly having "rc2" in the unpacked dir name (yes, I know that the last RC = final, but it's still disconcerting), there's a shocking huge number of RPMs - 57 in all! For no reason at all, there's 7 "core" RPMs (core01-core07) when clearly they could put all that code into a single RPM. There are plenty of other RPMs that you suspect could also go into that single core RPM too.

    5. Even worse, there are actually language-specific RPMs in the core package that make a mockery of having separate language pack downloads. Examples including *8* en-US RPMs (which I have to delete because I'm a British user and the en-GB versions are in the en-GB lang pack) and, even more astonishing than this is the inclusion of American English, Spanish and French dictionary RPMs, which I also have to delete.

    6. There's also a "desktop-integration" directory in the core package, from which I'm supposed to install one of the RPMs ("redhat-menus" in my case) to get any sort of desktop menu entries, but shouldn't conditional code for this be included in one of the core RPMs and not as manually selected separate RPMs? I move the redhat-menu RPM up a level and continue...

    7. Why is there a "testtool" RPM in the core package of a production release? I delete it and don't install it - normal end-users will never need it.

    8. I then unpack the language pack download (en-GB for me) and have to manual move 9 en-GB-specific RPMs over to the core package directory (having had to delete the en-US equivalents first as I said earlier). Ditto for the help language pack (only one en-GB RPM this time).

    9. I then have to run:
    rpm -e `rpm -qa | egrep '(libobasis|libreoffice)'` to remove the previous LibreOffice release manually.

    10. Finally, I get to install the new release with 'rpm -ivh libobasis*.rpm libreoffice*.rpm

    No wonder almost all Linux users just used their distro's release of LibreOffice - the manual install is like having electrodes attached to your nether regions. I have never seen RPM packaging abused in such a significant way and it's especially galling when this is one of the most important apps - particularly for businesses - on Linux.

  128. Engineering Discipline? by tyrione · · Score: 1
    ``Can you imagine this in any other engineering discipline?''

    It's not an Engineering Discipline, no matter how many universities label it and the industry entitles it. It's Computer Science for a reason. Engineering disciplines are founded in Laws of Science. There is a reason Bill Joy has wished Software Programming could become an Engineering Discipline [he cited Mechanical Engineering specifically]--he's tired of the amount of wasted energy that the Art brings. That same Art brings a lot of creativity, but with a lot of undisciplined results and crappy code.

  129. Re:Not at all. I've had a house built. by theNAM666 · · Score: 1

    Think nothing of it. Print it and put it in your walls, and then you'll be insulated from it. Until it rains, at which point you may find yourself irritated by it again. At which point, you'll have some insulting filler.

  130. Re:Not at all. I've had a house built. by Brian+Feldman · · Score: 1

    Since when is that the problem with dead code being around in the first place?

    --
    Brian Fundakowski Feldman
  131. urban decay by schlachter · · Score: 1

    Urban decay is a great example.

    Take Philadelphia. We have structures that are more than 100 yrs old decaying in our city center! No one is funded to remove them. They will only be taken down when the real estate upon which they sit is worth enough to future developers to justify the cost of removing them.

    It's the same with software. No one wants to allocate budget/man hours to this stuff until the cost/benefit ratio makes it worthwhile.

    --
    My God can beat up your God. Just kidding...don't take offense. I know there's no God.
  132. Re:Worked Well? by Demonoid-Penguin · · Score: 1

    I doubt very much that the Apache version of OO.org is going to do much improving at this point. Virtually all of the developers have already jumped ship for Libreoffice

    Huh? Are you just quoting something you overheard or have I been duped by a massive conspiracy? Maybe you should start with learning the history of OpenOffice.org before making dumb statements. Sun fucked OpenOffice.org (deliberately). Many developers, who in total had contributed little of the code that made up OpenOffice.org (most came from paid developers) - but who never the less made important contributions to OOo, left when Sun cut them out of input into decisions. Now they contribute a large part of the code to LO (don't overlook Google's contributions). These are not secrets, or a matter "of opinion" - it's not fantasy football - hint: logs. Ditto with the amount of new code in OOo. Perhaps you confuse numbers with quality of product and discount the amount of catch up that the LO team had to deal with (especially shedding the GOo cruft) - a simple check of svn and git commits would dispel that myth. But I'm make it easy for you. It's not rocket science

    They're both good products, OOo has more paid full-time coders, LO has more volunteers.

    I have yet to find anything that LibreOffice can't do that OO.org can.

    Compatibility with MS Office varies with both (particularly with Excel) - but in general OOo does a better job, PDF editing is better in OOo as is the ability to move from Write to Calc or Base. LO still doesn't handle complex math well (that should improve soon). And what of OOXML filters?

    You seem to be underestimating the number of patches and the amount of work that wasn't allowed into OO.org when Sun was running things.

    You think? I suspect you'd find the OOo team has done a lot since then if you didn't have such a fanboi attitude. And you're definitely overlooking IBM's contributions from Lotus. LO and OOo use different release cycles.

    There will be a new release of OOo very soon - they've been busy the last few months doing just what LO is doing (it's almost like they talk to each other).

  133. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    You're example is more along the lines of planning ahead to save money than leaving in stuff that is not used and is affecting performance.

    Unused code doesn't affect runtime performance because, well, it's unused. At worst it consumes a little more memory unnecessarily which has the potential to cause more swapping (on Windows more than any other OS because it swaps "early").

    It does cost you in development effort, though, as there's more code to look through that may be obscuring bugs in code that's actually used.

  134. Re:Worked Well? by HJED · · Score: 1

    2K7 can also defiantly open odt documents and I think 2K3 can as well, I doubt that anyone is using an older version of office then 2k3 for business purposes.

    --
    null
  135. Re:Not at all. I've had a house built. by Whiteox · · Score: 1

    The Historical Documents have the true story of a guy in England who managed to dispose of a number of bodies in acid, then poured the sludge into the drains.
    Worked well until the police found a partial hip bone that blocked the sewer.

    --
    Don't be apathetic. Procrastinate!
  136. Re:Not at all. I've had a house built. by glutenenvy · · Score: 0

    Frankly I don't know what's inside my walls, and I'm not sure I want to know.

    I have found out what is in mine and I will agree that you do not want to know what is in yours.

  137. Re:Not at all. I've had a house built. by micheas · · Score: 1

    Libreoffice on FreeBSD compiles more reliably without the java dependency..

    Java is used primarily for the database connector, so you lose the database functionality.

    While the java dependency removal is on the road map. What to do about the advanced mail merge and wiki extensions that also depend on java is not yet clear (probably in the open source tradition, just drop support after a warning for one version about java support being deprecated.)

  138. Re:Not at all. I've had a house built. by Kamoo · · Score: 1

    I don't get the analogy of the summary. It's like saying the deprecated code was never used in the first place. A better analogy is abandoned buildings, as they are the deprecated buildings. There are plenty of those around.

  139. half WHAT? by Anonymous Coward · · Score: 0

    they've removed "over half the unused code".
    but what the proportion of "unused code" was?
    TFA says that the Libre Office had 5200 unused methods - is the nubmer high? compared to what?
    thanks for explanation...
    petr

  140. Re:Not at all. I've had a house built. by Anonymous Coward · · Score: 0

    umm, those aren't pork rib bones...

  141. Re:Worked Well? by Anonymous Coward · · Score: 0

    What?
    There are lots and lots of documents that I can not see right in OO.
    Try, for example a CV in European CV format.
    Something that has very complex tables layout, like the a euro CV doc will fail straight.

  142. Re:Not at all. I've had a house built. by ResidentSourcerer · · Score: 1

    Part of this is is due to 'reuse' and is a consequence of abstraction.

    I've done remodeling. Electrical is always interesting. Electricians have no real organized system of working. You can't predict where a wire will run. Open up a wall, and spend a few hours going back and forth. (Does the line go to the light, then the switch, or is the switch 'beyond' the light. Can I splice in to *THIS* box and get power all the time, or will in be dead at one setting of the 3 way switches at either end.

    If I reuse a 2x4 do I care if there are wiring holes I don't use? No. Do I care if there are nails clipped off and hammered flat. Not usually. If I move the sink, do I take apart the wall to remove the old sewer line? No.

    Houses are not designed to be maintained. Nor are cities. (Try upgrading a city sewer system.)

    --
    Third Career: Tree Farmer Second Career: Computer Geek First Career: Teacher, Outdoor Instructor, Photographer.
  143. why programming is still an Art not Science by Anonymous Coward · · Score: 0

    And this is why programming is still an Art not Science. Eventually news methods of programming will have to be developed so it becomes obvious old code is really old (i.e. not useful). An analogy would be a house on a street that is boarded up and has unkempt lawn. The objects should keep track of last access and from whom so that judicial decision can be made to remove code: "Oops, the object you are requesting cannot be found. See object XYZ for more information." The software industry is still in the early days.

  144. Re:Not at all. I've had a house built. by Candyban · · Score: 1

    I don't know what you make in a month and the type of finish/comfort you have in your house, but typically I would say one would spend (in EUR) 5k in sand/cement/concrete blocks (foundation, support structures), 2-3k for steel/rebarb, 3-4k in wood (roof) + 2k in tiles, 8k in bricks, 3k in wiring/electrics, 9k for central heating, 3k for insulation, 6k for windows, ...
    And these are just raw materials and very conservative estimates, no labor, carpentry (stairs/doors) or decoration.
    That means you'd have to earn (net) more than 21k/month, but I would guess most (including myself) don't get anything near that amount.

  145. Re:Not at all. I've had a house built. by HereIAmJH · · Score: 1

    Didn't work out so well for Toby Keith.....
    http://www.youtube.com/watch?v=nOd2NuHgwew&ob=av2e

    --
    Another day, another update to a Google android app.
  146. I guess it is natural by Anonymous Coward · · Score: 0

    Our Genome also has a lot of unused codes which probably meant something at some point of time in evolution but, no more. It has genes that are deprecated. I think its very natural in an organically growing system.

  147. Re:Not at all. I've had a house built. by JasterBobaMereel · · Score: 1

    If you have damp in your wall cavities then mold is not your only problem ....

    --
    Puteulanus fenestra mortis