Why do they?
Tons of people are working on it, and no doubt someone will do it. There's plenty of push without the additional payoff of exclusivity.
I'm a professional programmer, I should add. The problem is, almost everything in software IS obvious about 1 year later. JPEG is totally "duh" for example, take the furrier transform, drop a few bits off all frequencies, convert back. Doing this drops the pieces of the image you are least likely to notice, it's some trivial mathematics, and anyone with rudimentary knowledge in the field could easily come up with it.
I would be very hard pressed to find an algorithm that someone wouldn't likely come up with when working on the problem domain. 3DES, blowfish, SHA1, and a few of those algorithms, simply because they are fundamentally arbitrary. Note, I was specific, RSA (which was patented) is pretty obvious for example.
Imagine if someone had patented UnionFind, BinarySearch, MedianFind, Quicksort, MergeSort, B-trees, Red-Black trees, scape-goat Trees, heaps, treeps, etc. ALL of these algorithms are fairly obvious once you start digging into that problem domain. The people who came up with them were brilliant, no question, but when you try and solve a certain type of problem you write a certain type of algorithm. I accidentally invented UnionFind once before I knew it existed.
The only purpose of patents is to encourage people to invent things. I actually suspect the entire concept is antiquated now, but I don't know other domains well enough to be sure. In software it simply isn't necessary, people invent things daily, and any real product is sufficiently covered by copyright. Patenting software is like patenting a literary method or trope. "You can't write a novel where an airplane gets hit by lightning, that's MY idea!" or "You just used alliteration with a's, I patented that for the purpose of being hilarious, sorry"... what?
...
That just makes my head hurt. Is that a troll? WTF.
1) Linux is not an OS, it's a kernel (technically, this is pedantic I admit)
2) UNIX is an OS, which predated Linux. Linux is not UNIX in any way. It is not "UNIX based"
3) Linux is a Unix. That means it conforms to the Unix spec (sortof). It has no "Unix" source or anything (ever taken an OOP class? Is-a vs. has-a relationship?).
4) OS X is a Unix, it is not a Linux. OS X runs on Mach Darwin, which is not a Linux. It is actually BSD - twice over, BSD running under BSD. where Mach2 is BSD derivative, as is Darwin. Additionally in response to a later comment OS X does not *actually* run a microkernel, as these are collocated, both running in ring 0. This is a common confusion due to a misunderstanding that Mach2 is not a microkernel, but Mach3 is.
5) Ever heard of RedHat or Suse? Both are "major corporations", and these days Suse is damned near owned by Microsoft.
Holy god, learn something or shut up.
This is a common misconception. the GPL'd isn't and never was intended to be "open" in the way you want, if you want truely free software go to BSD. The GPL's purpose is to continue the existence of somewhat "open" software, to the extent that "open" is possible with these restrictions. It restricts usage to continue it's own existence. There are good reasons for both licences, but it is a fundamental concept behind the GPL that GPL'd code is NOT free for usage by proprietary software writers (by which I mean for writing non-GPL'd code). The LGPL is a tie between these, allowing linkage, but not modification of the code without re-release. But if you link to GPL'd software you must re-release, it's obnoxious as hell, but that's the point, it's supposed to be, if you (being a corporation) don't like it, don't use the software.
Personally, I don't care if people use Linux, that's they're problem. I use it because it's better than other options. It's better because it's open source. If it starts including closed source code, then it's lost the only thing that made it better. Note - the ONLY thing. linux as a code base is a pile of garbage, any programmer worth they're salt knows that. It's good because we can fix it, not because it's well written. Take that away and there's nothing left.
I have to admit that I'm a little scared by this conversation. I had hoped I could trust the open source zealots to keep software written to be free, completly free. The code is GPL'd, Linus does not have the power to unGPL it just because it's inconvenient for hardware vendors who don't want anyone to know how they're hardware works. He didn't write linux, we did. Like I said, the GPL is obnoxious, but it's that way for a reason, if you want something free use BSD.
YES! duh, that's why you don't use wireless LAN without encryption under it (I.E. SSL or similar), and why wireless car remotes are stupid. Anything Bluetooth is insecure, because the crypto is insuffiecient and easilly attacked. They COULD make the car remotes secure by using a full asymetric cryptographic authentication scheme, but they don't, because the keys (by which I mean the key containing the physical remote) would cost an extra 5 bucks,and it's not worth it to the manufacturer.
First of all WTF?
second of all, even if you were right... who cares? I run Linux because it doesn't suck quite as much as everything else that actually supports my hardware (I'm currently toying with FreeBSD, but you have to admit that the hardware support moves a bit slower). I don't give a crap if major corporations like it, that's not my goal, why should we care? I just want something good, that I can modify and customize if necicary, and is policed by a large populatin of zealots so it's usable, free and stays that way. If people are too stupid to use it, that's their problem.
oh yeah... Short of that if you really just want to learn one language. Go with python, I've taught alot of people python, and it's as easy as they come, and has all of the power to boot when you learn how to use it. Still, starting there's not the best way to learn.
LOGO
Lego rcx native
BASIC
pascal
Visual Basic
C++
C
python
Java
x86 Assembly
SML
sh
matlab
O'caml
That's the order I started learning languages in. I'm still learning C++, java, x86 assembly, SML, python, sh and matlab, and I've been coding for 14 or 15 years now (I'm 22). I'd start students on BASIC, starting with goto's but then quickly moving to looping structures because it gives a good idea how the machine really does stuff, and of serialized execution. Serialized execution can take a while to sink in sometimes, so you really need to stay with something that stresses those concepts. then teach them both scheme or lisp, and assembly at the same time, preferrably have them write a few of the same functions. This will drive home what's happening in a functional language, and how all languages are fundamentally the same, and give a nice avinue for recursion vs. iteration. Then teach them C and SML or haskell to drive home the translation between languages. C will also let them hit their heads on recursion vs. iteration, and get some pointer, debuging and systems experience etc. and talk about how strongly typed languages work. Slap smalltalk on there for the OOP paradigm, and they've really got it all. C#, C++, python, ruby, O'caml, and perl are all fine, but they are just clugy amalgamations of concepts from other languages. I'm actually a fan of python as well, and would not be apposed to swapping python for BASIC, as long as you don't touch any of it's features (OOP, anonymous lambda expessions etc.) for a while. After that, they just figure out whatever language they need to use. Note that we are intentionally driving them through a gambit of languages. Language's and language paradigms are like modes of thaught, it's useful to have as many sitting around in your head as possible.
To recap, BASIC, LISP/asembly, C/SML, OOP
Oh yeah... and somewhere in the "assembly" section, you should learn how circuits work, how to program a touring machine, and design a very simple processor from nand gates.
I use gaim as my primary contact medium. I'm slowly moving towards jabber, but most of my friends are still on AIM. Admitadly I haven't yet graduated college (about to), but currently this is my primary means of communication. I have a group of somewhat paranoid friends (and I would claim rightly so), who use gaim-otr and so I can't imagine switching to another medium for contact. Phones don't give you strong encryption with falsafiable communications, not without hardware that costs money. PGP is fine (I.E. GPG of course), but for realtime IM's the way to go.
AIM is evil because it's hosted by AOL, and I don't like being tied to a company, ICQ the same, Jabber is less evil because at least it's open, but it's a human readable format over the wire (I.E. XML) which is just a stupid waste of bandwidth (Yeah, yeah, IM doesn't use that much... I don't care it's still dumb and wasteful). IRC is fine, but gaim support is poor, and the whole one to one, unique name IM model is more convenient. My friends and I only started rolling over to Jabber because it's less evil than AOL, and with google talk finally open to the world it's the best thing we can actually get other people to use. At least I can chat from a local server I trust run by people I know (I still use encryption though if I can).
The point is IM is extremely useful, like many of the services the web provides. I use my laptop all of the time, so a web portal for IM is stupid to me (plus I want encryption), for other people it's interesting. It's important to remember though that the web is just a pile of poorly designed and poorly implemented protocols. Web 2.0 is just that plus a bunch more poorly designed, poorly implemented, and now even more bloated protocols. The entire thing is a bunch of dumb hacks on top of dumb hacks. I'll be excited when they redisign what's going on at a lower layer such that we have fewer AND smaller protocols. shoving everything into one huge protocol, which is so general as to be meaningless, and what meaning it does have must be broken in practical applications (say XML which in practice must be parsed against spec and rarely uses DTD's) isn't exciting and neither is 15 new video protocols, and 5 new layout formats. The goal is total overall simplicity. Short of such revolutions, I'd rather stick to the simplist protocols that work for my purposes. If all the website needs to do is give me text, then html is good, and anything more is annoying bloat.
The problem is that people get pointlessly excited about a new protocol, regardless if whether it's actually applicably to their problem. For some reason they feel the need to move everything that works over to even worse, newer, more poorly supported, and less ubiquitus protocols just because they're new.
oh man... that's out now?
I'm just not paying enough attention, I only just upgraded to 2.6.16-rc4-mm1. Oh well, I suppose that I'm just lagging behind, pulling my kernels down with a package manager.
This is really a pretty irrelevent argument. Although you give a find description of the concept of fragmentation, this is not the issue. The memory is being allocated using malloc. In normal program usage (especially on a *nix) tools run, and then terminate. If a program uses a certain amount of memory, it is extremely likely that it will use that much memory again. As a result the "Free" command doesn't free memory in the sense of giving it back to the whole system, it merely gives it back to the pool of memory for that process to use, those pages are still allocated to that process regardless. As result program memory is monotonically increasing. A GC written using malloc would have exactly the same problem, simply that the memory doesn't actually go back to the OS. While there is a very interesting debate to be had between GC's and explicit memory allocation, and many very good reasons why GC's are better in some cases (especially average cases), your backing up the wrong tree here.
actually, this isn't quite on topic, but it gives me an idea for an explanation. A good analogy for what they seem to want to do would be if the electric company charged based on what you were powering. So for example, pretty much everyone wants a fridge right? so it's sort of a captive market, so they can charge more per watt to the power that goes to your fridge then say... your computer. If they charge more for your computer, you'll run fewer computers, probably unlike the fridge.
This plan also has the same problems as the billing for electricity. How can they tell what I'm powering? Well, as long as crypto is legal (which by the way it's not in say... china) we can just encrypt our traffic and they have no idea what were actually doing. So lets say that we have to mark what were doing, and if they can't tell what it is, then they charge us premium. It's true that we can always use steganography, but only if the rate differences are high, as steg costs a fair amount of bandwidth. Then they'll go after corporate critters to make spoofing the system illegal, in fact I'd guess they could already make that claim under the DMCA.
So basically, now they get to control what mediums we use on the internet. Which means that they get to control crypto, which means that they get to packet filter anything they want by content, which means so much for free speech on the internet, even in the US. If you ask me, this sounds like a major step in a bad direction for our freedoms. Time for radio transmissions below the noise floor I guess? or maybe CD's over snail mail, do it by overnight air and it's realtime!
Re:The Operative Concept is Choice
on
Why KDE Rules
·
· Score: 1
here here. Personally I use fvwm2 with a heavily hacked configuration file such that I rarely need a mouse (evil mice... eeeevill). I still use the mouse for web browsing, but not much else. The wonderful thing about linux is that you can make it do what you want. My shell is powerful, because it's touring complete, same for my window manager configuration. New users don't want that power, so they can use KDE, or Gnome (yeah yeah, you COULD hack these too, whatever). People like me, who have nothing better to do can spend weeks tweeking details of their windowmanager and use the system enough to care. I like zsh, I know some weirdo's who like csh. I like vim and emacs both and use them for different things. I program in 16+ different languages because each is best at something. I wrote my system monitor myself, it's a python script running in an aterm imbedded in an fvwm button bar, because that's how I could get it to do what I want. It's all about having a flexible set of interchangable tools, so you have to write as little as possible to get what you want. For the new user what you want is ease of use, and no programming. For the advanced user you want total configurability and efficiency. The day someone gets both of these into the same unified system will be a happy day, but it hasn't happened yet, and regardless I want options.
This is true, but too be fair this was largely due to an explicit "Black List" which was kept for people suspected of communism, not due to people spreading rummors. Not too say that such a list would/could not easilly be kept for terrorism (as one is currently kept in the US, for sex offenders... a class of people including those who pee'd illeagally, and were caught)
Still... I completely agree with your point. It is a very similar case, I'm sure there existed communist spies, just not that many. Just like now there exist terrorists, just not that many.
Wait! wait!
For performance there's also OCamel! With lots of C bindings for using C libraries, compiles to be nearly as fast as C, faster in some cases, and it's typesafe!... Now if only any developers new it...
There are many wonderful languages that I'd claim are much better than java, but no-one uses them outside of a lab, so the point of what language is best is moot. It's really dependant on what your developers are willing to use. One of many reasons I never intend on programming commercially (not bitter, really).
Largely you are right, but a couple of things you said implied that programs written in multiple languages must be run as multiple processes. Any non-bytecode language compiles down to a bunch of machine code with labels. Thus one can link any number of different languages into one binary. Every bytecode language I know of has a way to interface to this system as well. Java for instance has the JNI, (and in fact can be compiled with gcj), python has some equivelent whose name I don't know, and again is also compilable.
Anyway, I do agree with your basic point, fewer languages simplifies code in most cases, unless there are good reasons to use multiple languages.
In response to your query. My dad's favorite mix was QB and Assembly, but I supose that's not so relevent anymore:-b
I agree. The spying issues are only relevant if your not already paranoid. You should already be using ssh and other encryption for anything useful for identity theft etc. (what do you trust your Internet provider for some reason?). These war driving spammers are the only real issue (how many are there anyway?). This seems like allot of work for a spammer or kiddie-pornographer to go through when they can so easily hijack several thousand windoze boxen with ad-aware and spam through those instead. Or more likely pay someone in another country to do it for them so their not traceable as the source.
I like the idea of open AP's all over town, call me a communist I guess. I'm not letting some stupid alarmist government who arrests innocent Internet connection owners from stopping me. It's kind of like arresting the post-office for accidentally shipping a bomb someone else put in the mail.
by the way, sense when is it illegal to distribute e bomb-making articles anyway?
I think the name Monad is supposed to be a pun. There are several possible reasons why they might have chosen Monad, but given that we're in the realm of computers I'm guessing their using the term in reference to functional programming languages. In some functional languages, it is difficult to impossible to specify when an action is actually going to be taken. For pure functions in the sense that they merely evaluate to a result, this doesn't matter, but when we have side affects (for example user IO) this can be a problem. Monads are a concept used to wrap such functionality so that it's possible to specify when it happens... a Shell of course, is the user's interface to the system. get it?... heh, heh... yeah.
You are almost correct, but look a little closer. Apple has always insisted on using slightly different versions of the same hardware - their USB chipset for example is "The other USB chipset" used by almost no other hardware vendor. Also, look more deeply into OpenFirmware and other bits of their architecture. OpenFirmware SHOULD be a hundred times more beutiful than the junky BIOSes that were used to programming for, and yet it's not. In fact, getting a FOSS OS running on an apple is a total pain due to totally incomplete implementations of their self defined OpenFirmware. Many of these bugs (tinfoil hat on) appear to be intentional as useful features for non OS-X operating systems keep disappearing from newer macs. Ask a tried and true kernel dev from say... netBSD.
In other words, Apple switching to x86 is not necicarilly equivelent to apple switching to standard hardware. Given their past practices I'm betting running an OS on a mac will still be more like running it on a late world alpha (pci bus, standard cards, but somehow half of them don't quite work, flakey IDE bus, can only actually boot of one particular SCSI card, etc.) than on your average x86 desktop.
I'm thinking their switching for wholy different reasons, possibly related to Intel and AMD's apparent sudden realization that they should by a processor, not a heater.
I haven't been following apples propeganda so I don't really know their supposed reasons for the switch. just pointing out some possibly useful data points.
Why do they? Tons of people are working on it, and no doubt someone will do it. There's plenty of push without the additional payoff of exclusivity. I'm a professional programmer, I should add. The problem is, almost everything in software IS obvious about 1 year later. JPEG is totally "duh" for example, take the furrier transform, drop a few bits off all frequencies, convert back. Doing this drops the pieces of the image you are least likely to notice, it's some trivial mathematics, and anyone with rudimentary knowledge in the field could easily come up with it. I would be very hard pressed to find an algorithm that someone wouldn't likely come up with when working on the problem domain. 3DES, blowfish, SHA1, and a few of those algorithms, simply because they are fundamentally arbitrary. Note, I was specific, RSA (which was patented) is pretty obvious for example. Imagine if someone had patented UnionFind, BinarySearch, MedianFind, Quicksort, MergeSort, B-trees, Red-Black trees, scape-goat Trees, heaps, treeps, etc. ALL of these algorithms are fairly obvious once you start digging into that problem domain. The people who came up with them were brilliant, no question, but when you try and solve a certain type of problem you write a certain type of algorithm. I accidentally invented UnionFind once before I knew it existed. The only purpose of patents is to encourage people to invent things. I actually suspect the entire concept is antiquated now, but I don't know other domains well enough to be sure. In software it simply isn't necessary, people invent things daily, and any real product is sufficiently covered by copyright. Patenting software is like patenting a literary method or trope. "You can't write a novel where an airplane gets hit by lightning, that's MY idea!" or "You just used alliteration with a's, I patented that for the purpose of being hilarious, sorry"... what?
... That just makes my head hurt. Is that a troll? WTF. 1) Linux is not an OS, it's a kernel (technically, this is pedantic I admit) 2) UNIX is an OS, which predated Linux. Linux is not UNIX in any way. It is not "UNIX based" 3) Linux is a Unix. That means it conforms to the Unix spec (sortof). It has no "Unix" source or anything (ever taken an OOP class? Is-a vs. has-a relationship?). 4) OS X is a Unix, it is not a Linux. OS X runs on Mach Darwin, which is not a Linux. It is actually BSD - twice over, BSD running under BSD. where Mach2 is BSD derivative, as is Darwin. Additionally in response to a later comment OS X does not *actually* run a microkernel, as these are collocated, both running in ring 0. This is a common confusion due to a misunderstanding that Mach2 is not a microkernel, but Mach3 is. 5) Ever heard of RedHat or Suse? Both are "major corporations", and these days Suse is damned near owned by Microsoft. Holy god, learn something or shut up.
If it makes you feel any better, I get the reference.
This is a common misconception. the GPL'd isn't and never was intended to be "open" in the way you want, if you want truely free software go to BSD. The GPL's purpose is to continue the existence of somewhat "open" software, to the extent that "open" is possible with these restrictions. It restricts usage to continue it's own existence. There are good reasons for both licences, but it is a fundamental concept behind the GPL that GPL'd code is NOT free for usage by proprietary software writers (by which I mean for writing non-GPL'd code). The LGPL is a tie between these, allowing linkage, but not modification of the code without re-release. But if you link to GPL'd software you must re-release, it's obnoxious as hell, but that's the point, it's supposed to be, if you (being a corporation) don't like it, don't use the software. Personally, I don't care if people use Linux, that's they're problem. I use it because it's better than other options. It's better because it's open source. If it starts including closed source code, then it's lost the only thing that made it better. Note - the ONLY thing. linux as a code base is a pile of garbage, any programmer worth they're salt knows that. It's good because we can fix it, not because it's well written. Take that away and there's nothing left. I have to admit that I'm a little scared by this conversation. I had hoped I could trust the open source zealots to keep software written to be free, completly free. The code is GPL'd, Linus does not have the power to unGPL it just because it's inconvenient for hardware vendors who don't want anyone to know how they're hardware works. He didn't write linux, we did. Like I said, the GPL is obnoxious, but it's that way for a reason, if you want something free use BSD.
YES! duh, that's why you don't use wireless LAN without encryption under it (I.E. SSL or similar), and why wireless car remotes are stupid. Anything Bluetooth is insecure, because the crypto is insuffiecient and easilly attacked. They COULD make the car remotes secure by using a full asymetric cryptographic authentication scheme, but they don't, because the keys (by which I mean the key containing the physical remote) would cost an extra 5 bucks,and it's not worth it to the manufacturer.
First of all WTF? second of all, even if you were right... who cares? I run Linux because it doesn't suck quite as much as everything else that actually supports my hardware (I'm currently toying with FreeBSD, but you have to admit that the hardware support moves a bit slower). I don't give a crap if major corporations like it, that's not my goal, why should we care? I just want something good, that I can modify and customize if necicary, and is policed by a large populatin of zealots so it's usable, free and stays that way. If people are too stupid to use it, that's their problem.
So what is that 2 year warrenty? so it only BSOD's every 2/5 of a year? DAMN when did microsoft learn how to write that good of code!
oh yeah... Short of that if you really just want to learn one language. Go with python, I've taught alot of people python, and it's as easy as they come, and has all of the power to boot when you learn how to use it. Still, starting there's not the best way to learn.
LOGO Lego rcx native BASIC pascal Visual Basic C++ C python Java x86 Assembly SML sh matlab O'caml That's the order I started learning languages in. I'm still learning C++, java, x86 assembly, SML, python, sh and matlab, and I've been coding for 14 or 15 years now (I'm 22). I'd start students on BASIC, starting with goto's but then quickly moving to looping structures because it gives a good idea how the machine really does stuff, and of serialized execution. Serialized execution can take a while to sink in sometimes, so you really need to stay with something that stresses those concepts. then teach them both scheme or lisp, and assembly at the same time, preferrably have them write a few of the same functions. This will drive home what's happening in a functional language, and how all languages are fundamentally the same, and give a nice avinue for recursion vs. iteration. Then teach them C and SML or haskell to drive home the translation between languages. C will also let them hit their heads on recursion vs. iteration, and get some pointer, debuging and systems experience etc. and talk about how strongly typed languages work. Slap smalltalk on there for the OOP paradigm, and they've really got it all. C#, C++, python, ruby, O'caml, and perl are all fine, but they are just clugy amalgamations of concepts from other languages. I'm actually a fan of python as well, and would not be apposed to swapping python for BASIC, as long as you don't touch any of it's features (OOP, anonymous lambda expessions etc.) for a while. After that, they just figure out whatever language they need to use. Note that we are intentionally driving them through a gambit of languages. Language's and language paradigms are like modes of thaught, it's useful to have as many sitting around in your head as possible. To recap, BASIC, LISP/asembly, C/SML, OOP Oh yeah... and somewhere in the "assembly" section, you should learn how circuits work, how to program a touring machine, and design a very simple processor from nand gates.
SML says "tycon mismatch!" - but that's what makes it awsome
that's okay, I never started using java
I use gaim as my primary contact medium. I'm slowly moving towards jabber, but most of my friends are still on AIM. Admitadly I haven't yet graduated college (about to), but currently this is my primary means of communication. I have a group of somewhat paranoid friends (and I would claim rightly so), who use gaim-otr and so I can't imagine switching to another medium for contact. Phones don't give you strong encryption with falsafiable communications, not without hardware that costs money. PGP is fine (I.E. GPG of course), but for realtime IM's the way to go. AIM is evil because it's hosted by AOL, and I don't like being tied to a company, ICQ the same, Jabber is less evil because at least it's open, but it's a human readable format over the wire (I.E. XML) which is just a stupid waste of bandwidth (Yeah, yeah, IM doesn't use that much... I don't care it's still dumb and wasteful). IRC is fine, but gaim support is poor, and the whole one to one, unique name IM model is more convenient. My friends and I only started rolling over to Jabber because it's less evil than AOL, and with google talk finally open to the world it's the best thing we can actually get other people to use. At least I can chat from a local server I trust run by people I know (I still use encryption though if I can). The point is IM is extremely useful, like many of the services the web provides. I use my laptop all of the time, so a web portal for IM is stupid to me (plus I want encryption), for other people it's interesting. It's important to remember though that the web is just a pile of poorly designed and poorly implemented protocols. Web 2.0 is just that plus a bunch more poorly designed, poorly implemented, and now even more bloated protocols. The entire thing is a bunch of dumb hacks on top of dumb hacks. I'll be excited when they redisign what's going on at a lower layer such that we have fewer AND smaller protocols. shoving everything into one huge protocol, which is so general as to be meaningless, and what meaning it does have must be broken in practical applications (say XML which in practice must be parsed against spec and rarely uses DTD's) isn't exciting and neither is 15 new video protocols, and 5 new layout formats. The goal is total overall simplicity. Short of such revolutions, I'd rather stick to the simplist protocols that work for my purposes. If all the website needs to do is give me text, then html is good, and anything more is annoying bloat. The problem is that people get pointlessly excited about a new protocol, regardless if whether it's actually applicably to their problem. For some reason they feel the need to move everything that works over to even worse, newer, more poorly supported, and less ubiquitus protocols just because they're new.
oh man... that's out now? I'm just not paying enough attention, I only just upgraded to 2.6.16-rc4-mm1. Oh well, I suppose that I'm just lagging behind, pulling my kernels down with a package manager.
Hmmm, but isn't this Y_combinator rather... Paradoxical? - I like curry, tastes good with french fries
This is really a pretty irrelevent argument. Although you give a find description of the concept of fragmentation, this is not the issue. The memory is being allocated using malloc. In normal program usage (especially on a *nix) tools run, and then terminate. If a program uses a certain amount of memory, it is extremely likely that it will use that much memory again. As a result the "Free" command doesn't free memory in the sense of giving it back to the whole system, it merely gives it back to the pool of memory for that process to use, those pages are still allocated to that process regardless. As result program memory is monotonically increasing. A GC written using malloc would have exactly the same problem, simply that the memory doesn't actually go back to the OS. While there is a very interesting debate to be had between GC's and explicit memory allocation, and many very good reasons why GC's are better in some cases (especially average cases), your backing up the wrong tree here.
actually, this isn't quite on topic, but it gives me an idea for an explanation. A good analogy for what they seem to want to do would be if the electric company charged based on what you were powering. So for example, pretty much everyone wants a fridge right? so it's sort of a captive market, so they can charge more per watt to the power that goes to your fridge then say... your computer. If they charge more for your computer, you'll run fewer computers, probably unlike the fridge. This plan also has the same problems as the billing for electricity. How can they tell what I'm powering? Well, as long as crypto is legal (which by the way it's not in say... china) we can just encrypt our traffic and they have no idea what were actually doing. So lets say that we have to mark what were doing, and if they can't tell what it is, then they charge us premium. It's true that we can always use steganography, but only if the rate differences are high, as steg costs a fair amount of bandwidth. Then they'll go after corporate critters to make spoofing the system illegal, in fact I'd guess they could already make that claim under the DMCA. So basically, now they get to control what mediums we use on the internet. Which means that they get to control crypto, which means that they get to packet filter anything they want by content, which means so much for free speech on the internet, even in the US. If you ask me, this sounds like a major step in a bad direction for our freedoms. Time for radio transmissions below the noise floor I guess? or maybe CD's over snail mail, do it by overnight air and it's realtime!
here here. Personally I use fvwm2 with a heavily hacked configuration file such that I rarely need a mouse (evil mice... eeeevill). I still use the mouse for web browsing, but not much else. The wonderful thing about linux is that you can make it do what you want. My shell is powerful, because it's touring complete, same for my window manager configuration. New users don't want that power, so they can use KDE, or Gnome (yeah yeah, you COULD hack these too, whatever). People like me, who have nothing better to do can spend weeks tweeking details of their windowmanager and use the system enough to care. I like zsh, I know some weirdo's who like csh. I like vim and emacs both and use them for different things. I program in 16+ different languages because each is best at something. I wrote my system monitor myself, it's a python script running in an aterm imbedded in an fvwm button bar, because that's how I could get it to do what I want. It's all about having a flexible set of interchangable tools, so you have to write as little as possible to get what you want. For the new user what you want is ease of use, and no programming. For the advanced user you want total configurability and efficiency. The day someone gets both of these into the same unified system will be a happy day, but it hasn't happened yet, and regardless I want options.
This is true, but too be fair this was largely due to an explicit "Black List" which was kept for people suspected of communism, not due to people spreading rummors. Not too say that such a list would/could not easilly be kept for terrorism (as one is currently kept in the US, for sex offenders... a class of people including those who pee'd illeagally, and were caught) Still... I completely agree with your point. It is a very similar case, I'm sure there existed communist spies, just not that many. Just like now there exist terrorists, just not that many.
Wait! wait! For performance there's also OCamel! With lots of C bindings for using C libraries, compiles to be nearly as fast as C, faster in some cases, and it's typesafe! ... Now if only any developers new it...
There are many wonderful languages that I'd claim are much better than java, but no-one uses them outside of a lab, so the point of what language is best is moot. It's really dependant on what your developers are willing to use. One of many reasons I never intend on programming commercially (not bitter, really).
Largely you are right, but a couple of things you said implied that programs written in multiple languages must be run as multiple processes. Any non-bytecode language compiles down to a bunch of machine code with labels. Thus one can link any number of different languages into one binary. Every bytecode language I know of has a way to interface to this system as well. Java for instance has the JNI, (and in fact can be compiled with gcj), python has some equivelent whose name I don't know, and again is also compilable. Anyway, I do agree with your basic point, fewer languages simplifies code in most cases, unless there are good reasons to use multiple languages. In response to your query. My dad's favorite mix was QB and Assembly, but I supose that's not so relevent anymore :-b
I agree. The spying issues are only relevant if your not already paranoid. You should already be using ssh and other encryption for anything useful for identity theft etc. (what do you trust your Internet provider for some reason?). These war driving spammers are the only real issue (how many are there anyway?). This seems like allot of work for a spammer or kiddie-pornographer to go through when they can so easily hijack several thousand windoze boxen with ad-aware and spam through those instead. Or more likely pay someone in another country to do it for them so their not traceable as the source.
I like the idea of open AP's all over town, call me a communist I guess. I'm not letting some stupid alarmist government who arrests innocent Internet connection owners from stopping me. It's kind of like arresting the post-office for accidentally shipping a bomb someone else put in the mail.
by the way, sense when is it illegal to distribute e bomb-making articles anyway?
I think the name Monad is supposed to be a pun. There are several possible reasons why they might have chosen Monad, but given that we're in the realm of computers I'm guessing their using the term in reference to functional programming languages. In some functional languages, it is difficult to impossible to specify when an action is actually going to be taken. For pure functions in the sense that they merely evaluate to a result, this doesn't matter, but when we have side affects (for example user IO) this can be a problem. Monads are a concept used to wrap such functionality so that it's possible to specify when it happens... a Shell of course, is the user's interface to the system. get it?... heh, heh... yeah.
You are almost correct, but look a little closer. Apple has always insisted on using slightly different versions of the same hardware - their USB chipset for example is "The other USB chipset" used by almost no other hardware vendor. Also, look more deeply into OpenFirmware and other bits of their architecture. OpenFirmware SHOULD be a hundred times more beutiful than the junky BIOSes that were used to programming for, and yet it's not. In fact, getting a FOSS OS running on an apple is a total pain due to totally incomplete implementations of their self defined OpenFirmware. Many of these bugs (tinfoil hat on) appear to be intentional as useful features for non OS-X operating systems keep disappearing from newer macs. Ask a tried and true kernel dev from say... netBSD. In other words, Apple switching to x86 is not necicarilly equivelent to apple switching to standard hardware. Given their past practices I'm betting running an OS on a mac will still be more like running it on a late world alpha (pci bus, standard cards, but somehow half of them don't quite work, flakey IDE bus, can only actually boot of one particular SCSI card, etc.) than on your average x86 desktop. I'm thinking their switching for wholy different reasons, possibly related to Intel and AMD's apparent sudden realization that they should by a processor, not a heater. I haven't been following apples propeganda so I don't really know their supposed reasons for the switch. just pointing out some possibly useful data points.