Forgot your password?

Comment: Re:Laziness (Score 1) 110

You don't have to understand everything, but you do need to at least understand the basics, like how networking works, how crypto works, etc. at a conceptual level. I feel like too many developers learn how to program by learning JavaScript and other scripting languages on their own, then jump into app programming thinking that it's only one step harder because you can sort of do it in Python/Ruby/other Obj-C bridged languages/other .NET languages, or because Swift looks like JavaScript, or whatever their logic might be. Unfortunately, it's not one step harder if you care about doing it right; it's a hundred steps harder, but the apparent accessibility of app programming tries to hide that fact, resulting in a lot of people getting in way over their heads.

Too many developers then balk when we tell them that they need to read conceptual books, insisting that they just want to learn how to solve their particular problem. The result is that they understand just enough of what they're doing to be dangerous. It's like deciding to build a house and telling someone, "I just want to know how to cut a board and hammer in a nail." You're likely to get a very strange looking house with no right angles. You really need to start with higher-level design and philosophy texts, then work your way down to the practical texts. That's equally true in programming, but the short-attention-span instant-gratification crowd just doesn't get that.

And I understand the desire to just learn how to solve the problem. I've been there, and I've done that, but only in areas where I was reasonably comfortable. Even then, I've often later discovered that snippets that looked right weren't quite right in certain edge cases, but at least this happens fairly infrequently, because I've taken the time to learn what I'm doing. Developers who don't do this aren't just hurting themselves; they're hurting their users. There's just no reason for that.

Comment: Re:The only good thing (Score 1) 214


And please note, in case you don't understand how comparisons work, that you don't compare things that are identically the same. They're the same, so it doesn't make sense to compare them. You also don't compare things that are so similar that people have a hard time understanding the differences. In those cases, it's much more meaningful to contrast them.

The only time it really makes sense to compare things is if they're significantly different and yet have similarities. Coffee and amphetamine are very different, and yet both are addictive stimulants that lots of people use in order to be productive. That makes for an interesting comparison.

Comment: Re:The only good thing (Score 2) 214

Yup, they're constantly warned by old people and movies alike, that only dumb, cool, sexy people with exciting lives do drugs. It's much safer to live like your boring suburban parents, who incidentally probably also do drugs-- at least alcohol, coffee, and antidepressants, if not marijuana and cocaine.

I actually don't do any illegal drugs or prescription drugs. I'm just pointing out that our society sends some seriously mixed messages.

Comment: Re:No need for a conspiracy (Score 1) 248

People will complain that the sun is too yellow.

Exactly my point.

I am suspecting your are putting your own biases into the words that I spoke.

And I'm quite sure that you're being disingenuous. Or maybe not disingenuous, but dumb. Possibly just in denial? Regardless, I could continue pointing out where your arguments don't make sense, and you'd continue to shift your argument around and pretend to be saying different things. Why would I spend time on that kind of thing?

Comment: Re:umm duh? (Score 1) 175

by nine-times (#47548713) Attached to: Dropbox Head Responds To Snowden Claims About Privacy

You're searching for technical solutions to business problems.

Sometimes there are technical solutions to business problems. But my point from the beginning is that it wasn't simply a technical issue of whether we can encrypt things. It's whether we, the users and developers on the Internet, can agree on a set of standards that make encryption easy for people who don't understand encryption and can't be trusted to figure it out.

You keep pointing out that we theoretically could do all the things that needed to be done. I'm trying to point out that still, we keep not doing it. Sure, there are libraries for encrypting things, but what I'm trying to drive home is that encryption isn't the problem. The problem isn't "I need to encrypt a file," but "I need to be able to store my files so that they're secure, accessible, easy to find, easy to share, and nearly impossible to lose. If it's properly implemented, encryption can help with the "secure" part, but it can also easily hinder the rest. Until you can develop a complete solution that solves the entire problem while transparently encrypting files without causing other problems, encryption doesn't help to solve the problem.

Comment: Re:Or upgrade to llvm ... (Score 1) 559

by Ash-Fox (#47548527) Attached to: Linus Torvalds: "GCC 4.9.0 Seems To Be Terminally Broken"

Note: I am not the grand parent.

Actually, you should care. Modular software is more resistant to bugs

Not really.

easier to maintain.

I've seen some pretty terrible modular software, with layers of abstractions on abstractions on abstractions to avoid rewriting other parts of the software. The fact software is modular doesn't magically make it better nor easier to maintain.

More useful error messages improve developer productivity.

To be frank, I haven't found the compiler warning or error messages from LLVM that wonderful when it came to c and c++ code.

It seems that the only thing you actually care about is the execution speed of the generated code,

Some of us don't like the extra 'fluff' generated by GCC and LLVM just makes it worse.

Comment: Re:Oe noes! A compiler bug! (Score 1) 559

by Ash-Fox (#47548419) Attached to: Linus Torvalds: "GCC 4.9.0 Seems To Be Terminally Broken"

Not the only time Intel has been caught red handed playing games with the compiler. It produces fast code (usually), but you need a reference compiler around to validate your code.

As someone who writes code in assembler, AMD have had a terrible habit of returning CPU flag support for opcode specifications they do not meet. At least when Intel takes AMD specifications and can't support the specification proper, they just create a new CPU flag (see AMD and Intel's history with MMX, 3DNOW and SSE for examples).

The worst problem is where AMD fix their 'errata' issues by making opcodes try to fool/trick software into thinking it's working when it doesn't.

So no, not really surprising someone made their compiler simply not trust AMD CPU flags and just check for 'AutthenticAMD'.

Comment: Re:Laziness (Score 5, Informative) 110

Code recycling is one thing, but not understanding what that code does when you put it into a production app or not following best practices is another. As Android gains popularity as a platform to develop for, we're going to lose quality as the new folks jumping onto the band wagon don't care how their apps work or look beyond the end goal. This mentality is already popping up with Android Wear developers who cram as much information as they can on the screen and claim that design guidelines are "just recommendations."

The exact same thing happens on every other platform, though perhaps to varying degrees. I refer to it as the Stack Overflow effect. One developer who doesn't know the right way to do something posts a question. Then, a developer who also doesn't know the right way to do it posts how he or she did it. Then ten thousand developers who don't know the right way to do it copy the code without understanding what it does or why it's the wrong way to do it. By the time somebody notices it, signs up for the site, builds up enough reputation points to point out the serious flaw in the code, and actually gets a correction, those developers have moved on, and the bad code is in shipping apps. Those developers, of course, think that they've found the answer, so there's no reason for them to ever revisit the page in question, thus ensuring that the flaw never gets fixed.

Case in point, there's a scary big number of posts from people telling developers how to turn off SSL chain validation so that they can use self-signed certs, and a scary small number of posts reminding developers that they'd better not even think about shipping it without removing that code, and bordering on zero posts explaining how to replace the SSL chain validation with a proper check so that their app will actually be moderately secure with that self-signed cert even if it does ship. The result is that those ten thousand developers end up (statistically) finding the wrong way far more often than the right way.

Of course, it's not entirely fair to blame this problem solely on sites like Stack Overflow for limiting people's ability to comment on other people's answers unless they have a certain amount of reputation (a policy that is, IMO, dangerous as h***), and for treating everybody's upvotes and downvotes equally regardless of the reputation of the voter. A fair amount of blame has to be placed on the companies that create the technology itself. As I told one of my former coworkers, "The advantage of making it easier to write software is that more people write software. The disadvantage of making it easier to write software is that... more people write software." Ease of programming is a two-edged sword, and particularly when you're forced to run other people's software without any sort of actual code review, you'd like it to have been as hard as possible for the developer to write that software, to ensure that only people with a certain level of competence will even make the attempt—sort of a "You must be this tall to ride the ride" bar.

To put it another way, complying with or not complying with design guidelines are the least of app developers' problems. I'd be happy if all the developers just learned not to point the gun at other people's feet and pull the trigger without at least making sure it's not loaded, but for some reason, everybody seems to be hell-bent on removing the safeties that would confuse them in their attempts to do so. Some degree of opaqueness and some lack of documentation have historically been safety checks against complete idiots writing software. Yes, I'm wearing my UNIX curmudgeon hat when I say that, but you have to admit that the easier programming has become, the lower the average quality of code has seemed to be. I know correlation is not causation, but the only plausible alternative is that everyone is trying to make programming easier because the average developer is getting dumber and can't handle the hard stuff, which while possible, is even more cynical than the original assertion and makes me weep for the future.

Either way, there's something really, really wrong at a fundamental level with the way we search for solutions to coding problems. There needs to be an easy way to annotate the fact that a code snippet was derived from a particular forum post, and to automatically receive email notifications (or bug reports) whenever someone flags the snippet on the original forum as being wrong or dangerous. And we as developers need to take the time to learn enough about the OS and the programming environment to ensure that we at least mostly understand what a piece of code does before we ship it in a product.

Comment: Re:No need for a conspiracy (Score 1) 248

Just adding features should not slow an OS down, as features are mostly only loaded when needed and memory management should be able to handle background stuff.

It depends on the features. Some features do in fact require more memory or processing power. You seem to be a fan of Windows 8, and yes, it performs pretty well. Still, let's look at some system requirements.

Windows XP system requirements:
* Pentium 233-megahertz (MHz) processor or faster (300 MHz is recommended)
* At least 64 megabytes (MB) of RAM (128 MB is recommended)
* At least 1.5 gigabytes (GB) of available space on the hard disk.
* CD-ROM or DVD-ROM drive.

Windows 8 system requirements:
* Processor: 1 gigahertz (GHz) or faster with support for PAE, NX, and SSE2 (more info)
* RAM: 1 gigabyte (GB) (32-bit) or 2 GB (64-bit)
* Hard disk space: 16 GB (32-bit) or 20 GB (64-bit)
* Graphics card: Microsoft DirectX 9 graphics device with WDDM driver.

Those specs are significantly higher. I don't fault MS for that, it's been 10 years. They moved to 64-bit code, which enables greater memory use and better performance for big data sets, but also requires a higher minimum RAM. Part of the reason for this is that they're maintaining backwards compatibility, which is a feature.

...this is an awesome sight. The entire rebel resistance buried under six million hardbound copies of "The Naked Lunch." - The Firesign Theater