Will this driver speed up the creation of a native one?
Since now NTFS.SYS is working under Linux although through emulation it should be quite easy to spy to what it's doing, and try to improve the native driver based on that.
The thing I'm complaining about here is not that it's hard to install, but that it's a pain in the arse to troubleshoot. I hate doing that with Windows. It seems to be built with a "we know better than you" mentality, and as result I get drivers refusing to install because they're unable to detect my hardware in safe mode.
Linux is definitely far from perfect (I will admit I didn't like it at all the first time I tried it). However, I started really liking it after using it for a few months, while after years of experience with Windows I was hating it more and more every day. It's not that bad of an OS when it works properly though.
What gets me about Windows is the little details. How hard would it be to have detailed boot logging? Or make Win98 either work with more than 512MB RAM, or at least warn about it on boot?
Again, Linux is problematic. Say, writing a script that calls ppp was far from intuitive. But on the other hand, when it works it continues working. It is not normal that after about 10 years of experience using Windows I still have to think well about installing any application!
Here's an example. Say, I find that my IM client doesn't work, or has an annoying bug. On Linux, it's a problem of choosing one of the other 5 clients and doing "emerge whatever". I know that portage takes care of ensuring that programs don't overwrite each other's files, and that the system is managed by a group of people that while might not be saints are quite unlikely to package software that will destroy my system.
On Windows, I get an.exe installer and have to think a lot: "Will it install incompatible version of $DLL"?, "Will it come with spyware?", "Will it mess up the registry?", "Can it be uninstalled cleanly at all?" (There are Windows programs where the uninstall option does nothing!), "What am I agreeing to?" (famous Media Player EULA issue).
Ultimately, this resulted in using vmware. I keep several VMs for different purposes: developing, testing, general crap I want to try... and I have had to rollback some of those.
So tell me, oh genius, how was I supposed to know what was wrong when it started locking up on boot for no good reason?
In the past, all the problems I had with Linux were very easy to solve, because it gave me plenty information with kernel boot messages. There was no way of convincing Win2K to do the same./bootlog and/noguiboot didn't help at all because that gave me only logging of the drivers being loaded before the screen where it locked up.
Re:The article contained no heretical ideas, so...
on
What You Can't Say
·
· Score: 1
Not really trollish. Let's see:
1) Agree, nothing to discuss here.
2) Disagree, pretty much any GUI is "Windows Wannabe", which itself was invented at Xerox.
3) Maybe, but so what? Word is far too complex anyway, almost nobody uses even 10% of its functions (which could be provided by somebody else). And it's a cheap alternative. For 90% of people OpenOffice would work prefectly fine.
4) What do you mean "ripping off"? Linux follows the POSIX spec pretty closely. Anything implementing that is going to come out looking very similar to Unix. Linus implemented a Minix clone, there was never any pretension of being original or groundbreaking.
5) See above, Linux implements POSIX, which makes it pretty obvious it can't be as innovative as Plan 9. It still has some nice new things though.
6) Most OSS developers repeat existing designs because it's easier and they like developing and not thinking of an innovative design. Then, you can always find some new ideas. There are few, but the same happens with the closed source software most of the time.
Having Hitler's bad press would definitely be bad. There'd be plenty people just waiting for the right moment to kill you. There have to be very few advantages if any in being hated by millions of people.
The usual bad press... well, depends. If you get famous for having scammed $1m, you'll definitely get some bad press, but then there will be always some people who will think that you did something really clever. I think this is one fairly large problem.
This pretty much proves that this sentence used by some people is false.
I spend a lot of time with computers, and it's consistently only Windows what makes me waste my time. Although these days I don't use Windows very often, here's a comparison:
Windows 2000:
It took me *one week* to install it. I finished the install, and decided to install SP3 that I already had downloaded, thinking to upgrade to SP4 later to save download time. Big error. It wouldn't boot after that, locking up in the logo screen. Later it turned out it was because I didn't have the "power management" driver for my motherboard. The driver wouldn't install in safe mode because it couldn't detect the hardware (well, THANK YOU, whoever had that nice userfriendly idea).
After a few days it turned out that it randomly managed to boot in normal mode, which allowed me to install the driver.
Total time lost must have been about 10 hours. Also, some things couldn't be done since I couldn't get it to work for that week.
Windows 98:
This one probably made me lose also a significant amount of time, spread over a month. I was having strange random errors with it. Things like "Out of memory" when I obviously had more than enough RAM.
Later, it finally turned out that it didn't work with more than 512MB RAM, and I had 1GB. Could have warned me about that at least.
Bye bye Win98. More time lost to make sure everything that was in the Win98 drive is backed up and moved to Win2K.
Linux (Gentoo):
reconfiguring X for my LCD monitor. Total maybe about 15 minutes or so.
In case somebody is wondering about the time lost to install it, it must have been about 30 minutes at most, because I installed it while using Debian.
After these problems and many others, I've pretty much completely switched to Linux, with Windows ocasionally running in vmware. I have a separate VM for every task, which seems the only way of making it reliable...
It's wasted time because it's time that things aren't working properly.
For example. You have a car to save you time and carry stuff around. Would it be worth using your car if on average every day you had to spend an hour messing with it, and it would break randomly in the middle of the highway? Probably not. You'd probably just take a bus, or walk if you could instead.
So, the time you spend fixing your car is wasted - because you could be doing something much more interesting with your time instead. Working on your car so that it looks nicer, or works faster is one thing. Spending an hour messing with it so that it will start is another.
IIRC, this was discussed on the ReiserFS lists a while ago.
Basically, ReiserFS does only metadata journalling by default. This means that after a crash your metadata will be good. That is, you're not going to suddenly find out that half of the files in/usr have corrupted filenames, or that your computer crashes when trying to a read a file.
However, this doesn't guarantee that the contents of the files will be in order. To ensure that you need full data journalling, which is of course slower. I've heard that ReiserFS 4 has transactions that let programs group operations in such a way that the changes get rolled back to the last checkpoint.
You've got to understand, that whatever your archievements are, that doesn't entitle you to behave as a moron. For example, I have great respect for Alan Cox. But, if I ever see him trolling slashdot while I have points, I'm going to mod him down.
The thing that the X team did were great of course, but lately all I've been hearing of them is that they got lazy, advertised their CVS privileges as if it was some god-given privilege, while not doing almost anything at all with it, and made it difficut for people who were at that time doing much more useful work the possibility of making it easier. I'm very glad to hear that now they finally recognized that they were only stalling the development.
Having created something Open Source shouldn't mean that you're free to be dictator of that thing. In Open Source this especially makes little sense, because the point of it is the development of a program, not the exhaltation of its authors. I remember that Linus himself said once that if he believes that Linux will advance better without him, he will resign.
Use debootstrap. It will create a minimal install in any folder. Then chroot, and there you go, a small Debian system. Using that, you can either install Debian on another partition while running another distribution, or I suppose you also could replace your current install with Debian by booting into single user mode, and replacing your old system with Debian.
While you should be able to simply chroot into your new system and start adding stuff, I'd be a very good idea to boot it first. Debian will need to run some scripts on boot to finish configuring itself.
I'd go with the first option. The second one is too easy to screw up if you don't know what you're doing.
Chat, what else. Like IRC, only in most cases between just 2 people.
It's pretty convenient too. Email is not suited to some purposes. Like say, you want to help somebody troubleshoot something. Email is very inconvenient for this. Sure you can mail lots of messages, but those things go slowly. IM is fast, and convenient because you could simply paste URLs, error messages, etc, instead of going through the whole process of opening a new email window, selecting who to send it to...
In the office IM is nice because it doesn't interrupt. You can also easily set away/busy status to let people know that they should try later. A phone pretty much requires you to pick it up. Going somewhere requires getting up, which is again invonvenient if you need to talk about something related to something you have near you.
Well, my computer has 114 processes running at the time. O(n^n) would be *very* bad here. Heck, it'd probably be bad even if I had just 10 running.
I don't think this will happen any time soon, but a way of working around a slow O(1) algorhitm would be simply measuring the amount of data, and switching to the algorhitm that's faster. Say, with 10 processes running it uses the old one, with more than 100 it switches to O(1).
No, the idea is that the O(1) scheduler has static overhead period. Not per task. It always takes the same time, independently of whether 10 or 10000 processes are running.
Simple example of an O(1) operation: Accessing a position in an array. Whether there is one or 1000 elements, accessing one of them takes the same time. This is simple to exploit as well.
Suppose that depending on the value of a byte (random, so that any value has the same probability of happening) you have to do some work. You can write a switch with 256 choices. This will raise the time needed to do all the required tests linearly.
Or, you can store pointers to the functions that handle each task in a table, and call the function by the pointer stored in table[n]. In this case, you can have any number of functions, and the time needed to decide which one to call will still be the same.
This was about two years ago, I think. It happened near Christmas. We had just installed a new pretty lamp in the living room and were all looking at the pretty effect that light makes with the dust. Then suddenly we realized that it's not dust, it's smoke from the kitchen!
Turns out mom left a frying pan there, and the oil caught fire. Mom yells "Cover it with something!". I run and bring a big towel. Mom: "Not that one!". Anyway, we fixed that pretty quick, and other than a lot of smoke nothing happened.
A few days later a strange package for mom from dad appeared under the tree. We all wondered what was it (pretty big, very heavy...) and finally she opened it.
Oh, of course I'm sure that with some practice he could do pretty well at it.
Don't get me wrong, I have lots of respect for him, and his talk wasn't *that* bad. Now, it wasn't really good either. I mean, seeing Marcelo show slides of the 2.4 kernel changelog and saying "in 2.4.whatever we fixed the scheduler" isn't really exciting, especially when you go to listen to people like Miguel de Icaza. Then, I have no idea of how to talk about that in a more exciting way, and would certainly not done it any better myself.
I guess that there's also the fact that being the maintainer is a rather unexciting job, just one where you have a big responsibility.
He's been like that for a while, I've seen him with that kind of hair at HispaLinux (big spanish Linux conference) which was in September. At the beginning I though he was one of the people who came to attend to his talk:-)
Unfortunately, he's not the right person to talk in public, he seemed to be really nervous and didn't tell anything very new. Nobody can do everything though. I'm really happy with how the 2.4 kernel evolved.
Then probably that's why it works. IIRC, SMP wasn't supported by Creative, which meant no SMP-compatible Windows drivers. Linux on the other hand has its own open source drivers. I think all ALSA drivers are SMP safe.
In any case, that wouldn't work for me, because although I use Linux 99% of the time, I do need to boot Windows once in a while. Creative cards caused me lots of problems as well, especially the combination of the SB Live with the VIA686B southbridge, which caused lockups and disk corruption. Then there are the false promises by Creative "your card will be upgradeable via software", and their annoying behavior (they removed the drivers from their site for several days).
So I decided to try something else, and got the Terratec DMX X-Fire 1024. Works very nicely, pretty much the same capabilities as the SB Live, and it's got a digital input too.
Right, I was talking about Creative sound cards. When I bought my dual computer it was known that Creative drivers didn't work with SMP. I'm not completely sure about now.
The solution to that is easy: Don't buy cards from crappy manufacturers, like Creative for example. I've got a dual Athlon MP here, and it works prefectly fine win Windows and Linux with a GeForce 2 MX 400 and Terratec DMX XFire sound card.
BTW, HT is supposed to work more or less the same as SMP, so it will probably give you the same driver problems.
Hungarian can be useful in limited amounts. For example, for VB it can fairly nice. I use hungarian for the controls on a form, because there it removes a source of confusion. For example:
optPrintRange - option box "Print range" txtPrintRange - text field for specifying the range PrintRange - some random variable
This can make things noticeably easier when used with code completion if you know you have a checkbox somewhere for printing the selected text, and don't remember exactly if it's chkPrintSelected or chkPrintSelection.
Now, for variable names, I almost never use it, excepting for the 3 or 4 global variables to make it absolutely clear when I read the code that they are global.
What about C, I only write command-line programs in it, and never use this kind of notation.
Will this driver speed up the creation of a native one?
Since now NTFS.SYS is working under Linux although through emulation it should be quite easy to spy to what it's doing, and try to improve the native driver based on that.
In Soviet Russia, of course.
Nah, no problem really.
.exe installer and have to think a lot: "Will it install incompatible version of $DLL"?, "Will it come with spyware?", "Will it mess up the registry?", "Can it be uninstalled cleanly at all?" (There are Windows programs where the uninstall option does nothing!), "What am I agreeing to?" (famous Media Player EULA issue).
The thing I'm complaining about here is not that it's hard to install, but that it's a pain in the arse to troubleshoot. I hate doing that with Windows. It seems to be built with a "we know better than you" mentality, and as result I get drivers refusing to install because they're unable to detect my hardware in safe mode.
Linux is definitely far from perfect (I will admit I didn't like it at all the first time I tried it). However, I started really liking it after using it for a few months, while after years of experience with Windows I was hating it more and more every day. It's not that bad of an OS when it works properly though.
What gets me about Windows is the little details. How hard would it be to have detailed boot logging? Or make Win98 either work with more than 512MB RAM, or at least warn about it on boot?
Again, Linux is problematic. Say, writing a script that calls ppp was far from intuitive. But on the other hand, when it works it continues working. It is not normal that after about 10 years of experience using Windows I still have to think well about installing any application!
Here's an example. Say, I find that my IM client doesn't work, or has an annoying bug. On Linux, it's a problem of choosing one of the other 5 clients and doing "emerge whatever". I know that portage takes care of ensuring that programs don't overwrite each other's files, and that the system is managed by a group of people that while might not be saints are quite unlikely to package software that will destroy my system.
On Windows, I get an
Ultimately, this resulted in using vmware. I keep several VMs for different purposes: developing, testing, general crap I want to try... and I have had to rollback some of those.
Heh, that'd be great, really.
And very funny as well, since Windows has a local root exploit *by design*. It's called "shatter", and it's been on slashdot a while ago.
Here you have the whole config:
Tyan Tiger MPX (S2466N-4M), 2 x Athlon MP 2000+, 1 GB ECC DDR RAM.
Terratec DMX XFire 1024 sound card
GeForce 2 MX 400 video card
CD drive(TOSHIBA CD-ROM XM-6702B), burner (_NEC CD-RW NR-7900A)
Hard disks: Maxtor 6Y120L0, Maxtor 6Y080L0
AFAIK, there is nothing wrong with any of those companies. Linux works fine, Linux ECC support doesn't report any errors.
So tell me, oh genius, how was I supposed to know what was wrong when it started locking up on boot for no good reason?
/bootlog and /noguiboot didn't help at all because that gave me only logging of the drivers being loaded before the screen where it locked up.
In the past, all the problems I had with Linux were very easy to solve, because it gave me plenty information with kernel boot messages. There was no way of convincing Win2K to do the same.
Not really trollish. Let's see:
1) Agree, nothing to discuss here.
2) Disagree, pretty much any GUI is "Windows Wannabe", which itself was invented at Xerox.
3) Maybe, but so what? Word is far too complex anyway, almost nobody uses even 10% of its functions (which could be provided by somebody else). And it's a cheap alternative. For 90% of people OpenOffice would work prefectly fine.
4) What do you mean "ripping off"? Linux follows the POSIX spec pretty closely. Anything implementing that is going to come out looking very similar to Unix. Linus implemented a Minix clone, there was never any pretension of being original or groundbreaking.
5) See above, Linux implements POSIX, which makes it pretty obvious it can't be as innovative as Plan 9. It still has some nice new things though.
6) Most OSS developers repeat existing designs because it's easier and they like developing and not thinking of an innovative design. Then, you can always find some new ideas. There are few, but the same happens with the closed source software most of the time.
Depends on what kind of bad press I suppose.
Having Hitler's bad press would definitely be bad. There'd be plenty people just waiting for the right moment to kill you. There have to be very few advantages if any in being hated by millions of people.
The usual bad press... well, depends. If you get famous for having scammed $1m, you'll definitely get some bad press, but then there will be always some people who will think that you did something really clever. I think this is one fairly large problem.
This pretty much proves that this sentence used by some people is false.
I spend a lot of time with computers, and it's consistently only Windows what makes me waste my time. Although these days I don't use Windows very often, here's a comparison:
Windows 2000:
It took me *one week* to install it. I finished the install, and decided to install SP3 that I already had downloaded, thinking to upgrade to SP4 later to save download time. Big error. It wouldn't boot after that, locking up in the logo screen. Later it turned out it was because I didn't have the "power management" driver for my motherboard. The driver wouldn't install in safe mode because it couldn't detect the hardware (well, THANK YOU, whoever had that nice userfriendly idea).
After a few days it turned out that it randomly managed to boot in normal mode, which allowed me to install the driver.
Total time lost must have been about 10 hours. Also, some things couldn't be done since I couldn't get it to work for that week.
Windows 98:
This one probably made me lose also a significant amount of time, spread over a month. I was having strange random errors with it. Things like "Out of memory" when I obviously had more than enough RAM.
Later, it finally turned out that it didn't work with more than 512MB RAM, and I had 1GB. Could have warned me about that at least.
Bye bye Win98. More time lost to make sure everything that was in the Win98 drive is backed up and moved to Win2K.
Linux (Gentoo):
reconfiguring X for my LCD monitor. Total maybe about 15 minutes or so.
In case somebody is wondering about the time lost to install it, it must have been about 30 minutes at most, because I installed it while using Debian.
After these problems and many others, I've pretty much completely switched to Linux, with Windows ocasionally running in vmware. I have a separate VM for every task, which seems the only way of making it reliable...
It's wasted time because it's time that things aren't working properly.
For example. You have a car to save you time and carry stuff around. Would it be worth using your car if on average every day you had to spend an hour messing with it, and it would break randomly in the middle of the highway? Probably not. You'd probably just take a bus, or walk if you could instead.
So, the time you spend fixing your car is wasted - because you could be doing something much more interesting with your time instead. Working on your car so that it looks nicer, or works faster is one thing. Spending an hour messing with it so that it will start is another.
IIRC, this was discussed on the ReiserFS lists a while ago.
/usr have corrupted filenames, or that your computer crashes when trying to a read a file.
Basically, ReiserFS does only metadata journalling by default. This means that after a crash your metadata will be good. That is, you're not going to suddenly find out that half of the files in
However, this doesn't guarantee that the contents of the files will be in order. To ensure that you need full data journalling, which is of course slower. I've heard that ReiserFS 4 has transactions that let programs group operations in such a way that the changes get rolled back to the last checkpoint.
No, we need more of those people as well.
You've got to understand, that whatever your archievements are, that doesn't entitle you to behave as a moron. For example, I have great respect for Alan Cox. But, if I ever see him trolling slashdot while I have points, I'm going to mod him down.
The thing that the X team did were great of course, but lately all I've been hearing of them is that they got lazy, advertised their CVS privileges as if it was some god-given privilege, while not doing almost anything at all with it, and made it difficut for people who were at that time doing much more useful work the possibility of making it easier. I'm very glad to hear that now they finally recognized that they were only stalling the development.
Having created something Open Source shouldn't mean that you're free to be dictator of that thing. In Open Source this especially makes little sense, because the point of it is the development of a program, not the exhaltation of its authors. I remember that Linus himself said once that if he believes that Linux will advance better without him, he will resign.
Use debootstrap. It will create a minimal install in any folder. Then chroot, and there you go, a small Debian system. Using that, you can either install Debian on another partition while running another distribution, or I suppose you also could replace your current install with Debian by booting into single user mode, and replacing your old system with Debian.
While you should be able to simply chroot into your new system and start adding stuff, I'd be a very good idea to boot it first. Debian will need to run some scripts on boot to finish configuring itself.
I'd go with the first option. The second one is too easy to screw up if you don't know what you're doing.
Chat, what else. Like IRC, only in most cases between just 2 people.
It's pretty convenient too. Email is not suited to some purposes. Like say, you want to help somebody troubleshoot something. Email is very inconvenient for this. Sure you can mail lots of messages, but those things go slowly. IM is fast, and convenient because you could simply paste URLs, error messages, etc, instead of going through the whole process of opening a new email window, selecting who to send it to...
In the office IM is nice because it doesn't interrupt. You can also easily set away/busy status to let people know that they should try later. A phone pretty much requires you to pick it up. Going somewhere requires getting up, which is again invonvenient if you need to talk about something related to something you have near you.
Well, my computer has 114 processes running at the time. O(n^n) would be *very* bad here. Heck, it'd probably be bad even if I had just 10 running.
I don't think this will happen any time soon, but a way of working around a slow O(1) algorhitm would be simply measuring the amount of data, and switching to the algorhitm that's faster. Say, with 10 processes running it uses the old one, with more than 100 it switches to O(1).
No, the idea is that the O(1) scheduler has static overhead period. Not per task. It always takes the same time, independently of whether 10 or 10000 processes are running.
Simple example of an O(1) operation: Accessing a position in an array. Whether there is one or 1000 elements, accessing one of them takes the same time. This is simple to exploit as well.
Suppose that depending on the value of a byte (random, so that any value has the same probability of happening) you have to do some work. You can write a switch with 256 choices. This will raise the time needed to do all the required tests linearly.
Or, you can store pointers to the functions that handle each task in a table, and call the function by the pointer stored in table[n]. In this case, you can have any number of functions, and the time needed to decide which one to call will still be the same.
This was about two years ago, I think. It happened near Christmas. We had just installed a new pretty lamp in the living room and were all looking at the pretty effect that light makes with the dust. Then suddenly we realized that it's not dust, it's smoke from the kitchen!
Turns out mom left a frying pan there, and the oil caught fire. Mom yells "Cover it with something!". I run and bring a big towel. Mom: "Not that one!". Anyway, we fixed that pretty quick, and other than a lot of smoke nothing happened.
A few days later a strange package for mom from dad appeared under the tree. We all wondered what was it (pretty big, very heavy...) and finally she opened it.
A fire extinguisher.
Oh, of course I'm sure that with some practice he could do pretty well at it.
Don't get me wrong, I have lots of respect for him, and his talk wasn't *that* bad. Now, it wasn't really good either. I mean, seeing Marcelo show slides of the 2.4 kernel changelog and saying "in 2.4.whatever we fixed the scheduler" isn't really exciting, especially when you go to listen to people like Miguel de Icaza. Then, I have no idea of how to talk about that in a more exciting way, and would certainly not done it any better myself.
I guess that there's also the fact that being the maintainer is a rather unexciting job, just one where you have a big responsibility.
He's been like that for a while, I've seen him with that kind of hair at HispaLinux (big spanish Linux conference) which was in September. At the beginning I though he was one of the people who came to attend to his talk :-)
Unfortunately, he's not the right person to talk in public, he seemed to be really nervous and didn't tell anything very new. Nobody can do everything though. I'm really happy with how the 2.4 kernel evolved.
I think it'd be much nicer if the language could handle Perl-style returning of arrays. Example:
($status, $data) = function();
Then probably that's why it works. IIRC, SMP wasn't supported by Creative, which meant no SMP-compatible Windows drivers. Linux on the other hand has its own open source drivers. I think all ALSA drivers are SMP safe.
In any case, that wouldn't work for me, because although I use Linux 99% of the time, I do need to boot Windows once in a while. Creative cards caused me lots of problems as well, especially the combination of the SB Live with the VIA686B southbridge, which caused lockups and disk corruption. Then there are the false promises by Creative "your card will be upgradeable via software", and their annoying behavior (they removed the drivers from their site for several days).
So I decided to try something else, and got the Terratec DMX X-Fire 1024. Works very nicely, pretty much the same capabilities as the SB Live, and it's got a digital input too.
Right, I was talking about Creative sound cards. When I bought my dual computer it was known that Creative drivers didn't work with SMP. I'm not completely sure about now.
The solution to that is easy: Don't buy cards from crappy manufacturers, like Creative for example. I've got a dual Athlon MP here, and it works prefectly fine win Windows and Linux with a GeForce 2 MX 400 and Terratec DMX XFire sound card.
BTW, HT is supposed to work more or less the same as SMP, so it will probably give you the same driver problems.
Hungarian can be useful in limited amounts. For example, for VB it can fairly nice. I use hungarian for the controls on a form, because there it removes a source of confusion. For example:
optPrintRange - option box "Print range"
txtPrintRange - text field for specifying the range
PrintRange - some random variable
This can make things noticeably easier when used with code completion if you know you have a checkbox somewhere for printing the selected text, and don't remember exactly if it's chkPrintSelected or chkPrintSelection.
Now, for variable names, I almost never use it, excepting for the 3 or 4 global variables to make it absolutely clear when I read the code that they are global.
What about C, I only write command-line programs in it, and never use this kind of notation.
You can buy two dual Athlons for that money, if you don't add RAID.