Business logic dictates they will do what they can get away with. If they can sell shoddy product (that looks good in the commercial or in the store), then they will do so.
Savvy users must suffer, or find a new system to use.
291–300 of 418 posts
Business logic dictates they will do what they can get away with. If they can sell shoddy product (that looks good in the commercial or in the store), then they will do so.
Savvy users must suffer, or find a new system to use.
As a user of software, I get similarly frustrated as the author. ("user" here includes use of third-party libraries to build on) However, developing system-level software, I've come to realise that even if you really, really care about the quality of your software, you can still be bitten by statistics. Basically, developing error-free software is comparatively easy if your software effectively performs no I/O, that…
...Or a "file system from hell" that wreaks havoc with your file I/O. Fuzzing a program in such a way would likely uncover countless bugs.... Though you are probably familiar with them, there are I/O fuzzers like zzuf[0]. I bet it'd be relatively straightforward to write a similar tool that uses LD_PRELOAD to intercept and randomly delay various library calls. Sometimes I'll test my own network software by piping /de…
Realistically, you'd have to automatically detect the calls made, for system calls you have ptrace (most commonly used by strace), though I'm not sure how you reroute them. I guess there must be some kernel-side hook. Still, that's likely to be too low-level for GUIs for example. Preloading dynamic libraries like that also only works well on ELF-based systems, other OSes behave rather differently, and if you're trying to test kernel code, it's a whole other problem.
Once you're simulating errors, you have to specify correct behaviour. For stream input fuzzing for security purposes, you're usually just probing for crashes. In the general case, the test framework will need to know the intended outcome of errors.
For either part, I'm not aware of anything existing like this. I'm slowly custom-building little islands of functionality like it, but it's a far cry from some kind of general solution.
The blurb on the sidebar proclaims Scott's MS experience. It's surprising to see someone with a Microsoft background making this complaint. MS spends more effort than any software company on testing, not only in just plain hiring lots of testers, but also on formal methods. They have some of the top formal methods people in the world doing research for them, and armies of people trying to put that research into pract…
The other issues are easily addressed by stopping to cater to lazy users so much. Do we need yet another bloaty app to do basic things? Look at itunes. Its a monster. I'm not even sure how to get a CSV of contacts off an iphone. In the past this was trivial with any contact manager because the feature was baked in. Now that's a feature for "enterprise admins."
The remaining things on his list are the 'appification of everything.' Everything is now a shitty touch app that's incredibly dumbed down and buggy. Why try hard, especially when you userbase is locked down by 2 year carrier contracts? Or when all their music is trapped in an itunes database that can't be moved anywhere or given to anyone.
Apple won. This is "easy" and "just works." Big buggy apps with dumbed downed features designed to lock user data as deeply as possible. We've entered a new era of vendor lock-in. It the 1980s all over again. We need open protocols to work just enough for web and email. Everything else is up for grabs.
Get used to it, this is what the market has chosen. Meanwhile, I have to somehow train my users on how to use Windows 8's new tablet-based GUI on their standard PCs. This ain't progress. This is fashion.
Earlier quoted context omitted.
What do you mean by "the energy-star hoax"? (Curious.)
To qualify for 'Energy Star' in the US, you have to use 10% less energy/resources (water) as last year. No standard; no other goal. Result: clothes washers that don't wash (my washer at least has a button to override Energy Star, obliquely named Extra Rinse or Heavy Duty), dishwashers that don't get dishes clean; water heaters that deliver luke-warm water. The goal cannot have been "Use less energy, even if it means…
The blurb on the sidebar proclaims Scott's MS experience. It's surprising to see someone with a Microsoft background making this complaint. MS spends more effort than any software company on testing, not only in just plain hiring lots of testers, but also on formal methods. They have some of the top formal methods people in the world doing research for them, and armies of people trying to put that research into pract…
Making complicated stuff work is hard. There is a reason some people design tools to do one thing and do it well - it's easy to be sure it does that one thing correctly all the time and easier to check it keeps doing it.
Maybe we're betting our simplicity on the stack we build upon (I certainly build a lot of simple stuff on top of very tall stacks of mostly simple stuff), I'm not sure there are no surprises hidden in it. However, we should strive for making things (machines, software) that are simple inside. When we do that, it's easier to make the simplicity transpire and become an elegant form-follows-function kind of design. It will not be possible to avoid all bugs, but by making conscious decisions against complicated designs, we may make some lives less miserable.
I think that you are expecting too much from he human race. We CAN always do better, but there will always be software bugs no matter what.
Humans will always make errors in judgment, planning or execution. Look at the Mars rovers, they updated the firmware on them once they were on mars. Do you think that they did not go over everything carefully? Look at anything which has been acclaimed to have been the greatest design or implementation ever and you can always find many same flaws with it.
I get what you are saying with the we can do better, but most people (including you) would rather be productive rather than going over everything 5 times and re-analyzing every design (analysis paralysis). Who could survive that grind? Humans need to be challenged and need to feel like they are progressing or their morale will be destroyed.
Things will not EVER change dramatically from this pattern. Everything is amazing and nobody is happy.
Our machines have layer upon layer of firmware and software. Users are allowed to install and configure whatever they want. It's all expected to run perfectly and, for the most part, things do run pretty well these days. Features are constantly being added. Everything is changing all the time. Unexpected combinations of things still happen and with complex software there are just cases that slip through the QA cracks.
Though I do get annoyed when something crashes, it has to be a bit of a two-way street sometimes. Both sides fail at this. Not all users are good at reproducing bugs and sometimes they are downright dishonest about what they are doing (out of embarrassment, or attempt to "skip ahead" in the diagnosis and other reasons I'm sure). But in the case of big companies like Apple and Microsoft as a user I do feel like they don't provide a way for a knowledgeable user to provide them reproducible errors either. Well, they have their bug report mechanisms but it feels like yelling into the grand canyon when I do submit bugs.
Earlier quoted context omitted.
Ten years ago everybody enthusiastically installed every piece of shareware (windows) or open source (linux) software they could lay their hands on. There were a whole lot of portals devised to desktop software. People's desktops had all kinds of weird hacks in it, tweaking every imaginable bit of appearance, user experience and features. But I think we all came to conclusion that it does not pay off. Yes, your 3rd p…
With package managers and text-based configuration, setting up my system from scratch takes 5 minutes of manual time (and some more unattended). I just keep a git repository that contains my dotfiles, /etc and the output of 'dpkg --get-selections'.
Earlier quoted context omitted.
> You're definitely not alone in this -- a lot of my friends still prefer hard copies over eBooks For me, it's because I own physical books, but I lease eBooks. A fact still lost on many people; there was an erroneous post about Bruce Willis suing Apple over digital property, which then spawned several posts saying "TIL (Today I Learned) I don't actually own my music". It worries me that so many people don't realize…
I bought a Kindle so that I could read all those books from project Gutenberg. That's basically (a) time saved on shipping + (b) money saved since those books are in the public domain + (c) no trees were cut for me to read those books + (d) storage efficiency.
That or some sort of company library for tech docs.
Earlier quoted context omitted.
There is more to Facebook than the friend-feed (the broadcast mechanism). Person-to-person communication is mostly what I use it for; it has replaced email and IM for many people.
What does Facebook's person-to-person communication offer beyond email and IM? (Honest question) No doubt it indeed has replaced email and IM for some people, but I would think it is just because "well, everyone else is on facebook so I'll just use that too"...
Mind, I don't use FB, or trust it, for this.