You don't need religion to band together. Why not do it without the dogmatic baggage?
And if you look at the history of science, you find two things: First, it is one of the most reliable ways we have of discovering reality. And second, it tends to get refined, not wholly overturned. Newton wasn't wrong, just inaccurate.
Certainly, we'll be in a far better place to embrace new scientific discoveries if we don't have dogma blocking the way.
I find it somewhat amusing that you're talking about how being nice to everyone is a Christian value, yet in the same breath, you're admitting you really like admitting people.
By allowing popups to appear outside the page rendering area, i.e, the bit below your tab bar and browser GUI and with small borders, it gives websites free reign and ability to create realistic popup windows that imitate software of your system, so people get suckered into installing legitimate looking spyware.
Yes, I understand -- though there are things about those which make it obvious that they're browser-generated. But again, user-initiated is the key here. Current popup blockers do a good job, I think -- Chrome blocks popups, but makes it clear when a website has requested a popup and how to enable it.
A healthy amount of skepticism would also help. For example, if a website looks local, and is asking me for my bank details or twitter account, I'm going to wonder what kind of local spyware I have installed.
I am sure there are ways to 'overlay' ontop of a fullscreen application to make it clear that it is in actual fact, a web page. Even a small bar notification saying: 'Activated full screen mode. [Ok] [Exit fullscreen]
A what notification? Flash has a pretty decent approach, I think -- there's an overlay that appears onscreen which reminds you that you've entered fullscreen, and to press esc to exit.
The God of the Bible was, at least once upon a time, a storm god -- so very much a sky-god. His son (who is also himself) was supposedly very physical, really here (at least according to some accounts -- others aren't sure the crucifixion happened on this plane at all).
I would guess the "transcendental" understanding has far less to do with the text of the Bible, and far more to do with our increasing understanding of the world. Until we understood what the sky was, it would certainly make sense for a god to be there -- the Bible indeed talks about firmament above and below, surely a good place for a god to live.
Do you have any particular verses you'd like to bring up that hint at him being "transcendental"?
They did not believe that some old man in the sky was coming up with clever ways for them to watch their neighbors all the time.
So it's alright for exactly one person (being, entity) to watch people, but no one else?
So, most -profesionals? How... -professional of you.
Sorry, I couldn't resist when there's a bug in your joke regex about software development being hard...
(Maybe Erlang?)
Not till it has better Unicode support, at the very least.
We have Algol-descended languages based on the control-flow idea of 'do this thing, then that thing, in my private resource space',
JavaScript still functions more or less like this. Try developing a Chrome extension -- if you want to communicate between tabs, you're going to end up sending messages. Granted, it's not going to be nearly as efficient as Erlang if you're handling large data structures...
Me, I'm waiting for something like Reia, or maybe io, to get usable. Until then, I work with the tools I'm given -- Java at work and in school, Ruby and JavaScript at home.
I'm using Chrome 5 (stable) on Linux 64-bit. Occasionally a tab crashes or otherwise misbehaves, and I can kill it. Haven't seen "aw snap" in months, haven't seen the browser itself die since alpha.
Yes, I'm using Flash.
I hardly use other browsers long enough to really know, but back when I made the switch, Flash was crashing everything quite often. Konqueror was one process per window, so a crash would bring down that window and all the tabs in it. Firefox, well, one plugin acts up and the whole browser is down.
I also don't have the VLC plugin enabled, so maybe that's it. (I figure, why bother, it has a builtin player (html5), if that's not enough, I'll download the video and use mplayer.)
If you still have that switch pages = aw snap issue, I wonder if killing the Flash plugin helps? I know I do that occasionally -- though less often over time, maybe Adobe is trying to clean up their act.
It still adds up to more than Firefox, last I tested it. That's more or less what I'd expect, and I still think it's well worth it.
It also does (or at least did, for awhile) a trick where it often opens related tabs in the same process, especially anything from middleclick+new tab is likely to. I would much rather actually have one process per tab, but I don't know how to do that.
Using a bash-script/CMD batch level thing does not avoid the GPL restrictions. Invoking a GPL program, supplying it input, and parsing its output, means that the program that invokes GPG is not merely aggregated with, but is actually part of a derivative work that includes GPG.
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
Given the nature of GPG, I'm sorry, that's not what's happening.
What they're trying to prevent here is someone, say, taking the Gimp, adding some new chrome to it, along with a few dozen new import filters and plugins, basically making a bunch of proprietary modifications... and avoiding the GPL by making each of those modifications into a separate program, which accepts a dump of some internal Gimp data structure on a pipe, and returns it via a pipe -- or worse, communicates it via shared memory.
I can't imagine they were trying to claim that I couldn't, say, write a proprietary shell script that uses GNU grep. That would be absurd.
It doesn't really matter whether you distribute GPG with it or not; including a "GPG downloader" in the installer would be exactly the same as trying to distribute a dynamically linked binary,
In fact, I'm fairly sure nVidia was doing this trick for quite awhile. It goes like this: nVidia provided a binary module and some kernel source, but they didn't actually link the two together -- in theory, anyone could build a binary module that said source could talk to. When the user compiles them and loads the binary blob, they're no longer abiding by the GPL -- but the GPL also doesn't apply to end-users. It only matters if they redistribute nvidia.ko (or, whoops, nvidia-current.ko)...
I doubt this is what's happening anymore, and I'm not sure that was actually the argument. I think the current resolution is that this is not a derivative work, since the nVidia drivers are portable -- 90% of the code is shared between OSes, and presumably consoles as well. And we're talking about a binary blob which is linked into the kernel -- at least from a purely technological standpoint, that's a lot more intimate than commandline arguments and pipes.
In any case, I'm not up on this whole thing -- I have to fall back on that FSF entry which leaves me fairly convinced that if I use a program which was written as a Unix command, and I use it as it was intended -- I pass it semantically-meaningful commandline arguments, and I pipe appropriate data in and out (data, not serialized structures) -- then what I have is not a derived work, but two wholly-distinct programs which happen to communicate.
I really don't see much difference between that and, say, a GPL'd web service, which you'll note is not covered with most versions of the GPL.
But that's enough legal BS for one day -- this is why I release my own code under the MIT license. If nothing else, it's unambiguous.
...just a fact of life. There are entirely too many people who have one or two proprietary applications which require Windows.
why, during the worst global economic times any of us will probably ever see, free software has not made great strides.
It's a lose-lose situation. Let me break it down...
Bad economic times make people ridiculously conservative. Upgrading to a new version of Windows is at least perceived to be easier and safer than upgrading to Linux. Better yet, don't upgrade -- just keep doing what you're doing, put off spending any money or time at all, or risking spending money or time -- if you install Linux, and it doesn't work out, you then have to switch back to Windows. If you did Linux on your own, and you screw it up and want to go back, you may end up having to pay a Windows tech...
It doesn't matter whether the above is true. It's that it's possibly true, and it's what people think is true. Unfortunately, education here is tricky, because if I want to be honest, I have to admit that yes, all of the above is a real possibility, even though it's easier than ever to set up a dual-boot Linux installation without interfering with Windows.
Now, some people are technologically adventurous, risk-takers in general. These people want the latest and greatest, even if they might have to spend a weekend fixing their computer. But then, if you're a risk-taker, piracy is a great option right now, so the price of Linux doesn't enter into it. And if they're willing to pirate, chances are, they have all sorts of pirated proprietary software, like Photoshop, for which there is no Linux equivalent. The situation essentially reverts to the way it is when people have money.
And that's just the view without the "conspiracy theories," many of which are anything but. Look at that website -- it's not just that page. At the top of every page is the statement: "Windows(R). Life without Walls(TM). Dell recommends Windows 7." Is it entirely unreasonable to assume that Dell isn't placing that blatant advertisement there out of a genuine concern for what's best for the consumer? Most consumers don't install OSes, they buy a new computer with a new OS -- and it's not easy to buy a computer with Linux pre-installed, and even harder to find one where anything close to the actual price of Windows has been deducted from the Linux version. Indeed, Dell not only doesn't offer Ubuntu on all of their models -- hardly any of them, in fact -- and the ones they do are sold from an entirely different section of their website, making comparison much more difficult than it could be to see how much you save, if you save anything at all. (Compare that with simply putting "Ubuntu" as an option next to the various flavors of Windows, with an actual dollar amount difference.)
That isn't to say that free software has made no progress. Firefox is eating into IE's marketshare, which has resulted in a better Web for everyone, helping the move to web-based everything, which makes it easier for people to use Linux or, well, anything -- and Firefox didn't even exist in 2003. The Mobile world is a battle between Symbian, Blackberry, Android, Maemo, and iPhone, and of those, only Blackberry and iPhone are closed. "Open" is a bona-fide buzzword -- Microsoft, Apple, Oracle, and of course, Google, all make a big deal about their contributions to open source and open standards.
It also isn't to say that Linux has made no progress. People know about Ubuntu, and more people are using it all the time. We have companies like Asus taking chances -- sometimes reverting, but every now and then, we see something interesting. Dell is selling Ubuntu, even if they're being dicks about it. And of course, there's always embedded Linux -- Android, Moblin, and others.
Like most of the real world, there isn't one simple, neat answer for why things are the way they are. I'm not even sure there's a simple, neat answer for whether Linux, or Fr
I would hope that the scheduling would get better, actually, but even if the engine is only optimized to take advantage of four cores, it would probably run better if it could actually have all four cores to itself, with the OS and everything else running on core five.
That presumes the only reason to use Linux or Mac is to have things "just work". Once you remove the one myth that makes Windows a superior alternative to the new user, we can start to compare things on actual technical merits.
Though, yes, Linux and Mac do tend to "Just Work" more often than Windows.
Actually, I don't have too much of a problem with the Ubuntu that was shipped on my machine, aside from the fact that it was 32-bit. I wouldn't have too much trouble recommending a system like that to a newbie.
For another, cryptography has been around for ages. This particular concept is something I could write in half an hour as a shell script -- granted, it'd take a bit longer to build as a native Windows program, and to tie into whatever DRM they plan to use post-launch, but it's still a stupidly easy thing to do -- especially for, as way2trivial points out, a game that they spent a hundred million dollars on.
Me, I'm a C programmer and I write performance-critical server code. It doesn't crash all that often because myself and my team are competent.
I'll take your word for that. And yet...
We see other teams doing things in java that take massive amounts of memory and processor to get near what we can do on pretty standard hardware
Were those competent teams?
And these aren't the only things to look at. I don't think Java is that much of a penalty anymore -- in some cases, it's even faster -- but I'm also a Ruby developer. I care about my code being fast, but only to a point -- if my code is slower than yours by a constant factor of 100, say, well, hardware is a lot cheaper than developers. If my code is exponentially slower than yours, that's not the language, that's my fault.
there are advantages to coding natively.
What are they, on the server side?
But I'll don't really understand how python can start in a heartbeat when java takes so long...
I probably spoke too soon:
$ time java Hello Hello, world!
real 0m0.116s user 0m0.060s sys 0m0.010s $ time python -c "print 'Hello'" Hello
real 0m0.019s user 0m0.010s sys 0m0.010s
What's remarkable is how little difference there is with JRuby:
$ time ruby -e "puts 'Hello'" Hello
real 0m0.009s user 0m0.000s sys 0m0.010s $ time jruby -e "puts 'Hello'"
real 0m0.377s user 0m0.320s sys 0m0.050s
So yeah, Java is slow to start, but it's really not as bad as I thought.
You can't blame a language for awful applications written in them, it is the awful developers who throw around hacks, broken and messy, completely unoptimized code who are to blame.
I should've thrown in a caveat...
You can blame a language for shortcomings in the language. As an example, maybe it's been resolved recently (though I doubt it), but when every single flash video player, including YouTube, brings my system to its knees trying to play 1080p h.264, but the same video plays flawlessly in mplayer or VLC -- or when a small video takes 50% CPU for Flash to play, and 0.2% CPU for mplayer or VLC -- that's definitely an issue with Flash.
It's possible that everyone is doing it wrong (including YouTube), but does that really make sense?
Yes, I've seen some brilliant Flash apps. I've even seen some brilliant PHP apps. But I certainly didn't mean to claim that all languages are equal. All I'm saying is to make sure you're evaluating the language itself, and not just people screwing it up.
An example being the stupid hatred for things like GOTO. So many people use GOTOs without them even realising it, like when it is disguised as another command for a special cases like BREAKs and CONTINUEs inside loops, exit statements, errors, several others.
I suppose I'm also using GOTO when I make a function call?
I get what you're saying, but I'd also much prefer cases like break, continue, exception handling, and ad-hoc return statements than a general-purpose goto. All of these goto-like tools have well-defined semantics, they're easy to reason about, and easy to design for. Goto itself, especially mixed into any modern language, is going to be messy.
I don't think it would bother me that a language supports goto at all. Take eval -- I almost never use it, but I insist on it when looking for a language.
So many people waste time making awful chains of IF statements that could easily be condensed just by using GOTO.
An example would be helpful. I'd say, if you have awful chains of if statements, you're probably at the wrong level of abstraction -- a case would be better, but a higher level of abstraction (objects, methods) would probably be better still.
I've seen people with outright hatred for GOTOs despite the fact that the very computer they were using uses more GOTOs in a second than they have probably had hot dinners in their life.
That's pretty irrelevant. I also hate using malloc/free myself, though I realize whatever garbage collection system I'm using is doing that all the time. I also don't really like to use hexadecimal in my code, certainly not binary, but, well...
I agree that GOTO isn't evil, and I'd also agree it should be irrelevant when choosing a program -- I certainly don't search through Slashcode for gotos, and then refuse to use it if I find one. But it is dangerous, and should be avoided until you know how to use it properly -- and even then, it should be avoided, because you're going to have to work with other developers.
It doesn't matter too much to me whether it's java that's slow or if it's that 90% of java developers suck. The end result is the same, a lot of people will deliberately avoid using it.
Not necessarily -- again, do people notice or care what language an app is written in when it works? I deliberately avoid PHP, and I've been accused of avoiding it because stupid people develop in it. People also rip on Rails all the time -- "Rails can't scale" is the phrase.
But people use Twitter and Facebook, and no one cares what those are written in.
Oh, and FYI, websites cause browsers to fault relatively frequently, unfortunately, because you can't avoid having native code *somewhere*, and browsers are not written perfectly.
While true, how frequently is "frequently"? And how much is the damage?
It's been at least six months, maybe a year, since I've seen anything crash all of Chrome. It's definitely been a few months since I've seen anything crash a tab. It's been less than a week since I've seen my native email client (KMail) crash, and it seems like there's always something.
Yes, native code has to be involved at some point. Browsers can and do crash. But it certainly reduces the amount of native code quite a bit.
I don't know about you, but I see my own Ruby scripts crash a hell of a lot more often than I see the Ruby interpreter crash, and I see my little C utilities crash much more often than my Ruby scripts.
For one, a null pointer exception can actually be caught and dealt with. It also can't turn into anything exploitable, like a buffer overrun.
And I'd rather deal with segfaults once, by fixing the runtime environment, than with every single app. It's been probably six months since any part of my browser crashed, and less than a week since local, native apps have crashed.
And on top of all that, segfaults are caused by more than just dealing with uninitialized values.
it certainly is nowhere near the performance, stability, and ease of use of an application designed a little closer to the hardware.
That depends what you're looking for. There are certain things I use Web applications for that I don't want anywhere near my hardware, or even my OS -- HTML makes a nice sandbox.
In that sense -- in the sense of, hey, here's a cool toy I want to try out for a few minutes (which covers 99% of the apps in any of these newfangled "app stores") -- HTML actually wins for all of these. With a decent browser, performance comes close enough, and the speed with which the application is "installed" is unmatched. Similarly, it's much easier to just try it out for a few seconds and come back later -- and since it's sandboxed for me, it makes my machine much more stable than if I'd been using native equivalents.
Even where native apps win, they are losing ground.
Stability? That's a joke -- when was the last time a website segfaulted? Then again, native apps work without an Internet connection -- but HTML5 lets web apps do that, too.
Ease of use? Everyone knows how to use a website, and websites provide things like tabs, bookmarks, history, keyboard shortcuts, extensions, even user scripts. Often, apps have a requirement for functionality like this, and they end up rebuilding something a browser is already very good at -- for example, JDeveloper's online documentation seems to emulate a web browser full of tabs, with back and forward buttons, hyperlinks, etc, but I can't open a new link in a new tab at all, and I can't use keyboard shortcuts to switch tabs, close tabs, or go back/forward. I certainly can't bookmark things.
These are all solved problems on the Web, and what's more, by using a standard Web interface, you no longer have to get this right yourself -- if a user doesn't like how tabs work in your "application", they can simply download a new browser.
Performance? You gave Java as an example -- I have few complaints about the performance of Java itself. The main places Java loses are boot time (waiting for a JVM to fire up) and poorly-written apps. I've been forced to develop Java in school and now for an internship, using Eclipse and JDeveloper, and the difference between the performance of those IDEs, as applications, is like night and day -- Eclipse launches quickly and I've never had it lag or crash, while JDeveloper takes forever to start, the UI lags constantly, and after extended use, it almost inevitably grinds to a halt or outright crashes.
Similarly, Chrome, Konqueror, and Firefox seem to all be written in C/C++, and of these, Chrome launches faster than Konqueror, and every single website I visit seems faster in Chrome than in Konqueror, even though both have common roots in KHTML/WebKit -- even though Konqueror uses Qt, which is already loaded all over my system, and Chrome uses gtk.
The difference isn't the language, it's the developer.
I've seen many decent programs ruined as companies tossed the client software they had written in C++ or even VB, and move to web-based UIs.
There are many possible reasons for this. Probably the top two are throwing away their existing codebase (and thus, their competitive advantage), and trying to take something fundamentally non-Web and push it into the Web, instead of trying to re-think the application from the ground up as a web application.
It could also be that you had a kneejerk reaction to an otherwise decent interface. It could even be that your browser sucks. Which applications are we talking about?
But of course...
Programming things in HTML 5 that would be best written in any of a dozen other languages will just stigmatize HTML 5...
Maybe at first, the way VB, PHP, and Ruby are all stigmatized because there are so many novice programmers flocking to them. Java, perhaps even more so, as universities seem to have largely embraced either Java o
Mostly because ExpressCard is entirely too slow to match what we have in a desktop machine.
Which is a shame -- I have wanted that product pretty much since I saw it, though I'd much rather have it integrated into a standardized docking station of some sort.
Every time I think that through, though, I basically decide that I want my docking station to be either a desktop or a server -- spare CPUs and RAM, extra disks, separate monitor/keyboard/mouse, and of course, PCI, PCIe, USB, FireWire, etc.
I think next time around I'm going to get a lighter laptop and a beefy desktop, and keep the server I've got. The server, among other things, functions as a NAS, so it could share files easily between desktop and laptop.
You don't need religion to band together. Why not do it without the dogmatic baggage?
And if you look at the history of science, you find two things: First, it is one of the most reliable ways we have of discovering reality. And second, it tends to get refined, not wholly overturned. Newton wasn't wrong, just inaccurate.
Certainly, we'll be in a far better place to embrace new scientific discoveries if we don't have dogma blocking the way.
I find it somewhat amusing that you're talking about how being nice to everyone is a Christian value, yet in the same breath, you're admitting you really like admitting people.
You don't see the contradiction?
By allowing popups to appear outside the page rendering area, i.e, the bit below your tab bar and browser GUI and with small borders, it gives websites free reign and ability to create realistic popup windows that imitate software of your system, so people get suckered into installing legitimate looking spyware.
Yes, I understand -- though there are things about those which make it obvious that they're browser-generated. But again, user-initiated is the key here. Current popup blockers do a good job, I think -- Chrome blocks popups, but makes it clear when a website has requested a popup and how to enable it.
A healthy amount of skepticism would also help. For example, if a website looks local, and is asking me for my bank details or twitter account, I'm going to wonder what kind of local spyware I have installed.
I am sure there are ways to 'overlay' ontop of a fullscreen application to make it clear that it is in actual fact, a web page. Even a small bar notification saying: 'Activated full screen mode. [Ok] [Exit fullscreen]
A what notification? Flash has a pretty decent approach, I think -- there's an overlay that appears onscreen which reminds you that you've entered fullscreen, and to press esc to exit.
Then why mention fullscreenedness at all? That's a red herring. Do this instead:
Web browsers should never have been able to create windows 'outside' of the rendering area to boot (unless user-invoked)
Same applies to popups, no?
transcendental God of the Bible
The God of the Bible was, at least once upon a time, a storm god -- so very much a sky-god. His son (who is also himself) was supposedly very physical, really here (at least according to some accounts -- others aren't sure the crucifixion happened on this plane at all).
I would guess the "transcendental" understanding has far less to do with the text of the Bible, and far more to do with our increasing understanding of the world. Until we understood what the sky was, it would certainly make sense for a god to be there -- the Bible indeed talks about firmament above and below, surely a good place for a god to live.
Do you have any particular verses you'd like to bring up that hint at him being "transcendental"?
They did not believe that some old man in the sky was coming up with clever ways for them to watch their neighbors all the time.
So it's alright for exactly one person (being, entity) to watch people, but no one else?
Why?
Making a broad assumption as to the beliefs of an entire religion on one very loud extremist nutjob
Ah, the "no true Scotsman" fallacy.
Falwell's church claims 24,000 members, and it's far from unique.
Of course, you didn't respond at all to "various Protest Fundamentalist theologies" at all...
s/non//
So, most -profesionals? How... -professional of you.
Sorry, I couldn't resist when there's a bug in your joke regex about software development being hard...
(Maybe Erlang?)
Not till it has better Unicode support, at the very least.
We have Algol-descended languages based on the control-flow idea of 'do this thing, then that thing, in my private resource space',
JavaScript still functions more or less like this. Try developing a Chrome extension -- if you want to communicate between tabs, you're going to end up sending messages. Granted, it's not going to be nearly as efficient as Erlang if you're handling large data structures...
Me, I'm waiting for something like Reia, or maybe io, to get usable. Until then, I work with the tools I'm given -- Java at work and in school, Ruby and JavaScript at home.
And why should fullscreen get a pass?
I'm using Chrome 5 (stable) on Linux 64-bit. Occasionally a tab crashes or otherwise misbehaves, and I can kill it. Haven't seen "aw snap" in months, haven't seen the browser itself die since alpha.
Yes, I'm using Flash.
I hardly use other browsers long enough to really know, but back when I made the switch, Flash was crashing everything quite often. Konqueror was one process per window, so a crash would bring down that window and all the tabs in it. Firefox, well, one plugin acts up and the whole browser is down.
I also don't have the VLC plugin enabled, so maybe that's it. (I figure, why bother, it has a builtin player (html5), if that's not enough, I'll download the video and use mplayer.)
If you still have that switch pages = aw snap issue, I wonder if killing the Flash plugin helps? I know I do that occasionally -- though less often over time, maybe Adobe is trying to clean up their act.
It still adds up to more than Firefox, last I tested it. That's more or less what I'd expect, and I still think it's well worth it.
It also does (or at least did, for awhile) a trick where it often opens related tabs in the same process, especially anything from middleclick+new tab is likely to. I would much rather actually have one process per tab, but I don't know how to do that.
Using a bash-script/CMD batch level thing does not avoid the GPL restrictions. Invoking a GPL program, supplying it input, and parsing its output, means that the program that invokes GPG is not merely aggregated with, but is actually part of a derivative work that includes GPG.
Nope. From the FSF:
By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.
Given the nature of GPG, I'm sorry, that's not what's happening.
What they're trying to prevent here is someone, say, taking the Gimp, adding some new chrome to it, along with a few dozen new import filters and plugins, basically making a bunch of proprietary modifications... and avoiding the GPL by making each of those modifications into a separate program, which accepts a dump of some internal Gimp data structure on a pipe, and returns it via a pipe -- or worse, communicates it via shared memory.
I can't imagine they were trying to claim that I couldn't, say, write a proprietary shell script that uses GNU grep. That would be absurd.
It doesn't really matter whether you distribute GPG with it or not; including a "GPG downloader" in the installer would be exactly the same as trying to distribute a dynamically linked binary,
In fact, I'm fairly sure nVidia was doing this trick for quite awhile. It goes like this: nVidia provided a binary module and some kernel source, but they didn't actually link the two together -- in theory, anyone could build a binary module that said source could talk to. When the user compiles them and loads the binary blob, they're no longer abiding by the GPL -- but the GPL also doesn't apply to end-users. It only matters if they redistribute nvidia.ko (or, whoops, nvidia-current.ko)...
I doubt this is what's happening anymore, and I'm not sure that was actually the argument. I think the current resolution is that this is not a derivative work, since the nVidia drivers are portable -- 90% of the code is shared between OSes, and presumably consoles as well. And we're talking about a binary blob which is linked into the kernel -- at least from a purely technological standpoint, that's a lot more intimate than commandline arguments and pipes.
In any case, I'm not up on this whole thing -- I have to fall back on that FSF entry which leaves me fairly convinced that if I use a program which was written as a Unix command, and I use it as it was intended -- I pass it semantically-meaningful commandline arguments, and I pipe appropriate data in and out (data, not serialized structures) -- then what I have is not a derived work, but two wholly-distinct programs which happen to communicate.
I really don't see much difference between that and, say, a GPL'd web service, which you'll note is not covered with most versions of the GPL.
But that's enough legal BS for one day -- this is why I release my own code under the MIT license. If nothing else, it's unambiguous.
...just a fact of life. There are entirely too many people who have one or two proprietary applications which require Windows.
why, during the worst global economic times any of us will probably ever see, free software has not made great strides.
It's a lose-lose situation. Let me break it down...
Bad economic times make people ridiculously conservative. Upgrading to a new version of Windows is at least perceived to be easier and safer than upgrading to Linux. Better yet, don't upgrade -- just keep doing what you're doing, put off spending any money or time at all, or risking spending money or time -- if you install Linux, and it doesn't work out, you then have to switch back to Windows. If you did Linux on your own, and you screw it up and want to go back, you may end up having to pay a Windows tech...
It doesn't matter whether the above is true. It's that it's possibly true, and it's what people think is true. Unfortunately, education here is tricky, because if I want to be honest, I have to admit that yes, all of the above is a real possibility, even though it's easier than ever to set up a dual-boot Linux installation without interfering with Windows.
Now, some people are technologically adventurous, risk-takers in general. These people want the latest and greatest, even if they might have to spend a weekend fixing their computer. But then, if you're a risk-taker, piracy is a great option right now, so the price of Linux doesn't enter into it. And if they're willing to pirate, chances are, they have all sorts of pirated proprietary software, like Photoshop, for which there is no Linux equivalent. The situation essentially reverts to the way it is when people have money.
And that's just the view without the "conspiracy theories," many of which are anything but. Look at that website -- it's not just that page. At the top of every page is the statement: "Windows(R). Life without Walls(TM). Dell recommends Windows 7." Is it entirely unreasonable to assume that Dell isn't placing that blatant advertisement there out of a genuine concern for what's best for the consumer? Most consumers don't install OSes, they buy a new computer with a new OS -- and it's not easy to buy a computer with Linux pre-installed, and even harder to find one where anything close to the actual price of Windows has been deducted from the Linux version. Indeed, Dell not only doesn't offer Ubuntu on all of their models -- hardly any of them, in fact -- and the ones they do are sold from an entirely different section of their website, making comparison much more difficult than it could be to see how much you save, if you save anything at all. (Compare that with simply putting "Ubuntu" as an option next to the various flavors of Windows, with an actual dollar amount difference.)
That isn't to say that free software has made no progress. Firefox is eating into IE's marketshare, which has resulted in a better Web for everyone, helping the move to web-based everything, which makes it easier for people to use Linux or, well, anything -- and Firefox didn't even exist in 2003. The Mobile world is a battle between Symbian, Blackberry, Android, Maemo, and iPhone, and of those, only Blackberry and iPhone are closed. "Open" is a bona-fide buzzword -- Microsoft, Apple, Oracle, and of course, Google, all make a big deal about their contributions to open source and open standards.
It also isn't to say that Linux has made no progress. People know about Ubuntu, and more people are using it all the time. We have companies like Asus taking chances -- sometimes reverting, but every now and then, we see something interesting. Dell is selling Ubuntu, even if they're being dicks about it. And of course, there's always embedded Linux -- Android, Moblin, and others.
Like most of the real world, there isn't one simple, neat answer for why things are the way they are. I'm not even sure there's a simple, neat answer for whether Linux, or Fr
I would hope that the scheduling would get better, actually, but even if the engine is only optimized to take advantage of four cores, it would probably run better if it could actually have all four cores to itself, with the OS and everything else running on core five.
I suppose it depends how much overhead there is.
That presumes the only reason to use Linux or Mac is to have things "just work". Once you remove the one myth that makes Windows a superior alternative to the new user, we can start to compare things on actual technical merits.
Though, yes, Linux and Mac do tend to "Just Work" more often than Windows.
Actually, I don't have too much of a problem with the Ubuntu that was shipped on my machine, aside from the fact that it was 32-bit. I wouldn't have too much trouble recommending a system like that to a newbie.
Apparently, Dell does.
Include GPG as a blob inside the installer, which the installer unpacks as a standalone binary, and then invokes.
I don't see a problem.
Valve has done this successfully, for one.
For another, cryptography has been around for ages. This particular concept is something I could write in half an hour as a shell script -- granted, it'd take a bit longer to build as a native Windows program, and to tie into whatever DRM they plan to use post-launch, but it's still a stupidly easy thing to do -- especially for, as way2trivial points out, a game that they spent a hundred million dollars on.
Me, I'm a C programmer and I write performance-critical server code. It doesn't crash all that often because myself and my team are competent.
I'll take your word for that. And yet...
We see other teams doing things in java that take massive amounts of memory and processor to get near what we can do on pretty standard hardware
Were those competent teams?
And these aren't the only things to look at. I don't think Java is that much of a penalty anymore -- in some cases, it's even faster -- but I'm also a Ruby developer. I care about my code being fast, but only to a point -- if my code is slower than yours by a constant factor of 100, say, well, hardware is a lot cheaper than developers. If my code is exponentially slower than yours, that's not the language, that's my fault.
there are advantages to coding natively.
What are they, on the server side?
But I'll don't really understand how python can start in a heartbeat when java takes so long...
I probably spoke too soon:
What's remarkable is how little difference there is with JRuby:
So yeah, Java is slow to start, but it's really not as bad as I thought.
You can't blame a language for awful applications written in them, it is the awful developers who throw around hacks, broken and messy, completely unoptimized code who are to blame.
I should've thrown in a caveat...
You can blame a language for shortcomings in the language. As an example, maybe it's been resolved recently (though I doubt it), but when every single flash video player, including YouTube, brings my system to its knees trying to play 1080p h.264, but the same video plays flawlessly in mplayer or VLC -- or when a small video takes 50% CPU for Flash to play, and 0.2% CPU for mplayer or VLC -- that's definitely an issue with Flash.
It's possible that everyone is doing it wrong (including YouTube), but does that really make sense?
Yes, I've seen some brilliant Flash apps. I've even seen some brilliant PHP apps. But I certainly didn't mean to claim that all languages are equal. All I'm saying is to make sure you're evaluating the language itself, and not just people screwing it up.
An example being the stupid hatred for things like GOTO.
So many people use GOTOs without them even realising it, like when it is disguised as another command for a special cases like BREAKs and CONTINUEs inside loops, exit statements, errors, several others.
I suppose I'm also using GOTO when I make a function call?
I get what you're saying, but I'd also much prefer cases like break, continue, exception handling, and ad-hoc return statements than a general-purpose goto. All of these goto-like tools have well-defined semantics, they're easy to reason about, and easy to design for. Goto itself, especially mixed into any modern language, is going to be messy.
I don't think it would bother me that a language supports goto at all. Take eval -- I almost never use it, but I insist on it when looking for a language.
So many people waste time making awful chains of IF statements that could easily be condensed just by using GOTO.
An example would be helpful. I'd say, if you have awful chains of if statements, you're probably at the wrong level of abstraction -- a case would be better, but a higher level of abstraction (objects, methods) would probably be better still.
I've seen people with outright hatred for GOTOs despite the fact that the very computer they were using uses more GOTOs in a second than they have probably had hot dinners in their life.
That's pretty irrelevant. I also hate using malloc/free myself, though I realize whatever garbage collection system I'm using is doing that all the time. I also don't really like to use hexadecimal in my code, certainly not binary, but, well...
I agree that GOTO isn't evil, and I'd also agree it should be irrelevant when choosing a program -- I certainly don't search through Slashcode for gotos, and then refuse to use it if I find one. But it is dangerous, and should be avoided until you know how to use it properly -- and even then, it should be avoided, because you're going to have to work with other developers.
It doesn't matter too much to me whether it's java that's slow or if it's that 90% of java developers suck. The end result is the same, a lot of people will deliberately avoid using it.
Not necessarily -- again, do people notice or care what language an app is written in when it works? I deliberately avoid PHP, and I've been accused of avoiding it because stupid people develop in it. People also rip on Rails all the time -- "Rails can't scale" is the phrase.
But people use Twitter and Facebook, and no one cares what those are written in.
Oh, and FYI, websites cause browsers to fault relatively frequently, unfortunately, because you can't avoid having native code *somewhere*, and browsers are not written perfectly.
While true, how frequently is "frequently"? And how much is the damage?
It's been at least six months, maybe a year, since I've seen anything crash all of Chrome. It's definitely been a few months since I've seen anything crash a tab. It's been less than a week since I've seen my native email client (KMail) crash, and it seems like there's always something.
Yes, native code has to be involved at some point. Browsers can and do crash. But it certainly reduces the amount of native code quite a bit.
I don't know about you, but I see my own Ruby scripts crash a hell of a lot more often than I see the Ruby interpreter crash, and I see my little C utilities crash much more often than my Ruby scripts.
I use Chrome. Firefox isn't bad either.
For one, a null pointer exception can actually be caught and dealt with. It also can't turn into anything exploitable, like a buffer overrun.
And I'd rather deal with segfaults once, by fixing the runtime environment, than with every single app. It's been probably six months since any part of my browser crashed, and less than a week since local, native apps have crashed.
And on top of all that, segfaults are caused by more than just dealing with uninitialized values.
The webserver segfaulting is a different issue, but every bit as avoidable by, again, pulling back from the hardware just a bit.
it certainly is nowhere near the performance, stability, and ease of use of an application designed a little closer to the hardware.
That depends what you're looking for. There are certain things I use Web applications for that I don't want anywhere near my hardware, or even my OS -- HTML makes a nice sandbox.
In that sense -- in the sense of, hey, here's a cool toy I want to try out for a few minutes (which covers 99% of the apps in any of these newfangled "app stores") -- HTML actually wins for all of these. With a decent browser, performance comes close enough, and the speed with which the application is "installed" is unmatched. Similarly, it's much easier to just try it out for a few seconds and come back later -- and since it's sandboxed for me, it makes my machine much more stable than if I'd been using native equivalents.
Even where native apps win, they are losing ground.
Stability? That's a joke -- when was the last time a website segfaulted? Then again, native apps work without an Internet connection -- but HTML5 lets web apps do that, too.
Ease of use? Everyone knows how to use a website, and websites provide things like tabs, bookmarks, history, keyboard shortcuts, extensions, even user scripts. Often, apps have a requirement for functionality like this, and they end up rebuilding something a browser is already very good at -- for example, JDeveloper's online documentation seems to emulate a web browser full of tabs, with back and forward buttons, hyperlinks, etc, but I can't open a new link in a new tab at all, and I can't use keyboard shortcuts to switch tabs, close tabs, or go back/forward. I certainly can't bookmark things.
These are all solved problems on the Web, and what's more, by using a standard Web interface, you no longer have to get this right yourself -- if a user doesn't like how tabs work in your "application", they can simply download a new browser.
Performance? You gave Java as an example -- I have few complaints about the performance of Java itself. The main places Java loses are boot time (waiting for a JVM to fire up) and poorly-written apps. I've been forced to develop Java in school and now for an internship, using Eclipse and JDeveloper, and the difference between the performance of those IDEs, as applications, is like night and day -- Eclipse launches quickly and I've never had it lag or crash, while JDeveloper takes forever to start, the UI lags constantly, and after extended use, it almost inevitably grinds to a halt or outright crashes.
Similarly, Chrome, Konqueror, and Firefox seem to all be written in C/C++, and of these, Chrome launches faster than Konqueror, and every single website I visit seems faster in Chrome than in Konqueror, even though both have common roots in KHTML/WebKit -- even though Konqueror uses Qt, which is already loaded all over my system, and Chrome uses gtk.
The difference isn't the language, it's the developer.
I've seen many decent programs ruined as companies tossed the client software they had written in C++ or even VB, and move to web-based UIs.
There are many possible reasons for this. Probably the top two are throwing away their existing codebase (and thus, their competitive advantage), and trying to take something fundamentally non-Web and push it into the Web, instead of trying to re-think the application from the ground up as a web application.
It could also be that you had a kneejerk reaction to an otherwise decent interface. It could even be that your browser sucks. Which applications are we talking about?
But of course...
Programming things in HTML 5 that would be best written in any of a dozen other languages will just stigmatize HTML 5...
Maybe at first, the way VB, PHP, and Ruby are all stigmatized because there are so many novice programmers flocking to them. Java, perhaps even more so, as universities seem to have largely embraced either Java o
Mostly because ExpressCard is entirely too slow to match what we have in a desktop machine.
Which is a shame -- I have wanted that product pretty much since I saw it, though I'd much rather have it integrated into a standardized docking station of some sort.
Every time I think that through, though, I basically decide that I want my docking station to be either a desktop or a server -- spare CPUs and RAM, extra disks, separate monitor/keyboard/mouse, and of course, PCI, PCIe, USB, FireWire, etc.
I think next time around I'm going to get a lighter laptop and a beefy desktop, and keep the server I've got. The server, among other things, functions as a NAS, so it could share files easily between desktop and laptop.