If any non-zero probability situation is repeated an infinite amount of times, the probability becomes one for that set.
Your thinking is not rigorous enough. "repeated an infinite amount of times" has no mathematical meaning.
Follow my advice and read a bit about sequences and series. Understand what it means for a sequence to converge to a value (learn and understand the rigorous definition which is something like the sequence a(n) converges to x if for all epsilon > 0 there exists an N such that for all n > N, |a(n) - x| epsilon).
Try to find a text that explains how to construct the real numbers out of the integers (we take the set of all integer sequences that converge and partition it by placing sequences in the same partition if they converge to the same value, each partition defines one real number). (There is real beauty here, especially after dealing with these real numbers purely on the basis of (13) axioms that define their behaviour).
Read a bit about Set Theory especially Cantor's theory of the infinite. There is lots of good stuff there, very simple yet profound truths. Like one farmer can tell whether he has more sheep than another even if he can't count, (he can just match the sheep up one by one and who ever owns the left over sheep has the most). This same method can be used compare the sizes of sets. By doing this we find that some infinite sets (the real numbers) are larger than others (the integers).
One area where visual programming is a big plus is designing dialog layouts for gui programs. A visual interface utilizing a toolbox of user interface components and a drawing area (like a drawing program) is great for productivity.
Writing a good dialog design program is not easy though. They should handle reading in files they write, and have proper layout support for resizeable dialogs (so you can specify whether UI components stick to a particular side or reposition themselves as the dialog is grown).
Another nice visual programming tool is a the class browser that lets you navigate your program by showing a hierarchy of class and methods.
My original introduction to an IDE was Turbo Pascal 5.5. It had the best IDE I've ever used, (interestingly it supported neither of the tools I described above). For years I though IDE meant integrated debugging environment. The support for visual debugging (setting breakpoints, stepping, watching variables) was novel and effective.
Now at my day job I use the Talking Moon visual tools (C++ and J++) and nearly all the time I simply use cout and System.out.print to debug as the visual debugger is so horribly slow (On a PII450/128MB). It's frustrating seeing technology go backwards like this.
Actually I would say that attempting to limit users choice to a single desktop environment by black marketing to be Microsoft like behaviour.
Funding two desktops is good for users as it ensures alternatives exist. It makes good business sense too. KDE has never been healthier, if Redhat had ignored it then they would have limited themselves to creating a second rate distribution and risked losing their position as market leader.
Futhermore Redhat supporting both KDE and GNOME improves the likelihood of these two DEs providing interoperable object models.
This is terrific. I'm glad to see Redhat follow this mature line of behaviour this can only help to improve free software and grow the free *nix community.
Infinity is not a number, it's a mathematical concept. You started off so promisingly.
You can't actually get an infinite number of monkeys with an infinite number of typewriters together. Let's just stick to mathematics.
Your example about a nonterminating, nonrepeating decimal doesn't really apply with monkeys and typewriters. Actually the analogy fits very well.
In fact, since you didn't even type out your example number all the way,....
Ellipsis (...) is a mathematical notion. For example I may write 0.0101000100000001000000... to mean:
The limit as n tends to infinity of the sum 0.1^(2^i) where i is an element of the set of integers from 1 to n.
...Whatever the chance may be that a monkey will not press a given key, it approaches zero as the number of monkeys at work approaches infinity Approaches but never reaches zero. So no matter how many keys a monkey types there is always a non-zero probability that the monkey types just one key many times.
So, at infinity, which is attainable in a thought experiment... This is rubbish, or at least it is a sequence of words with no mathematical relevancy.
Instead of thinking about a monkey typing consider a sequency of digits, let d(i) denote the ith digit in the sequence. Let x be the limit as n tends to infinity* of the sum (0.1^i)*d(i) where i is an element of the set of integers from 1 to n. Now x does not necessarily contain the sequence of digits 123 (for instance if x = 0.000... = 0),and in fact we can not be certain that it will contain any given sequence. By the same logic (or a weakened form of it as we have left our pristine mathematical environment) a monkey typing an infinite sequence of characters will not necessarily reproduce any work of Shakespeare.
*If you want a rigorous definition of what the statement the limit as n tends to infinity means visit your nearest library and pick up a book on Calculus that covers "Sequences and Series", any half decent university Calculus text book will cover this.
I don't know whether XFree is or isn't GNU but in order for it to be GNU, the act of adoption would have to be mutually respected. That is: 1) FSF has to adopt X, and 2) XFree has to consider FSF its parent.
Otherwise it doesn't mean anything. (GNU could adopt Windows, but I wouldn't start calling it GNU/Windows). Got a link from XFree showing (2)?
(I just spent five minutes and couldn't find anything to this effect).
>Try proving that 1 == 1 without using any preconceived ideas.
Though few people realize it the essential quality of proof is the ability to instill belief. (This is a mathematical definition as given by Femat). This definition is a sensible consequence of the (self-contradictory) 'fact' that we can never truly know anything (a 'truth' that is self evident to any philosopher).
>horoscopes are just as valid as anything else [including science]
Crap.
Science like horoscopes are imperfect. Scientific theory like the theory of horoscopes is imprecise, and sometimes downright wrong. As we can never really know anything believing in these theories is a matter of faith.
However the Scientific process is different from (though inspired by) Religious practice. Scientific theories aren't accepted unless
1) They can be used to predict measurable phenomena
(eg The theory of gravity predicts that masses will be attracted to each other by a measurable amount).
2) The results of experiments agree with the predictions made by using the scientific theory.
(Gauss predicted where an asteriod Ceres? would reappear in the sky the next year after observing its position over a short duration of time).
Now horoscopes do make a lot of predictions, but I can't measure their accuracy, hence horoscopes aren't scientific.
The same goes for Religion which deals with the supernatural.
Now historically religious persons would disagree with this, this is what miracles are all about (God exists since supernatural events occur). I think the jury will be out indefiinitely on this, though the Catholic church seems to be declaring less miracles nowadays.
I don't disbelieve in horoscopes, or religion, but I sure as hell don't believe in them:-)
Or a more serious note I've noticed people putting down religion, abstract mathematics and philosphy in this thread. I find this lack of repect disconcerting. As a friend of mine once pointed out, philosophy isn't a waste of time it gave us our system of logic!
how bad it's going to be. I saw a Y2K page on my banks website claiming they would be Y2K compliant by 1 Jan 1999. Emailed them about it and got no response. Sent another (somewhat nasty) email and got a response saying that their 'internal' systems were Y2K compliant but they wouldn't be fully Y2K compliant until July. This morning I thought to myself, hell our Win NT machines don't even have reliable connections to out Netware server, we don't even have a reliable filesystem. I bet other firms are the same, how badly can Y2K bugs hurt us? Others days I fell like being far, very far from the big city come 1 Jan.
Capitalism pits us all against each other, dog eat dog, with no safety nets, except of course if you're born rich. The best thing and the worst thing about capitalism. I think that the competition is good, but I dislike inheritance. I feel that inheritance encourages generation of wealth by the individual at a cost to society.
We know communism failed, but please don't equate socialism with communism I didn't equate socialism with communism, I pondered whether, they are both derived from marxism and hence are based on the assumption that free will does not exist.
Socialism seems to be working just fine. Ask anyone in Northern or Western Europe. They love it. I was born in a socialist country, it was great... while we could afford it. But the beancounters made us rationalise. State owned enterprises were sold to foreign compaines, education and health care went from being free to user pays overnight, and the unions were disempowered (through the government passing laws to require the negotiation of individual contracts). I don't envy socialism, it bankrupted my country. Don't bother to hold it up as some kind of political ideal, to me it symbolises stupidity and gluttony.
In this country, you're only free if you could afford to be free. That's true in any country. Wealth is a prerequisite to freedom. Thus the importance of using the most efficient system or resource allocation possible. (Which I believe to be capitalism)
Before I got into computers, I had so many problems with cops it was unreal, and it was all for one thing, I lived in working class neighborhoods, therefore, I was a criminal. Now, is that freedom? No that's reality.
Though there are exceptions (like sorting with templates) as a general rule of thumb C++ will speed up your development but not your code.
Mind you if you have hand rolled your own linked-lists and tree data structures then you might want to have a look at C++'s standard template library (the STL). I've found myself thinking "I'm glad I've got these vectors and hashmaps templates, if I had been programming in plain C then I would of had to substitute easier to code but less efficent data structures just to get the job done in time".
Free will vs. determinism arguments are exceedingly tiresome. You are welcome to email me at the above address if you wish to continue it, I don't want to subject the rest of Slashdot to it.
No, please do continue this discussion. I am finding it exceedingly interesting.
I'm not that interested in free will vs. deterministic arguments, this hasn't been the focus of this discussion. Instead I've been exposed to the idea that marxism (and hence socialism and communism?) are based on the assumption that we have no free will, while capitalism is based on (or more importantly works because of) the assumption that we do have free will.
Personally I've found this to be a stunning and valuable revelation. Let the man speak!
References are a thing that should be avoided (why use them when there are much cleaner pointers) Well they are needed for overloading operators, like operator +.
overloaded operators should do what they were originally meant to do Um, I don't quite follow you here. Are you advocating completely avoiding operator overloading? I hate having to write crap like ((Integer)(myVector.elementAt[i])).intValue() in Java where as in C++ I can simply write myVector[i] (well part of the problem is that Java doesn't have templates). Anyway the point is that operator overloading as used in the STL makes it possible to write much more readable code.
the standard c++ library is a horrible kludge and an example of bad code Well I thought the STL is a library specification rather than an implementation, so it doesn't make sense to call it bad code. Do you think it is designed badly? I know it bloats my code horribly but I'm kinda hoping that's because C++ compilers are still immature.
The Java Security model and web browsers are brain damaged and make writing a good search applet way harder than it should be.
A security exception is raised when an applet attempts to open a file for read only RandomAccess (even if it is in a subdirectory of the directory that the applet resides in). You can only open a file for sequential access. This sucks, badly.
A way around this would be to open a file for sequential access and use the skipBytes method to mimic RandomAccess this works and is fast on IE but is DEAD SLOW under netscape.
I'm an expert C hacker. I can do C++ and perl too. Good for you. I tolerate all the config files with inconsistant syntax. If forced, I can even deal with fucking useless Scheme or LISP. Personally I like LISP a lot, you should have a look at Haskell too.
Makefiles are another matter. I have a template one with explicit dependancies, so I normally just hack something out of that. For more advanced stuff though... Check this out: Makefiles are very useful general purpose tool. Give functional (kinda LISP) and rule based (Makefiles) programming styles a fair go, it'll expand your mind much more than learning yet another imperative language will.
What is that shit? Here is some more, from a different package:
%.o : %.c $(strip $(CC) $(CFLAGS) -c $^)
Now %.o : %.c means this is a generic (also called implicit) rule for making any.o file (say foo.o) out of a.c file (foo.c). The left hand %.o is the target and the right hand side %.c is the dependency. Make makes targets out of dependencies and saves (the computers) time by only making the target if it is older than the dependency (ie if the target is out of date).
Okay, consider $(strip $(CC) $(CFLAGS) -c $^) start from the inside and work out $(CC) and $(CFLAGS) are environment variables defined previously (probably at the top of the Makefile). $(CC) is your c compiler say egcs and $(CFLAGS) are optional flags to be passed to your compiler (for optimization, debugging etc), like I said it's optional so let's assume it's blank. so $(strip $(CC) $(CFLAGS) -c $^) expands to $(strip egcs -c $^)
Now $^ is a special makefile variable (also known as an automatic variable). It evaluates to the list of dependencies, in this case there is just one %.c, so if foo.o was being made it would evaluate to foo.c. So we are left with $(strip egcs -c foo.c)
Strip is a make function that strips out redundant white space so this evaluates to egcs -c foo.c
Cool, onto the second rule: oldps w uptime tload free vmstat sessreg utmp: % : %.o $(strip $(CC) $(LDFLAGS) -o $@ $ $(LIB_TGT) $(EXTRALIBS))
Now this is simple, it'll make any of the (multiple) targets (called %) by making the file %.o and executing the command $(strip $(CC) $(LDFLAGS) -o $@ $where $@ is the target being made and $so executing make oldps will result in Make firing the second rule, with target oldps and dependecny oldps.o. This will result in the first rule being fired which will result in the command egcs -c oldps.c being executed if oldps.c is newer than oldps.o, now that the first rule has succeeded in making all its dependencies it executes egcs -o oldps oldps.o if oldps.o is newer than oldps.
That wasn't so hard was it? Now go change the makefile so it takes header (.h) files into account
Agreed, I am very impressed with Google. Like somone else said it just goes to show that all the best ideas aren't used up yet.
[In the hope that someone at Google is reading this] Just one complaint about Google, please eliminate different URLs that simply duplicate the same content.
Video games can never replace the tactile experience of a good pinball game
I started off playing video games, played them for about a decade before even touching a pinball game.
I've found pinball to be a much more enjoyable game. In fact when I think about it I guess I never enjoyed playing video games at all, they were just a way of passing the time.
Perhaps its something to do with being a programmer. I've never understood how people could be satisfied with just using their computers to play games (or use office applications). I've also noticed that pinball was preferred over video games by computer graphics majors I studied with.
I consider myself a fairly easy going guy, but I couldn't help but notice my finger was hovering over the FLAME button after reading that "geeks love pop culture".
I asked the nearest slashdotter to me whether he had read this article, he replied "oh I saw that, I didn't read it though, being a geek I'm not that interested in pop culture"
If any non-zero probability situation is repeated an infinite amount of times, the probability becomes one for that set.
Your thinking is not rigorous enough. "repeated an infinite amount of times" has no mathematical meaning.
Follow my advice and read a bit about sequences and series. Understand what it means for a sequence to converge to a value (learn and understand the rigorous definition which is something like the sequence a(n) converges to x if for all epsilon > 0 there exists an N such that for all n > N, |a(n) - x| epsilon).
Try to find a text that explains how to construct the real numbers out of the integers (we take the set of all integer sequences that converge and partition it by placing sequences in the same partition if they converge to the same value, each partition defines one real number). (There is real beauty here, especially after dealing with these real numbers purely on the basis of (13) axioms that define their behaviour).
Read a bit about Set Theory especially Cantor's theory of the infinite. There is lots of good stuff there, very simple yet profound truths. Like one farmer can tell whether he has more sheep than another even if he can't count, (he can just match the sheep up one by one and who ever owns the left over sheep has the most). This same method can be used compare the sizes of sets. By doing this we find that some infinite sets (the real numbers) are larger than others (the integers).
Then you will understand infinity.
One area where visual programming is a big plus is designing dialog layouts for gui programs. A visual interface utilizing a toolbox of user interface components and a drawing area (like a drawing program) is great for productivity.
Writing a good dialog design program is not easy though. They should handle reading in files they write, and have proper layout support for resizeable dialogs (so you can specify whether UI components stick to a particular side or reposition themselves as the dialog is grown).
Another nice visual programming tool is a the class browser that lets you navigate your program by showing a hierarchy of class and methods.
My original introduction to an IDE was Turbo Pascal 5.5. It had the best IDE I've ever used, (interestingly it supported neither of the tools I described above). For years I though IDE meant integrated debugging environment. The support for visual debugging (setting breakpoints, stepping, watching variables) was novel and effective.
Now at my day job I use the Talking Moon visual tools (C++ and J++) and nearly all the time I simply use cout and System.out.print to debug as the visual debugger is so horribly slow (On a PII450/128MB). It's frustrating seeing technology go backwards like this.
Actually I would say that attempting to limit users choice to a single desktop environment by black marketing to be Microsoft like behaviour.
Funding two desktops is good for users as it ensures alternatives exist. It makes good business sense too. KDE has never been healthier, if Redhat had ignored it then they would have limited themselves to creating a second rate distribution and risked losing their position as market leader.
Futhermore Redhat supporting both KDE and GNOME improves the likelihood of these two DEs providing interoperable object models.
This is terrific. I'm glad to see Redhat follow this mature line of behaviour this can only help to improve free software and grow the free *nix community.
Well done Redhat.
Profiles? I thought (guessed) that a cookie based mechanism was used.
BTW, I browse slashdot with KFM (from KDE 1.1), the login is automatic.
Infinity is not a number, it's a mathematical concept.
....
...Whatever the chance may be that a monkey will not press a given key, it approaches zero as the number of monkeys at work approaches infinity
You started off so promisingly.
You can't actually get an infinite number of monkeys with an infinite number of typewriters together.
Let's just stick to mathematics.
Your example about a nonterminating, nonrepeating decimal doesn't really apply with monkeys and typewriters.
Actually the analogy fits very well.
In fact, since you didn't even type out your example number all the way,
Ellipsis (...) is a mathematical notion. For example I may write 0.0101000100000001000000... to mean:
The limit as n tends to infinity of the sum 0.1^(2^i) where i is an element of the set of integers from 1 to n.
Approaches but never reaches zero. So no matter how many keys a monkey types there is always a non-zero probability that the monkey types just one key many times.
So, at infinity, which is attainable in a thought experiment...
This is rubbish, or at least it is a sequence of words with no mathematical relevancy.
Instead of thinking about a monkey typing consider a sequency of digits, let d(i) denote the ith digit in the sequence. Let x be the limit as n tends to infinity* of the sum (0.1^i)*d(i) where i is an element of the set of integers from 1 to n.
Now x does not necessarily contain the sequence of digits 123 (for instance if x = 0.000... = 0),and in fact we can not be certain that it will contain any given sequence. By the same logic (or a weakened form of it as we have left our pristine mathematical environment) a monkey typing an infinite sequence of characters will not necessarily reproduce any work of Shakespeare.
*If you want a rigorous definition of what the statement the limit as n tends to infinity means visit your nearest library and pick up a book on Calculus that covers "Sequences and Series", any half decent university Calculus text book will cover this.
I glad someone pointed this out.
Thankyou.
I don't know whether XFree is or isn't GNU but in order for it to be GNU, the act of adoption would have to be mutually respected. That is:
1) FSF has to adopt X, and
2) XFree has to consider FSF its parent.
Otherwise it doesn't mean anything. (GNU could adopt Windows, but I wouldn't start calling it GNU/Windows). Got a link from XFree showing (2)?
(I just spent five minutes and couldn't find anything to this effect).
>Try proving that 1 == 1 without using any preconceived ideas.
:-)
Though few people realize it the essential quality of proof is the ability to instill belief. (This is a mathematical definition as given by Femat). This definition is a sensible consequence of the (self-contradictory) 'fact' that we can never truly know anything (a 'truth' that is self evident to any philosopher).
>horoscopes are just as valid as anything else [including science]
Crap.
Science like horoscopes are imperfect. Scientific theory like the theory of horoscopes is imprecise, and sometimes downright wrong. As we can never really know anything believing in these theories is a matter of faith.
However the Scientific process is different from (though inspired by) Religious practice. Scientific theories aren't accepted unless
1) They can be used to predict measurable phenomena
(eg The theory of gravity predicts that masses will be attracted to each other by a measurable amount).
2) The results of experiments agree with the predictions made by using the scientific theory.
(Gauss predicted where an asteriod Ceres? would reappear in the sky the next year after observing its position over a short duration of time).
Now horoscopes do make a lot of predictions, but I can't measure their accuracy, hence horoscopes aren't scientific.
The same goes for Religion which deals with the supernatural.
Now historically religious persons would disagree with this, this is what miracles are all about (God exists since supernatural events occur). I think the jury will be out indefiinitely on this, though the Catholic church seems to be declaring less miracles nowadays.
I don't disbelieve in horoscopes, or religion, but I sure as hell don't believe in them
Or a more serious note I've noticed people putting down religion, abstract mathematics and philosphy in this thread.
I find this lack of repect disconcerting. As a friend of mine once pointed out, philosophy isn't a waste of time it gave us our system of logic!
I'm just dying to know if something like them is going to be implemented.
The suspense is killing me!
how bad it's going to be. I saw a Y2K page on my banks website claiming they would be Y2K compliant by 1 Jan 1999. Emailed them about it and got no response. Sent another (somewhat nasty) email and got a response saying that their 'internal' systems were Y2K compliant but they wouldn't be fully Y2K compliant until July. This morning I thought to myself, hell our Win NT machines don't even have reliable connections to out Netware server, we don't even have a reliable filesystem. I bet other firms are the same, how badly can Y2K bugs hurt us? Others days I fell like being far, very far from the big city come 1 Jan.
Capitalism pits us all against each other, dog eat dog, with no safety nets, except of course if you're born rich.
The best thing and the worst thing about capitalism. I think that the competition is good, but I dislike inheritance. I feel that inheritance encourages generation of wealth by the individual at a cost to society.
We know communism failed, but please don't equate socialism with communism
I didn't equate socialism with communism, I pondered whether, they are both derived from marxism and hence are based on the assumption that free will does not exist.
Socialism seems to be working just fine. Ask anyone in Northern or Western Europe. They love it.
I was born in a socialist country, it was great... while we could afford it. But the beancounters made us rationalise. State owned enterprises were sold to foreign compaines, education and health care went from being free to user pays overnight, and the unions were disempowered (through the government passing laws to require the negotiation of individual contracts).
I don't envy socialism, it bankrupted my country. Don't bother to hold it up as some kind of political ideal, to me it symbolises stupidity and gluttony.
In this country, you're only free if you could afford to be free.
That's true in any country. Wealth is a prerequisite to freedom. Thus the importance of using the most efficient system or resource allocation possible. (Which I believe to be capitalism)
Before I got into computers, I had so many problems with cops it was unreal, and it was all for one thing, I lived in working class neighborhoods, therefore, I was a criminal. Now, is that freedom?
No that's reality.
Though there are exceptions (like sorting with templates) as a general rule of thumb C++ will speed up your development but not your code.
Mind you if you have hand rolled your own linked-lists and tree data structures then you might want to have a look at C++'s standard template library (the STL). I've found myself thinking "I'm glad I've got these vectors and hashmaps templates, if I had been programming in plain C then I would of had to substitute easier to code but less efficent data structures just to get the job done in time".
Free will vs. determinism arguments are exceedingly tiresome. You are welcome to email me at the above address if you wish to continue it, I don't want to subject the rest of Slashdot to it.
No, please do continue this discussion. I am finding it exceedingly interesting.
I'm not that interested in free will vs. deterministic arguments, this hasn't been the focus of this discussion. Instead I've been exposed to the idea that marxism (and hence socialism and communism?) are based on the assumption that we have no free will, while capitalism is based on (or more importantly works because of) the assumption that we do have free will.
Personally I've found this to be a stunning and valuable revelation. Let the man speak!
KFM from KDE 1.1 works fine.
I am becoming more and more convinced there is no point replacing it with Gecko.
Anyone tried KFM III?
At least in altavista searching for a url finds all sites that link to that url. Very useful for a number of reasons.
Gee it's been ages (weeks) since I performed a search using one of those old search engines. Try www.google.com you won't regret it.
References are a thing that should be avoided (why use them when there are much cleaner pointers)
Well they are needed for overloading operators, like operator +.
overloaded operators should do what they were originally meant to do
Um, I don't quite follow you here. Are you advocating completely avoiding operator overloading? I hate having to write crap like ((Integer)(myVector.elementAt[i])).intValue() in Java where as in C++ I can simply write myVector[i] (well part of the problem is that Java doesn't have templates). Anyway the point is that operator overloading as used in the STL makes it possible to write much more readable code.
the standard c++ library is a horrible kludge and an example of bad code
Well I thought the STL is a library specification rather than an implementation, so it doesn't make sense to call it bad code. Do you think it is designed badly? I know it bloats my code horribly but I'm kinda hoping that's because C++ compilers are still immature.
The Java Security model and web browsers are brain damaged and make writing a good search applet way harder than it should be.
A security exception is raised when an applet attempts to open a file for read only RandomAccess (even if it is in a subdirectory of the directory that the applet resides in). You can only open a file for sequential access. This sucks, badly.
A way around this would be to open a file for sequential access and use the skipBytes method to mimic RandomAccess this works and is fast on IE but is DEAD SLOW under netscape.
I'm an expert C hacker. I can do C++ and perl too.
:-)
.o file (say foo.o) out of a .c file (foo.c).
Good for you.
I tolerate all the config files with inconsistant syntax. If forced, I can even deal with fucking useless Scheme or LISP.
Personally I like LISP a lot, you should have a look at Haskell too.
Makefiles are another matter. I have a template one with explicit dependancies, so I normally just hack something out of that. For more advanced stuff though... Check this out:
Makefiles are very useful general purpose tool. Give functional (kinda LISP) and rule based (Makefiles) programming styles a fair go, it'll expand your mind much more than learning yet another imperative language will.
_Groovy_ horizontal rule.
modules: $(patsubst %, _mod_%, $(SUBDIRS))
$(patsubst %, _mod_%, $(SUBDIRS)) : include/linux/version.h
$(MAKE) -C $(patsubst _mod_%, %, $@) CFLAGS="$(CFLAGS) $(MODFLAGS)" MAKI NG_MODULES=1 modules
Let's not start with this one
What is that shit? Here is some more, from a different package:
%.o : %.c
$(strip $(CC) $(CFLAGS) -c $^)
Now %.o : %.c means this is a generic (also called implicit) rule for making any
The left hand %.o is the target and the right hand side %.c is the dependency. Make makes targets out of dependencies and saves (the computers) time by only making the target if it is older than the dependency (ie if the target is out of date).
Okay, consider $(strip $(CC) $(CFLAGS) -c $^) start from the inside and work out
$(CC) and $(CFLAGS) are environment variables defined previously (probably at the top of the Makefile).
$(CC) is your c compiler say egcs and $(CFLAGS) are optional flags to be passed to your compiler (for optimization, debugging etc), like I said it's optional so let's assume it's blank.
so $(strip $(CC) $(CFLAGS) -c $^) expands to $(strip egcs -c $^)
Now $^ is a special makefile variable (also known as an automatic variable). It evaluates to the list of dependencies, in this case there is just one %.c, so if foo.o was being made it would evaluate to foo.c.
So we are left with $(strip egcs -c foo.c)
Strip is a make function that strips out redundant white space so this evaluates to egcs -c foo.c
Cool, onto the second rule:
oldps w uptime tload free vmstat sessreg utmp: % : %.o
$(strip $(CC) $(LDFLAGS) -o $@ $ $(LIB_TGT) $(EXTRALIBS))
Now this is simple, it'll make any of the (multiple) targets (called %) by making the file %.o and executing the command
$(strip $(CC) $(LDFLAGS) -o $@ $where $@ is the target being made and $so executing make oldps will result in Make firing the second rule, with target oldps and dependecny oldps.o. This will result in the first rule being fired which will result in the command
egcs -c oldps.c
being executed if oldps.c is newer than oldps.o, now that the first rule has succeeded in making all its dependencies it executes
egcs -o oldps oldps.o
if oldps.o is newer than oldps.
That wasn't so hard was it? Now go change the makefile so it takes header (.h) files into account
My company recently purchased a suite of new Dell machines. NT BSOD when attempting to boot and install using the CD-ROM drive.
Linux (RH 5.2) works fine.
google is my favorite search engine
Agreed, I am very impressed with Google. Like somone else said it just goes to show that all the best ideas aren't used up yet.
[In the hope that someone at Google is reading this]
Just one complaint about Google, please eliminate different URLs that simply duplicate the same content.
Video games can never replace the tactile experience of a good pinball game
I started off playing video games, played them for about a decade before even touching a pinball game.
I've found pinball to be a much more enjoyable game. In fact when I think about it I guess I never enjoyed playing video games at all, they were just a way of passing the time.
Perhaps its something to do with being a programmer. I've never understood how people could be satisfied with just using their computers to play games (or use office applications). I've also noticed that pinball was preferred over video games by computer graphics majors I studied with.
Except for the bit about smoking crack.
NeXT did have a limited range of apps, but the apps it had were works of art. SuperDraw was a real pleasure to use.
The version of NeXT (v3) I used was running on a P90 using a normal HD (Perhaps Magneto Optical was only compulsory on NeXT hardware?).
I consider myself a fairly easy going guy, but I couldn't help but notice my finger was hovering over the FLAME button after reading that "geeks love pop culture".
I asked the nearest slashdotter to me whether he had read this article, he replied "oh I saw that, I didn't read it though, being a geek I'm not that interested in pop culture"
That sums it up pretty nicely for me.