The question is not of updates themselves (which the students clearly didn't bother with) but with automatic updates. It's not too hard for a sysadmin to check microsoft.helpmycomputerisonfire.com each morning for updates and then do (well, initiate) a system-wide update manually. Same effect, less risk.
You know what would be useful? A mandatory virus drill, like a fire drill or siren testing. Every new user would get a fake virus that would pretend to thrash the computer, only when the computer was rebooted (after the smoke effects), it'd be gone with just the text: "If this were for real, you wouldn't see this text."
Yes, having a domain is a good thing. I generally enter something from the home keys: oeuhsnh@oshhse.com or something similar, but once and awhile when registration is needed, I point it to [site/company name]-spam@[mydomain]; my e-mail server filters anything with *spam* to the spam folder and I allow spam (of all kinds) to reside a day on the server before being deleted so I'll be able to access this information there.
Aha! So we need to detect the spammers, not the spam itself! Hahaa! It shouldn't be too hard, they obviously send a whole lot of e-mail! Problem solved!!!!!
Gah. An e-mail client has a lot more free cycles than a browser; therefore something that works on an e-mail client may not work on a browser, particularly since the application of the feature would be completely different.
Thank goodness my days at the call centers are over for now (doing gardening for the summer:).
You are, however, completely incorrect in your kind advice: most call center operators in the financial sectors (banks, credit cards, insurance) are not really allowed to accept any information that you provide without prompting. This is done to prevent fraud and to ensure the operator will get correct data from the customer (it's hard to recall if the client said 3456 or 3546 when they've rattled off their SSN, mother's maiden name and address after that number).
So yes, have the information ready, but only give it when requested.
Functional languages certainly are nice -but there's always a tradeoff. The C++ code will likely run faster on reasonable loads though that's something that's becoming increasingly irrelevant for certain types of programming.
My main problem with functional languages is with I/O: all the literature claims that monads are the 'natural solution' to that kind of processing, but I always thought it was just a lazy cop-out and it certainly doesn't feel right among the rest of the syntax.
For the uninitiated, a normal (functional) function must always produce the same output with the same parameters so something like
ReadFromScreen screen_one
wouldn't work because any given name is bound to a certain value and is therefore immutable.
I personally feel that the mathematically oriented people are making this too difficult, and would prefer that the RealWorld were abstracted into a few 'magic' functions; for example, the 'function' GetScreenContents would take as a hidden parameter the actual current contents of the screen -thus the functionality (hehe) would stay intact:
GetScreenContents <em>Please enter your name:</em> and GetScreenContents <em>Please enter your name:</em>
would produce the same output (namely the string "Please enter your name:" whereas
GetScreenContents <em>Please enter your password:</em>
would produce a different output. Sure, it's a sort of a hackish way of doing it but I think it'd fit better:)
I must admit -and I'm ashamed of this- that I don't know LISP or any variants thereof. I started with imperative languages and am only slowly unlearning those patterns so that I can actually use functional languages (and I've done a bit in Prolog). It seemed easier to start with Haskell than, oh, CLOS or something. So I'm getting there!
Regarding Ruby: yeah, it is a simple abstraction of a common idiom -well, a few idioms. Blocks can be used as closures, high-level functions, lambda functions and iterators. There's just something intangibly cool in how Ruby does it. I could bridge it to your earlier argument about C++ generics vs. functional polymorphism: the same thing can be achieved many ways but this is just the best one:)
>[C++] generics are child's toys compared to those in other languages;
I'm not sure what you mean -could you give an example? C++ templates do the functional-style polymorphism quite well, i.e. an operation can be applied to an arbitrary type (or sequence thereof usually). Additionally you have the immense metaprogramming power right there for you to tap into including compile-time polymorphism (the OO kind) and other nifty stuff.
Speaking of toy implementations, have you taken a look at Java Generics?
>Ruby blocks are, as far as I can tell, just a rather unusual syntax for fairly routine concepts. Quite a few people seem to like them, so I assume they do their job well in the context of Ruby as a whole, but what's special about them that a dozen other languages can't do in their own way?
It's just that 'unusual syntax' and ease of use. Observe:
array_of_elements.each do | element |
do_something_with element end
Lovely, looooovely!
>Functional idioms rock, and why no-one has yet produced a solid imperative language that integrates these features cleanly and comprehensively I do not know...
Well, in the case of higher-order & anonymous functions: any language that has higher-order functions is by (one) definition functional so the question should be unasked:) I think OCaml is an excellent mix of idioms but unfortunately I've this inner drive -a daemon, Goethe would say- to go all-out on a given idiom so I sort of prefer Haskell over it.
>Is there no way to get a method you defined in the header-file into the.cpp?
Why would you do this? You can define a method either in the header or the implementation file (although it's prudent to separate interface from implementation).
There, also, lies a benefit of the current community process. No-one in their right mind will attempt to completely master the Linux kernel in its current magnitude; rather, people concentrate on small subsystems of it -say, the filesystem or modem drivers- and thus have much less to comb through.
Hey, look at the bright side. Maybe they'll finally change the/. Mac theme which at the moment looks like it just emerged about $5300 less rich from one of those beachside menswear boutiques of Miami at about 1986.
The statistics are a bit skewed; there are a lot of good Java apps on SF, but there seems to be a tendency of those projects to be abandoned. I suppose the 'wrong' kind of people usually develop in Java because it's easier to get into.
The question is not of updates themselves (which the students clearly didn't bother with) but with automatic updates. It's not too hard for a sysadmin to check microsoft.helpmycomputerisonfire.com each morning for updates and then do (well, initiate) a system-wide update manually. Same effect, less risk.
You know what would be useful? A mandatory virus drill, like a fire drill or siren testing. Every new user would get a fake virus that would pretend to thrash the computer, only when the computer was rebooted (after the smoke effects), it'd be gone with just the text: "If this were for real, you wouldn't see this text."
And I mean made by the OEMs, not 1337h4XXX0Rrr32
Yes, having a domain is a good thing. I generally enter something from the home keys: oeuhsnh@oshhse.com or something similar, but once and awhile when registration is needed, I point it to [site/company name]-spam@[mydomain]; my e-mail server filters anything with *spam* to the spam folder and I allow spam (of all kinds) to reside a day on the server before being deleted so I'll be able to access this information there.
Aha! So we need to detect the spammers, not the spam itself! Hahaa! It shouldn't be too hard, they obviously send a whole lot of e-mail! Problem solved!!!!!
(!!!!!)
How the hell is this person 'in power'?
Gah. An e-mail client has a lot more free cycles than a browser; therefore something that works on an e-mail client may not work on a browser, particularly since the application of the feature would be completely different.
Thunderbird is an e-mail user agent, not a browser.
It's more of a brownish-octarine-indescribable colour. Wonder if smell could generate energy..
Thank goodness my days at the call centers are over for now (doing gardening for the summer:).
You are, however, completely incorrect in your kind advice: most call center operators in the financial sectors (banks, credit cards, insurance) are not really allowed to accept any information that you provide without prompting. This is done to prevent fraud and to ensure the operator will get correct data from the customer (it's hard to recall if the client said 3456 or 3546 when they've rattled off their SSN, mother's maiden name and address after that number).
So yes, have the information ready, but only give it when requested.
My main problem with functional languages is with I/O: all the literature claims that monads are the 'natural solution' to that kind of processing, but I always thought it was just a lazy cop-out and it certainly doesn't feel right among the rest of the syntax.
For the uninitiated, a normal (functional) function must always produce the same output with the same parameters so something like wouldn't work because any given name is bound to a certain value and is therefore immutable.
I personally feel that the mathematically oriented people are making this too difficult, and would prefer that the RealWorld were abstracted into a few 'magic' functions; for example, the 'function' GetScreenContents would take as a hidden parameter the actual current contents of the screen -thus the functionality (hehe) would stay intact:would produce the same output (namely the string "Please enter your name:" whereaswould produce a different output. Sure, it's a sort of a hackish way of doing it but I think it'd fit better
I must admit -and I'm ashamed of this- that I don't know LISP or any variants thereof. I started with imperative languages and am only slowly unlearning those patterns so that I can actually use functional languages (and I've done a bit in Prolog). It seemed easier to start with Haskell than, oh, CLOS or something. So I'm getting there!
Regarding Ruby: yeah, it is a simple abstraction of a common idiom -well, a few idioms. Blocks can be used as closures, high-level functions, lambda functions and iterators. There's just something intangibly cool in how Ruby does it. I could bridge it to your earlier argument about C++ generics vs. functional polymorphism: the same thing can be achieved many ways but this is just the best one
I'm not sure what you mean -could you give an example? C++ templates do the functional-style polymorphism quite well, i.e. an operation can be applied to an arbitrary type (or sequence thereof usually). Additionally you have the immense metaprogramming power right there for you to tap into including compile-time polymorphism (the OO kind) and other nifty stuff.
Speaking of toy implementations, have you taken a look at Java Generics?
>Ruby blocks are, as far as I can tell, just a rather unusual syntax for fairly routine concepts. Quite a few people seem to like them, so I assume they do their job well in the context of Ruby as a whole, but what's special about them that a dozen other languages can't do in their own way?
It's just that 'unusual syntax' and ease of use. Observe:Lovely, looooovely!
>Functional idioms rock, and why no-one has yet produced a solid imperative language that integrates these features cleanly and comprehensively I do not know...
Well, in the case of higher-order & anonymous functions: any language that has higher-order functions is by (one) definition functional so the question should be unasked
Ruby blocks, lambda functions, lazy evaluation.
:)
And C++
>Is there no way to get a method you defined in the header-file into the .cpp?
Why would you do this? You can define a method either in the header or the implementation file (although it's prudent to separate interface from implementation).
>Venture capital is an adventure.
:)
No, it's not. If it were, it'd be called 'adventure capital'. Duh
There, also, lies a benefit of the current community process. No-one in their right mind will attempt to completely master the Linux kernel in its current magnitude; rather, people concentrate on small subsystems of it -say, the filesystem or modem drivers- and thus have much less to comb through.
What? You shun the mighty language of Roman?!
I was talking about the colour :)
It's not really aluminium, it's brushed steel.
Hey, look at the bright side. Maybe they'll finally change the /. Mac theme which at the moment looks like it just emerged about $5300 less rich from one of those beachside menswear boutiques of Miami at about 1986.
Good plan. I'm sure not a single even half-competent network admin has HTTP access logs, useless things.
Borland's excellent IDE C++builderX is also in Java, which is a shame since I only have 128MB of RAM and can't use it :/
C is not a superset of C++ (nor is it a subset). C++ is a superset of C.
Why the hell do you need a 'master base class'? If one is needed, one is provided. If not, adding one is just useless noise.
The statistics are a bit skewed; there are a lot of good Java apps on SF, but there seems to be a tendency of those projects to be abandoned. I suppose the 'wrong' kind of people usually develop in Java because it's easier to get into.
Hi. My name is Elf af Elfhjelm, and I write C. And I like it.