He he, they have a couple of those at school, perhaps it's time to have some fun.
Though besides that what other things would be fun to put in there. I'm thinking things which would be fun just for the people who see it. Perhaps put a Kinderegg toy in there, or one M&M. Or why not put a sandwich in there, or a miniture liquor bottle?
Exactly what work is it MythTV use but don't credit? On their "info" page on their site they have a list of other projects which are used by the MythTV project (MySQL, Lame, etc.). That's pretty much what I'd expect.
Second, it was you who was complaining about having to scroll down to the bottom of the other guys site to find the "this site uses..." notice. I never said anything about that.
What I'd expect is a page (most suitable would be on the "about this project" page most likely) which includes a list of other projects you have used in yours. You don't have to mention which editor you use to type it with or under what OS. But I'd expect that if you distribute your program with a bunch of other programs that you mention this. If you fork another program that should be mentioned too.
Besides, just how many programs do you think you'd incorporate code from? In most cases you'd probably just call those programs from your program. In that case it makes more sense to just mention them with the "dependencies".
And from what I've read about the situation the mention of MythTV isn't exactly prominent in the documentation.
The first one is a agreement between US and Thailand on extraditions. It says noting about actual people being extradicted one way or the other. I'd assume that the US intend to get some people extradicted from Thailand while refusing all requests Thailand has (if they want to).
The second is stripping a former Nazi guard from Treblinka (a concentration camp) of his US citizenship since he wasn't truthful about his history on his application. The final case is about the US wanting to extradite people from France.
So, none has any relevance to the topic at hand. The australian is born in australia and has never been in the US. The most relevant case in your examples is a Nazi war criminal (and apparently an infamously brutal one).
If you read that linked PDF you'll find that what they suggest is that you add a ZIF socket to the BIOS socket. That way you can easily, and safely boot your PC and change Flash-chips to a new one upon which you install LinuxBIOS.
They also suggest that you use a slightly larger than necessary (memory wise) chip and provide instructions on how to put a/root dir on there with necessary tools. That way you have a miniture system in the BIOS, pretty neat if you ask me. (A pain to update, but I assume that it's mainly there as a backup if the harddrives fail and such.)
Seems to me like he put it at the front page at the bottom of the menu. The place were you typically put copyright notices.
Besides I think his point was that it's common desency to give credit when it's due. If you make a product based on other peoples work because they are generous enough to allow you to do that they you could give them a reference in return. The site linked in the article doesn't seem to contain any referense to MythTV, which is (IMHO) pretty damned low of them.
One issue with this is that a flash has a limited number of flashes. It's not an extremely big issue, but changing the state every time you reboot the computer may not be a good idea.
Another is that having a processor in the BIOS is not needed. The computer already has a huge CPU in it, why not use it instead of duplicating that functionality (and poorly I might add)?
Finally a lot of the time spent booting is for hardware detection and such. It's hard to remove that completely. The time could be significantly reduced from what we see today though. My BIOS spends a load of time before the entire POST sequence is over (particularly the on board RAID controller is slow as molasses to do it's thing). But initiating stuff takes time, so you will never go from power on to desktop in "no time". Only in "pretty darned fast" time.
What I think you really want is a small kernel on a LinuxBIOS. That should give you you a login. When you reach that you continue booting from a IDE device (which can be a flash device mounted on IDE). That way you don't have to put the entire disto on the quite expensive BIOS chip but can use a normal HDD or standard flash RAM, whatever suits your purposes best.
The best thing with this is that you don't have to wait until 2015. You can do it today. (Personally I'm considering making my next computer a case-study of small, quick booting and quiet.
IIRC I've read reports that you can "un-twist" the TX cable-pair and that will destroy the signal while still providing enough to make the switch keep the port open. Some experimentation may be required though.
There is a good article on it from an old Linux-magazine. It explains how to make it work without EEPROM burners and such. Note that this involves removing your BIOS while the computer is running. Needless to say it's not something a person who is unused to playing with hardware and software should attempt.
As to your other questions. It's "just" a way to boot Linux really-really fast. You'll have Linux booted in about the same time a normal POST process.
While I have no idea how much MORE it would cost if the government did meet its own needs, I have to still wonder what exactly was the cause of these "unforseen delays and cost overruns".
Well, perhaps they didn't expect to get the contract and have someone "call their bluff".
I think it looks like a big playground with all the toys dropped all over the place. Not hideous, and quite interesting though. Hard to say without actually walking around in the area though.
The percentage of people that think suicide bombings against the US are justifiable is just plain scary.
That's not quite what the report say. The question is about suicide bombings against US troops and other westeners in Iraq. The way you formulated it made it sound like attacks on US soil.
From what I've heard from reports a lot of that goes back to the typical problem with US troops. They are just not good at making friends with the local population (among other things).
If you study history I believe that you will find that the meme of sharing information freely (which is pretty much what open source is about) is not an American invention. It's been around since the US was even formed. (And before any other current country for that matter.)
The benefit of this release (from what I've gathered from previous posts) is that it allows bit-shaving. This means that you can take an existing Ogg file and downcode it simply by remove data. You do not have to re-encode the file (and thus make it lower quality due to re-encoding issues).
For me this could be a real dealbreaker as far as use is concerned. I can keep copies on my PC which are extremely high quality (basically lossless) and bit-shave them on-the-fly as I copy to my Ogg player.
Now that all fails since I don't have an Ogg player. But it would be nicer than my current setup (FLAC originals and transcode to mp3).
I believe you can get that functionality as a plugin. At least I've seen mentions of "rescue" plugins which let you return to last state if your browser crashes. It should work for shutting down as well.
And keeping your computer on during the weekend is pretty wasteful use of electricity if you ask me. Not that a computer uses enourmous amounts but it just seems unnecessary. I usually keep mine on during the week but shut it down for the weekend.
Python is nice but it also has some pretty funky stuff in it. Why do I have to send a "this" parameter when I call a method in a class for instance? That just seemed fundamentally wrong to me.
Besides, while Python is a nice language it's still not as mature as Java. Java also has the benefit of being available for many different problem areas, such as real-time and embedded computing. This means that you get a language which can be used in many follow up courses, which naturally means less extra work for the school.
In my experience I need an API reference whenever I'm doing something I haven't done before. The general idea with going to school (at least at college level and above) is that you shouldn't be doing the same thing a million times over.
All that nagging aside, Python is my favourite scripting language. In my experience it's unusably slow for many bigger applications though. I've tried making a ray-tracer in Python, but it was too slow. The code was a lot nicer than the C++ code we ended up with though.
I agree with you that the gap between procedural languages and functional languages is pretty big and that learning one doesn't teach you specifics about the other. But after studying a load of math the ideas of functional programming weren't too hard to grasp. In many ways it's just math done in a language. (I've studied Haskell BTW, which is probably one of the more math-like functional languages.)
In the introductory data structure classes I took it was mainly about different lists and simple sort algoithms. Then some chapters about other basic data structures like graphs and trees. There's not that much talk about how efficient they are (other than in general terms). It's mainly about learning that structuring the data can make your problem solving more or less difficult. This may seem blatantly obvious, but the idea of graphs is quite eye-opening if you haven't bumped into that before.
Furthermore I fail to see the major diffrence between a functional style head+tail list with a procedural head+next structure. If you have a linked list implemented as a flat array you're apparently not very geared toward making insertions/deletions in the middle a fast case.
Finally, I've done coding in a couple of languages and in my experience I've found Java to a pretty good compromise. Sure there are better ones out there for various purposes but Java is functional (as in, you can actually use it and having it on a resume might get you a job) and it hides some of the worst parts like memory management to ease the burden on beginning programmers.
That said if I were to teach a kid or a friend some programming for fun I'd probably give them a more script oriented language. There's less stuff that's confusing that way.
Yes that's all nice and so, but I must have to say that I fail to see the correlation between learning about data structures and doing some really abuse of the Java language. There are plenty of strange things like that in Java, I think a much more relevant example is how the.clone() function works. Or perhaps rather why you don't get a new copy of the object when you do it. (That one has bitten me actually, I can't really imagine why someone would put your example in "real" code.) The book "Thinking in Java" has an entire chapter about these kind of things IIRC.
I'd say that having experience with the low level stuff is certainly a benefit. But for most situations it's not needed. It sure as hell isn't needed if all you want is to do some basic coding found in 99% of programs today.
BTW I'd say your example is quite funky since you use multiple threads with the same variable. So the result could be either "a" xor "b" depending on real-time issues. I actually haven't worked with inner classes like that much, but I'd say that the "sane" way of handling the situation would be that the two "x" variables were in different scopes and thus completely independent. Due to the strange effects in large systems mentioned above I wouldn't be surprised if it didn't work that way though.
Is there some way to get what the projects need and get readable well organised code too?
I'd say you have to educate the people writing the code. Either you give the coders a quick introduction to control theory or you give the hardware engineers a course in writing readable code. You could of course do both and try to make them "meet at the middle".
My point isn't that you should teach the CS guys how to solve control theory problems, you already have people for that. The point is teaching them enough so that they know they actually don't know anything.
Which is why you don't turn the phone off. A friend of mine tried turning his off at night to save batteries. Turned out that it actually used less batteries to just keep it on during the night. If you just want it quiet that's usually in the main menu. Faster to do on my SE T630 than to turn the phone off.
And IIRC newer rechargable batteries don't have "memory" like older ones used to. So you can (and should) recharge them often.
No, a lot of those options are completely irrelevant. Most of those options should be "run-time" not compile time. For instance the keyboard thing. Every OS I've ever used with a GUI has a little feature where you can right click on the desktop or on a little flag in the corner and change keyboard and all that. There's no need to have it in the installer unless the user is going to be typing a lot. (And a reasonable installer should have a "just do your stuff" option.)
I used to belive that complicated installers were needed, then I tried booting Knoppix. Strange that it managed to boot into a fully functional desktop without asking me a single question. Now what is needed is a "migrate to HDD" button. It's already based on Debian, so it could be a great desktop installer frontend.
I wouldn't use that on a server, but that's hardly the point. The current installer should remain (well reworked, but the idea of non-GUI installer is good) for those options.
From my experiences of installing Debian is that it asks a lot of questions which can be confusing to a beginner (the old hardware installer was horrible) and doesn't give enough info on how to change that later. I think it's better to have a tool which gives you a useable desktop quickly and then shows you, in that enviroment, how to adjust settings.
3. Company X includes the full machine readable source of the GPL'ed ROM with the board they sell to company Y. Note: Company X has completely satisfied their GPL obligation. They are completely off the hook as far as anyone who acquires the software from company Y is concerned.
I would assume that Company X has to provide the source for their ROM if requested. Any party which has access to the binary has the right to request the source.
And that is our problem how? They based their business upon breaking copyright (because that's what you do if use GPL code without complying) and are thus planted in the same category as people who copy and sell CDs.
Exactly how is it driving them out of business if they comply with the GPL? Why should they be allowed to freeload on other people's efforts? They are not exactly giving away free routers to everyone who's a Linux developer.
He he, they have a couple of those at school, perhaps it's time to have some fun.
Though besides that what other things would be fun to put in there. I'm thinking things which would be fun just for the people who see it. Perhaps put a Kinderegg toy in there, or one M&M. Or why not put a sandwich in there, or a miniture liquor bottle?
Bloody brilliant idea though!
Exactly what work is it MythTV use but don't credit? On their "info" page on their site they have a list of other projects which are used by the MythTV project (MySQL, Lame, etc.). That's pretty much what I'd expect.
Second, it was you who was complaining about having to scroll down to the bottom of the other guys site to find the "this site uses..." notice. I never said anything about that.
What I'd expect is a page (most suitable would be on the "about this project" page most likely) which includes a list of other projects you have used in yours. You don't have to mention which editor you use to type it with or under what OS. But I'd expect that if you distribute your program with a bunch of other programs that you mention this. If you fork another program that should be mentioned too.
Besides, just how many programs do you think you'd incorporate code from? In most cases you'd probably just call those programs from your program. In that case it makes more sense to just mention them with the "dependencies".
And from what I've read about the situation the mention of MythTV isn't exactly prominent in the documentation.
Yeah, that was relevant.
The first one is a agreement between US and Thailand on extraditions. It says noting about actual people being extradicted one way or the other. I'd assume that the US intend to get some people extradicted from Thailand while refusing all requests Thailand has (if they want to).
The second is stripping a former Nazi guard from Treblinka (a concentration camp) of his US citizenship since he wasn't truthful about his history on his application. The final case is about the US wanting to extradite people from France.
So, none has any relevance to the topic at hand. The australian is born in australia and has never been in the US. The most relevant case in your examples is a Nazi war criminal (and apparently an infamously brutal one).
If you read that linked PDF you'll find that what they suggest is that you add a ZIF socket to the BIOS socket. That way you can easily, and safely boot your PC and change Flash-chips to a new one upon which you install LinuxBIOS.
/root dir on there with necessary tools. That way you have a miniture system in the BIOS, pretty neat if you ask me. (A pain to update, but I assume that it's mainly there as a backup if the harddrives fail and such.)
They also suggest that you use a slightly larger than necessary (memory wise) chip and provide instructions on how to put a
Seems to me like he put it at the front page at the bottom of the menu. The place were you typically put copyright notices.
Besides I think his point was that it's common desency to give credit when it's due. If you make a product based on other peoples work because they are generous enough to allow you to do that they you could give them a reference in return. The site linked in the article doesn't seem to contain any referense to MythTV, which is (IMHO) pretty damned low of them.
There are entire sections devoted to what constitutes aggregation and what rules apply to distribution (commersial or otherwise) in the GPL FAQ.
One issue with this is that a flash has a limited number of flashes. It's not an extremely big issue, but changing the state every time you reboot the computer may not be a good idea.
Another is that having a processor in the BIOS is not needed. The computer already has a huge CPU in it, why not use it instead of duplicating that functionality (and poorly I might add)?
Finally a lot of the time spent booting is for hardware detection and such. It's hard to remove that completely. The time could be significantly reduced from what we see today though. My BIOS spends a load of time before the entire POST sequence is over (particularly the on board RAID controller is slow as molasses to do it's thing). But initiating stuff takes time, so you will never go from power on to desktop in "no time". Only in "pretty darned fast" time.
What I think you really want is a small kernel on a LinuxBIOS. That should give you you a login. When you reach that you continue booting from a IDE device (which can be a flash device mounted on IDE). That way you don't have to put the entire disto on the quite expensive BIOS chip but can use a normal HDD or standard flash RAM, whatever suits your purposes best.
The best thing with this is that you don't have to wait until 2015. You can do it today. (Personally I'm considering making my next computer a case-study of small, quick booting and quiet.
IIRC I've read reports that you can "un-twist" the TX cable-pair and that will destroy the signal while still providing enough to make the switch keep the port open. Some experimentation may be required though.
There is a good article on it from an old Linux-magazine. It explains how to make it work without EEPROM burners and such. Note that this involves removing your BIOS while the computer is running. Needless to say it's not something a person who is unused to playing with hardware and software should attempt.
As to your other questions. It's "just" a way to boot Linux really-really fast. You'll have Linux booted in about the same time a normal POST process.
Even Windows has a built in RAM disk, although you have to define it in the boot files. So changing the size requires a reboot unfortunately.
Well, perhaps they didn't expect to get the contract and have someone "call their bluff".
I think it looks like a big playground with all the toys dropped all over the place. Not hideous, and quite interesting though. Hard to say without actually walking around in the area though.
That's not quite what the report say. The question is about suicide bombings against US troops and other westeners in Iraq. The way you formulated it made it sound like attacks on US soil.
From what I've heard from reports a lot of that goes back to the typical problem with US troops. They are just not good at making friends with the local population (among other things).
If you study history I believe that you will find that the meme of sharing information freely (which is pretty much what open source is about) is not an American invention. It's been around since the US was even formed. (And before any other current country for that matter.)
No true business should then suffer from "Not Invented Here" syndrome. A reality which I'm afraid we've not quite realized.
The benefit of this release (from what I've gathered from previous posts) is that it allows bit-shaving. This means that you can take an existing Ogg file and downcode it simply by remove data. You do not have to re-encode the file (and thus make it lower quality due to re-encoding issues).
For me this could be a real dealbreaker as far as use is concerned. I can keep copies on my PC which are extremely high quality (basically lossless) and bit-shave them on-the-fly as I copy to my Ogg player.
Now that all fails since I don't have an Ogg player. But it would be nicer than my current setup (FLAC originals and transcode to mp3).
I believe you can get that functionality as a plugin. At least I've seen mentions of "rescue" plugins which let you return to last state if your browser crashes. It should work for shutting down as well.
And keeping your computer on during the weekend is pretty wasteful use of electricity if you ask me. Not that a computer uses enourmous amounts but it just seems unnecessary. I usually keep mine on during the week but shut it down for the weekend.
Python is nice but it also has some pretty funky stuff in it. Why do I have to send a "this" parameter when I call a method in a class for instance? That just seemed fundamentally wrong to me.
Besides, while Python is a nice language it's still not as mature as Java. Java also has the benefit of being available for many different problem areas, such as real-time and embedded computing. This means that you get a language which can be used in many follow up courses, which naturally means less extra work for the school.
In my experience I need an API reference whenever I'm doing something I haven't done before. The general idea with going to school (at least at college level and above) is that you shouldn't be doing the same thing a million times over.
All that nagging aside, Python is my favourite scripting language. In my experience it's unusably slow for many bigger applications though. I've tried making a ray-tracer in Python, but it was too slow. The code was a lot nicer than the C++ code we ended up with though.
I agree with you that the gap between procedural languages and functional languages is pretty big and that learning one doesn't teach you specifics about the other. But after studying a load of math the ideas of functional programming weren't too hard to grasp. In many ways it's just math done in a language. (I've studied Haskell BTW, which is probably one of the more math-like functional languages.)
In the introductory data structure classes I took it was mainly about different lists and simple sort algoithms. Then some chapters about other basic data structures like graphs and trees. There's not that much talk about how efficient they are (other than in general terms). It's mainly about learning that structuring the data can make your problem solving more or less difficult. This may seem blatantly obvious, but the idea of graphs is quite eye-opening if you haven't bumped into that before.
Furthermore I fail to see the major diffrence between a functional style head+tail list with a procedural head+next structure. If you have a linked list implemented as a flat array you're apparently not very geared toward making insertions/deletions in the middle a fast case.
Finally, I've done coding in a couple of languages and in my experience I've found Java to a pretty good compromise. Sure there are better ones out there for various purposes but Java is functional (as in, you can actually use it and having it on a resume might get you a job) and it hides some of the worst parts like memory management to ease the burden on beginning programmers.
That said if I were to teach a kid or a friend some programming for fun I'd probably give them a more script oriented language. There's less stuff that's confusing that way.
Yes that's all nice and so, but I must have to say that I fail to see the correlation between learning about data structures and doing some really abuse of the Java language. There are plenty of strange things like that in Java, I think a much more relevant example is how the .clone() function works. Or perhaps rather why you don't get a new copy of the object when you do it. (That one has bitten me actually, I can't really imagine why someone would put your example in "real" code.) The book "Thinking in Java" has an entire chapter about these kind of things IIRC.
I'd say that having experience with the low level stuff is certainly a benefit. But for most situations it's not needed. It sure as hell isn't needed if all you want is to do some basic coding found in 99% of programs today.
BTW I'd say your example is quite funky since you use multiple threads with the same variable. So the result could be either "a" xor "b" depending on real-time issues. I actually haven't worked with inner classes like that much, but I'd say that the "sane" way of handling the situation would be that the two "x" variables were in different scopes and thus completely independent. Due to the strange effects in large systems mentioned above I wouldn't be surprised if it didn't work that way though.
I'd say you have to educate the people writing the code. Either you give the coders a quick introduction to control theory or you give the hardware engineers a course in writing readable code. You could of course do both and try to make them "meet at the middle".
My point isn't that you should teach the CS guys how to solve control theory problems, you already have people for that. The point is teaching them enough so that they know they actually don't know anything.
Which is why you don't turn the phone off. A friend of mine tried turning his off at night to save batteries. Turned out that it actually used less batteries to just keep it on during the night. If you just want it quiet that's usually in the main menu. Faster to do on my SE T630 than to turn the phone off.
And IIRC newer rechargable batteries don't have "memory" like older ones used to. So you can (and should) recharge them often.
No, a lot of those options are completely irrelevant. Most of those options should be "run-time" not compile time. For instance the keyboard thing. Every OS I've ever used with a GUI has a little feature where you can right click on the desktop or on a little flag in the corner and change keyboard and all that. There's no need to have it in the installer unless the user is going to be typing a lot. (And a reasonable installer should have a "just do your stuff" option.)
I used to belive that complicated installers were needed, then I tried booting Knoppix. Strange that it managed to boot into a fully functional desktop without asking me a single question. Now what is needed is a "migrate to HDD" button. It's already based on Debian, so it could be a great desktop installer frontend.
I wouldn't use that on a server, but that's hardly the point. The current installer should remain (well reworked, but the idea of non-GUI installer is good) for those options.
From my experiences of installing Debian is that it asks a lot of questions which can be confusing to a beginner (the old hardware installer was horrible) and doesn't give enough info on how to change that later. I think it's better to have a tool which gives you a useable desktop quickly and then shows you, in that enviroment, how to adjust settings.
I would assume that Company X has to provide the source for their ROM if requested. Any party which has access to the binary has the right to request the source.
And that is our problem how? They based their business upon breaking copyright (because that's what you do if use GPL code without complying) and are thus planted in the same category as people who copy and sell CDs.
Exactly how is it driving them out of business if they comply with the GPL? Why should they be allowed to freeload on other people's efforts? They are not exactly giving away free routers to everyone who's a Linux developer.