Slashdot Mirror


User: octogen

octogen's activity in the archive.

Stories
0
Comments
135
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 135

  1. systemd fails at reliability and fault-tolerance on Fork of Systemd Leads To Lightweight Uselessd · · Score: 2

    My main problem with systemd is the lack of robustness in its design and implementation. It seems like an attempt at reimplementing Solaris' SMF, but poorly. Even the SMF itself could probably be called 'overengineered', however, it is certainly a more sophisticated, less monolithic design that provides a much higher level of fault-tolerance.

    systemd is basically a huge pile of modules compiled into the PID 1 init process. The problem with that is, that if PID 1 dies, the system stops (e.g., kernel panic). On Solaris, a small basic init process starts the SMF master restarter (svc.startd), which is responsible for starting, stopping or restarting the other components of the SMF as well as all services managed by the SMF. If a component of the SMF fails (maybe it just dies/SEGVs, or say, you kill it, cause it hangs), the master restarter will respawn it. Even if the master restarter goes south, that small basic init process will respawn the entire SMF, and you're still up and running.

    Then, let's take a look at the implementation of systemd:
    static int socket_spawn(Socket *s, ExecCommand *c, pid_t *_pid) {
    _cleanup_free_ char **argv = NULL;

    ...snip...
    r = socket_arm_timer(s);
    if (r < 0)
    goto fail;

    ...snip... (function call with lots of undocumented arguments, returning r)
    if (r < 0)
    goto fail;

    r = unit_watch_pid(UNIT(s), pid);
    if (r < 0)
    /* FIXME: we need to do something here */
    goto fail;

    *_pid = pid;
    return 0;

    fail: s->timer_event_source = sd_event_source_unref(s->timer_event_source);
    return r;
    }

    Actual code from systemd-216; see full source at src/core/socket.c

    Most of the systemd source code looks like this.
    Virtually no comments; lots of single-letter variable names, confusingly similar names like "_pid" and "pid"; throwing 'int' return codes back up five calls, where the original caller cannot even remember what all the possible return codes might be (how about enum?); lots of arbitrary goto- and return-jumps out of the middle of somewhere; lots of break and continue, even mixed in the same loop; even substantial amounts of three-star-programming (never heard of it? google it, it's funny); etc.

    Okay, I have to add, that the code of lots of the "good, old, reliable UNIX codebase" does not look a lot better (and upstart, or even the Linux kernel, are guilty of at least some of the same bad coding habits). But we have paid the price for writing code that way numerous times, and it seems we did not learn from history.

    Coding like that is probably okay if you're writing a nice, little command line utility. But if systemd wants to be THE new init system, it had better look like it had been written by the inventor of reliability engineering.

    Right now, the systemd source looks like it violates virtually all of the best practices for writing reliable code. Take a look at what those people who know their craft recommend - e.g., the Federal Aviation Association, European Space Agency, Lockheed Martin's avionics section, etc. - and compare that to systemd's source.

    It's like a disaster waiting to happen.

  2. Formal design, fail-closed programming, etc. on Ask Slashdot: Writing Hardened Web Applications? · · Score: 1

    Design your application and implement your code to let it do exactly what it should do and nothing else.

    Put more specificaly, if you want to add two numbers, make sure that there is no way the result could be out of the range of its data type. If you want someone to enter a name for something, define what that string can contain - maybe only a to z, A to Z, 0 to 9, and it must have a length from 1 to 20 bytes.

    Write every function of your program so that it has deterministic behavior, and that it has a clearly defined result for every possible input.

    By the way, I doubt that banking account management systems are as secure as people might feel comfortable to think they are. Most commercial systems have poor security, because companies prefer cheap but insecure mainstream IT systems over expensive but secure custom IT systems.

  3. Maximum profit on NYT: IBM PC Division Sold To Advance China's Goals · · Score: 1, Insightful

    The IBM home page tells me about IBM's "responsibility" regarding things like:
    societal issues
    the environment
    education
    health
    culture
    (http://www.ibm.com/ibm/responsibility/index.html -- also click the links on the left, for example about politics)

    But what's more important, is how to be good friends with chinese dictators who don't give a shit about any of the topics mentioned above, so as to make more $$$ by doing business with china.

    I doubt that acting like this is going to turn this world into a "smarter planet".

  4. It is not about scripting alone on Ask Slashdot: Moving From *nix To Windows Automation? · · Score: 1

    This is a more complex problem than what scripting language you are going to use. Automating things is about job management, process management, signals, connecting streams and terminals, setting device modes, filesystem permissions, modifying network settings, and many other things. Unix is designed in a way that lets you change almost every property of the system in numerous ways, following general principles of its architecture. It is a very logical and consistent system.

    The problem is that Windows lacks such an modular, abstract foundation. It is a much more arbitrary and inflexible system, it is not designed for putting different pieces of it together in different ways for automation.
    For example, on Unix you have numerous small utilities that work together nicely by piping the output of one utility into the input of another one. Windows is really bad at doing such things, and the output format of most of its utilities is not easily machine parseable.

    I think, the question is not: How do I automate Windows? The question should be: What system should I use, which one is good at automation?
    And the answer is definately Unix, not Windows.

  5. Open letter to Microsoft on Microsoft Continues Android Legal Assault · · Score: 1

    I just tried to post that to MS' TechNet article, but it seems that the comment function has been disabled. So I am posting it here as an open letter to MS.

    Two ot the most ridiculous so-called patents:

    "Enable display of a webpage’s content before the background image is received"
    "Permit users to easily select text in a document and adjust that selection"

    How is that a patent-worthy innovation? Just about EVERY application that has ever been created works like that, and any programmer that writes code different from what has been described in these patents should really look for a new job.

    If Microsoft thinks that this is not "standard practice", but patent-worthy innovation, then this only proves that Microsoft's software designers and programmers must have below-average abilities.

    I request that you folks stop trolling the rest of the world with such ridiculous claims immediately. If you want to compete, then work on increasing your skills instead of trying to forbid other people to make use of theirs.

  6. 2 hour Pixar course on Trying To Lure Suckers, Company Resells Open Source Blender · · Score: 1

    "Learn how to create cutting-edge 3D animations like Pixar and Dreamworks in the next 2 hours or less..."

    Well, if that IllusionMage homepage had slashdot's "score" feature, this statement would certainly deserve a "+5: funny". They can't be serious!? I've never seen anyone who has created something more exciting than a couple of textured spheres and cubes in no more than 2 hours after starting to use Blender for the very first time.

  7. Two answers: on Why Use Virtual Memory In Modern Systems? · · Score: 1

    Why Use Virtual Memory In Modern Systems?

    1. Every application on a modern system is running in its own virtual address space, and these virtual addresses are then mapped to (different) physical memory addresses. This is called "virtual memory".

    You are talking about swap space, not virtual memory.

    I have a system with Windows Vista Ultimate (64-bit) installed on it, and it has 4GB of RAM. However when I've been watching system performance, my system seems to divide the work between the physical RAM and the virtual memory, so I have 2GB of data in the virtual memory and another 2GB in the physical memory.

    2. Just because Windows has poor memory management doesn't mean that swap space is bad in general, or is an outdated concept.

    We are running AIX on a pSeries with 576 GB of main memory and lots of swap space, and it doesn't do this. It's a software problem - all you need is better memory management.

  8. the version number is not the problem on Do Software Versions Really Matter? · · Score: 2, Interesting

    > have product version numbers lost
    > all credibility and meaning?

    to me, commercial software companies have lost all credibility and meaning, and that's the real problem.
    I already expect that they will not deliver carefully engineered products, but throw the first thing that compiles on the market, and then just see what happens (that's v1.0). Many products are broken by design and are implemented carelessly, so they have a lot of bugs. But actually, if version 1.0 isn't good, then in all probability version 5.0 will not be much better - because you can't fix a broken design with workarounds. Version 5.0 may even be worse than 1.0 - because if the implementation is really bad, noone knows what's really going on in that code - so you may fix one error and introduce two new, more complex errors with your workaround.

    On the other hand, if you can proove, that your product has a good design and is implemented correctly, I don't care about the version number - I'd even use a version 0.32 in a production environment.

  9. Re:It looks like noone of you... on How HP Could Turn a Novelty Into a Revolution · · Score: 1

    Both Windows and Unix are designs that are way past their expiration date but Unix is starting to smell.

    The fact that Windows (NT) was designed years later than Unix is only evidence of incapacity of NT's designers, because they should have learned from Unix, and obviously they did not; Unix is actually a more consistent, abstract and unified design than Windows.

    For example, to get information from a file, a directory, a process, a serial port, a USB mouse, or whatever -- all you have to do on Unix is call open() on that object - which can make application programs extremely flexible.
    On Windows, you need to use lots of special APIs for every different type of object, because Windows does not have a unified, abstract design.
    There are more examples similar to this one, just study some good books about operating system design (and maybe not only those about Unix and NT).

    I agree that implementations of Unix are not as advanced as the idea behind Unix, and that we really need a totally new and much better generation of operating systems, but I am totally convinced that Unix' design is by far closer to what a modern operating system would look like than windows.

  10. It looks like noone of you... on How HP Could Turn a Novelty Into a Revolution · · Score: 1

    ...wants any innovation or technical redesign.

    Looks like you say: Forget any attempts to make computers more reliable and more powerful - let's just use Windows everywhere.

    I say, most Unix-OSs are much better than Windows because of their more abstract, structured and logical design, BUT even those are far TOO BAD to lean back and stop developing new operating systems.

    So, if you say, Windows is good enough, then I would like to never ever hear you complain about computers that do not work. I don't want to hear you complain when you have been waiting for some 6 hours to get your damned train ticket, because the Windows PC which should have printed it does not work.
    Because that just serves you right if you choose to use bad products instead of better ones.

    And if you think, Windows is good enough, just because your home PC does not bluescreen, then you have no idea what real reliability and security really means (never seen IntegrityRTOS? OS/400? VxWorks? QNX?).

  11. Nuclear reactor monitoring, Heathrow baggage... on The Very Worst Uses of Windows · · Score: 1

    http://www.theregister.co.uk/2003/08/20/slammer_worm_crashed_ohio_nuke/

    Tens of millions of lines of Code for displaying sensor data.
    I would have used a small, stable operating system, like QNX, VxWorks or Integrity/RTOS. Some Canadian designs (CANDU) seem to use QNX-based machines, and they did not need to patch the kernel or reboot for as much as 15 years.

    Oh, and by the way, the LONDON HEATHROW BAGGAGE HANDLING SYSTEM which crashed after a system update was also running on Windows Server 2003.

    One of the contractors was IBM. They could have used AIX, OS/400, z/OS, z/VM, VME -- any of their own, stable stuff. But they decided to sell a crappy product based on a PC/Windows-platform, and it crashed. How embarrasing.
    Well, that serves them right...

  12. Better idea on Microsoft Goes After "Career Pirates" · · Score: 1

    I request that Microsoft stops those who continually use its software.

  13. 8th World Wonder? on Kurzweil on the Future · · Score: 2, Insightful

    ...that means, in 12 years we will be able to write code as complex as our brains without any catastrophic bugs that crashes it frequently or leads to totally useless results?

    I don't think so. Computers are now faster and "bigger" (not physically) than 30 years before. Programs have more functions than 30 years before.

    But essentially, they do exactly the same thing as 30 years before, just MORE of the same thing. And they don't do it BETTER, they still have the SAME BUGS, and the SAME NUMBER of bugs per lines of code.

    Computer programs are made by humans, and I don't think that we - the humans, the creators of these computers - will evolve faster in the next 12 years than we did in the last 30 years.

  14. Better computer architecture on Malware vs. Anti-Malware, 20 Years Into The Fray · · Score: 1

    Instead of reactive solutions, better computer architecture could be a solution.

    A so-called "worm" always spreads by injecting and executing its code into a vulnerable process on a remote computer. For example, on an IBM AS/400 it can not do this, because if you overwrite a pointer with data, then it is not a pointer anymore - so it can not be used to address memory (that's why the machine actually has 65 bits instead of 64 bits, the 65th bit is a tag flag that marks pointers. aka pointer in memory protection).

    Actually, you do not need much more than different instructions for data moving and address calculation, and instructions to mark code as code and data as data, and almost all possibilities to write any malware that installs itself are gone.

    Unfortunately, as long as companies can sell current computer architectures, just because they are barely good enough to do some work sometimes, noone is going to build such a better, new architecture.

  15. I share a bit of your frustration... on Disillusioned With IT? · · Score: 1

    ...and I think the reason is that IT isn't really about technology anymore.

    For IT companies, IT is about making money ONLY, while most of the technology is total crap today.

    For example, avionics computers or embedded devices which control nuclear reactors and such are customized, specialized, well-designed IT solutions that actually work.
    These systems do exactly what they are supposed to do, and NOTHING ELSE. Therefore, nothing else can crash the system.

    But for many branches of business there are no similar solutions available; all you can get for your "eCommerce" is, essentially, a crappy Home-PC with tons of buggy, poorly engineered, monolithic software (e.g. a lot of libraries and such) for computer games, legacy applications and thousand other things you don't need, you don't want, and you can't get rid of.
    All these things are causing problems in your environment.

    The problem is, noone offers something better than that for "eCommerce" - so you can actually sell crap like that and make a lot of money. So why build better systems if you can make so much money selling the bad ones?

    The only reason why airplanes, nuclear reactors, medical devices etc. have better computers is that you would be DEAD if they didn't work properly.
    Noone dies if your SAP GUI does not work every day, so noone cares. It's just annoying.

    I do not like the military; but I guess, I may even look for a job in military-related IT in the future, simply because it is less frustrating than commercial IT, because at least some branches of the military (like aviation) simply have MUCH better computers.

  16. thanks god SUN(R) does not think like that on T-Mobile Claims Trademark In the Color Magenta · · Score: 1

    ...otherwise it'd be rather dark here all the time...

  17. Re:Or, on the other hand... on Study Shows Males Commonly Mistake Sexual Intent · · Score: 1

    ...plus, if you were "more clear about it", they'd panic immediately, because then it is "too fast" for them...

  18. Re:"stuck with a ...serial programming model" on Wintel, Universities Team On Parallel Programming · · Score: 1

    If an operating system knew, which parts of a program can be executed in parallel, then it already COULD run ONE thread on MULTIPLE processors. But even if it knew, when you have multiple tasks or threads running in parallel, then you want every one of them to stay on the same CPU as long as possible, because scheduling every thread on every processor pollutes the caches and slows down the entire system.

  19. Something wrong with that on The Dirty Jobs of IT · · Score: 4, Informative

    Dirty IT job No. 7: Legacy systems archaeologist
    WANTED: INDIVIDUALS FAMILIAR WITH 3270, VAX/VMS, COBOL, AS/400, AND OTHER LEGACY SYSTEMS

    I have to disagree: It may not be the very best idea to try to connect AS/400 applications to webbrowsers, but an AS/400 is certainly NOT a legacy system. The system architecture of the AS/400 is actually much more modern than that of most other systems. Do you know any other system with a persistent single-level-storage, that continues working exactly where it stopped before the power was lost, after you boot it up again - I mean, it does not RESTART processes, it CONTINUES them. Or do you know another system, where you can plug in a completely different main processor, just recompile the OS kernel, and every application on the system will be AUTOMATICALLY ported to the new processor architecture upon first start - as if they were Java programs? Ever heard of the "technology independent machine interface" (TIMI)?
    Reimplementing your old applications on an AS/400 is much LESS of a risk than trying to migrate those applications to so-called modern systems like PC-servers, because an AS/400 is orders of magnitudes more secure (you DO know it has hardware-supported pointer protection, don't you?) and more realiable than a PC-server.

  20. Re:because they've been conditioned on Why Is Less Than 99.9% Uptime Acceptable? · · Score: 1

    Capitalism does not - and must not - build the best, merely the just barely good enough.

    This may be one of the most important reasons why Free Open Source Software can be a very good thing. It does not matter how much time it takes or how much it would cost, because everyone works on it for free.

    That does not mean that the quality of Free Open Source Software is neccessarily better than that of any other software, but I guess there is a greater potential for the development of high-quality software if time and costs are not an issue.

  21. I'd say... on How Do You Find Programming Superstars? · · Score: 1

    SELECT "fname", "name" FROM "job_application" WHERE "iq" > 150 ORDER BY "iq" DESC;

    no.. seriously, you will not know in advance who is a real programming superstar. You will know after a few years, by judging the way he/she DESIGNS software rather than just coding it, in the first place. You will know after a few of his/her programs have been running a few years without ever crashing or messing up your data.
    Anyway, I think that having a very high IQ (especially in math/logic) is a prerequisite to becoming a really good software developer.

  22. Yeah, they NEED TO USE silverlight... on Microsoft Battles Vista Perception With Prizes · · Score: 1

    ...because they can't even type in some 300 lines of plain old HTML 4 code without messing it up:

    http://www.microsoft.com/australia/vistafacts/vista.aspx

    This page is not Valid HTML 4.01 Transitional!
    Result: Failed validation, 12 Errors

    (validator.w3.org)

  23. Flying on Whatever Happened To The Joystick? · · Score: 1

    Most people who play flying games (like Battlefield 1942, or more realistic flying simulations like FlightGear, MS Flight Simulator, etc.) prefer Joysticks, because it is the only input device that is really suitable for flight simulations.

    Personally, I have three joysticks:
    1. A Logitech Force 3D (which broke once because of poorly designed mechanics, but I was able to repair it), mainly used for flying helicopter in BF Vietnam
    2. A Saitek X52 Pro, used for flying planes in BF 1942 and anything in Flight Simulator 2004
    3. A custom built repro of a Bell JetRanger's controls, used for flying the helicopters in Flight Simulator 2004

    Another funny thing is my Futaba T4EX remote control (for RC models), which can be connected to the computer via USB. I use this one for flying helicopters in FMS.

  24. Size?? on Birds Give a Lesson to Plane Designers · · Score: 2, Insightful

    Isn't an A-4 Skyhawk a bit bigger than a barn swallow?

    I mean, what about the maximum load that the material can withstand?

    An RC helicopter like a T-Rex 450 may run its main rotor (diameter of 70 cm == 28 inch) at 3000 rpm. Try that with a blackhawk helicopter, the wingtips of the main rotor blades would go faster than 9000 km/h (about 5600 mph), several times the speed of sound, and certainly more than the material could ever withstand...

  25. Vinyl sound on Vinyl Gets Its Groove Back · · Score: 1

    Vinyl has a warmer, more nuanced sound than CDs

    ...or explained in a more technical way:
    Vinyl has less precise sound reproduction leading to more harmonic distortion (overtones) and more and louder background noise