want functional programming? C++ has the tools (awkwardly, but they're there).
Well, you probably know this, but I'll add it for the record. Quickly put, fn-prog is about having all your variable constant, subtituting copy+recursion for assignments.
Lack of both lambda's and tail recursion prevents a blanket usage of fn in C++. In non trivial cases, you will find those feature necessary to compose the right copy+recusion combo.
Unfortunatly, even is fairly simple cases, C++'s lack of const parametrisation will prevent a smooth fn-style. For example :
const Window &select(const Window &a, const Window b);// returns either a or b depending on something else
Passing two non-const Window to such a select() will unnecessarly return a const Window
But that isn't C++. C++ will force you to duplicate select()'s code or to cast in and out of constness. When coding for maximal constness, you regularly runs into this choice between two unsastifactory options, which eventualy motivates most C++ programmers to stop using const altogether.
I'm offering your here some supporting evidence that C++ is slower than C : The Great Computer Language Shoutout, a work of hard labor and love.
The short story is, even though the combinaison of C++-to-C compatibility and C++ templates should make C++ faster, the numerous implicit memcpy's and copy constructor calls behind C++'s syntax makes the promess painstaking to realize in all but very small programs. Thus, even the dedicated and competent programmer that created the gcls could not get to C's speed.
No mater how you do it, producing hydrogen from water will always take a bit more energy than you get back burning it back to water. The question remains: where would the cheap energy come from?
Yep, agreed. Moreover, I don't see any missing technology. There only need to be somebody to stick the pieces together.
I webpad would be a laptop that has the screen where the keyboard usualy is (and instead of it). Instead of the screen, there would be a protective plastic plate which would flip all the way over and clip behind.
It should problably ship with a wireless keyboard & mouse combo and a detachable stand. This way, would could quickly tranform your webpad into a confortable workstation.
The greatest thing is, as a workstation, the pad's touchscreen would be wonderful for cooperative work and pair programming session - one coder one the keyboard, and one coder with the stylus.
I just wish one benchmarking site would release the raw data in some kind of ascii based table. I would love wasting coutless hours of gnuploting, generating variations on plots like those.
Does anybody have a pool of varied cpu & motherboard machines, new and old? There are a couple of statiscal tools I would like to throw at the benchmarking problem - if only I had the data.
Typical high raise towers are made with massive concrete core at their center. The WTC was an ingenuous exception to that rule, and very few were aware of it. I would not blame the public for not expecting the towers to fail. It didn`t made sence to me either, until I learned they were made out of steel.
Galileo : Unlike God, humans are not in the center of the universe. Darwin : Humans are not made to His likeliness. Freud : The resonable animal is not so reasonable. Godel : Unlike God, human's sciences must abadon hopes of ever proving everything.
Those are four big slaps in the face to humanity.
The three big slaps to engineering:
The Titanic : Marketing should not sell a ship as unsikable, for they might convince the Captain. The Shuttle : Management should listen to their staff, maybe they mean it when they say it is not going to work. The Twin Towers :...
Well, it is a bit early to talk about the moral of the still-going story, but anyway:
The Twin Towers : A contry should not engage in onesided foreing relations policies merly because it thinks it can get away with it.
Well, ok, I actually ment non-copyright-infrigement centric. Today, p2p networks are currently being used for massive civic disobedience againts the sad state of copyright laws. I fear that, if p2p doesn't justify its existance soon, it might be declared illegal before it has a chance to. After all, the ratio of legal to illegal uses today is near zero. It is concivable congress will write a gun control type law for p2p code.
Thanks for the links though. Creating the edk2 links (based of file hashes) is a big step ahead in usability. I need to find out more about the protocol, who developed it and who owns it.
I didn't like it going down, that's what. It's the revenge of the AdCritic's 'going down' post. Times have changed. The timing is good now. BitTorrent exists.
I hope they go for it. It would become the first large scale deployment of a non-mp3 centric p2p network.
Well, I can say I take too much offence in physcists throwing wild hypothesis at hard problems. When sufficiently stumped, such guesswork start falling under the brainstorming laws:
Collect as many ideas as possible from all participants with no criticisms or judgments made while ideas are being generated.
All ideas are welcome no matter how silly or far out they seem. Be creative. The more ideas the better because at this point you don't know what might work.
oh men, we realy shouldn't make fun of poor C++'s limping after-thought compile-time computation facilities. Think of its fellings!
But when you think the equivalent elisp code is:
(defun fact (n) (if (= n 1) 1 (* n (fact (- n 1)))))
((insert (number-to-string (eval-when-compile (fact 10)))))
I can't help to think : So many code generator could have been avoided if C++ had included something like eval-when-compile. So many it makes me weep.:'-)
For that matter, you can program C in a very functional style, using the trinary ?: operator and recursion, if you like. In either language, though, sticking to functional style as strictly as possible will hurt your performance.
Well, not really. The lack of higher-order function will eventually force you to use imperativeness. Then, the missing 'const' keyword won't be there to help you mesure the spread of your imperativness. The two togheter makes it rather useless to attempt coding in fn-style in C.
With C++ however, I'll agree you can enjoy some of the befinits of fn-style. In fact, I posted a little piece about it.
Thanks for your two lists. XP is indeed acquiring a number of redeming qualities. I realy was expecting a non-upgrade, ala win98->winMe.
I hear that WinXP can perfectly lock you out of using a certain driver, if Microsoft's central database doesn't like it. It seem natural to expect Microsoft will use this to bully companies around. In comparison, w2k driver signing is both passive and usefully informative, as any Linux flag about non-open source drivers.
WinXP also has a concept of a copyright-safe driver track. Those specialy marked drivers run in a super memory-protected space (whatever that means) and are disallowed access to any digital devices like harddrives and usb ports. Again, w2k has some DRM, but not the most actively monopolistic aspects.
Ok people, can we do a run down of reasons why people would use XP instead of w2k?
For XP :
- Remote desktop sharing which actually works
- Super fast reboots
For w2k :
- No useless memory-pig alphableading interface
- No monopolistic digital right management
- No monopolistic centralized driver signing
- No monopolistic integration with.NET (?)
once you've logged in, there's nothing particular to remind you of your Administrator status
Well, unless you change your color scheme.
But again, this won't work with 'Run as administrator' trick. Blah again!
Re:More viri on MS- why?
on
Linux Virus Alert
·
· Score: 3, Insightful
Part of it's because of the relative lack of security on a Windows box; only NT and XP had/have an administrator level where regular users aren't allowed to do things.
95/98 let anyone run just about anything as default. And XP actually does this too... Default accounts are set up as administrator without passwords.
Let me add some items to your list...
- Linux installers are usually very good at teaching newbies the dangers of the root account. They will also make it real easy and natural to setup secured user accounts.
- The community is very good at reminding each other not to run as root, be it in weblogs, readmes, changelog, etc. In fact, they even go on running jokes about it. At the end of the day, it makes a wonderful job at passing the word to new users.
- Since there is already a critical mass of carefull users on linux, programs that use more permissions that they need to can expect to receive flews of angry emails. Under w2k/xp, where most home users run in administrator, those that do not are less likely to complain. The end result is, windows software too often crashes and bugs up unless run as root.
- Under Linux, it is real easy to become root the time of one punctual action (su, sudo, fakeroot), then relinquish the extra permissions. Under w2k, you have to create a shortcut to the executable, right click, check 'run as a different user', click ok, double click, click on the password field, enter the root password. A real pain in the ass. And again, alot of programs that would run otherwise correctly as administrator won't work with this method. In which case you have to save all your work, log out, log in as admin, run that program, log out, log back in, restart all the program you were using. Blah! Easily a ten minutes process.
- Under windows, it is always trivialy easy to runs programs. So much so, that I'm extra careful whenever I'm reading mail under windows, and slow down my perusal to be sure not to stumble and accidentaly run a virus. Under linux, running untrusted program is a two step process: first give it the permission to run (chmod +x virus.exe), then run it (./virus.exe) .
- Finaly, viruses need to pull their infection/clean up ration over the 1.0 bar in order to survive and outbreak. Linux, with it's smaller installed base and it's biodiversity of distributions, makes it hard for a virus to find its next vunerable target. With that in mind, we can expect somewhat more Linux viruses the day it takes over Windows as everyone's operating system.
Which file system tracker did you use? I've been looking for something like that.
Do you have any idea how the burping could not show up on the tracker's log?
Broads providers dug themselves into a smelly hole. They cultured this sneaky pleasure of charging ridiculous prices for transferts over caps made by unsuspecting client. The creativity they deployed to make it nearly impossible to monitor your transferts yourself was delicious. You know, it does not take you many surprise 1000$-scaled montly bills to get the message and switch to an unlimited service.
Because of such innescusable unethical behavior, no client of the industry wants to hear a thing of caps, or of the concept of "paying for what you use" - the most natural thing anywhere else.
Well, you probably know this, but I'll add it for the record. Quickly put, fn-prog is about having all your variable constant, subtituting copy+recursion for assignments.
Lack of both lambda's and tail recursion prevents a blanket usage of fn in C++. In non trivial cases, you will find those feature necessary to compose the right copy+recusion combo.
Unfortunatly, even is fairly simple cases, C++'s lack of const parametrisation will prevent a smooth fn-style. For example :
const Window &select(const Window &a, const Window b);// returns either a or b depending on something else
Passing two non-const Window to such a select() will unnecessarly return a const Window
What you realy want is :
template< specifier CONST_OR_NOT>CONST_OR_NOT Window &select(CONST_OR_NOT Window &a, CONST_OR_NOT Window b);
But that isn't C++. C++ will force you to duplicate select()'s code or to cast in and out of constness. When coding for maximal constness, you regularly runs into this choice between two unsastifactory options, which eventualy motivates most C++ programmers to stop using const altogether.
The short story is, even though the combinaison of C++-to-C compatibility and C++ templates should make C++ faster, the numerous implicit memcpy's and copy constructor calls behind C++'s syntax makes the promess painstaking to realize in all but very small programs. Thus, even the dedicated and competent programmer that created the gcls could not get to C's speed.
Wake up, that's what they do with natural gaz. It's still expensive.
Who exactly are bringing electric cars to reality, eh? Who?
No mater how you do it, producing hydrogen from water will always take a bit more energy than you get back burning it back to water. The question remains: where would the cheap energy come from?
thanks, that's the ticket.
Yep, agreed. Moreover, I don't see any missing technology. There only need to be somebody to stick the pieces together.
I webpad would be a laptop that has the screen where the keyboard usualy is (and instead of it). Instead of the screen, there would be a protective plastic plate which would flip all the way over and clip behind.
It should problably ship with a wireless keyboard & mouse combo and a detachable stand. This way, would could quickly tranform your webpad into a confortable workstation.
The greatest thing is, as a workstation, the pad's touchscreen would be wonderful for cooperative work and pair programming session - one coder one the keyboard, and one coder with the stylus.
You know you are perfectly right about that. Here's an address : dnys2v4dq1001@sneakemail.com
I just wish one benchmarking site would release the raw data in some kind of ascii based table. I would love wasting coutless hours of gnuploting, generating variations on plots like those.
Does anybody have a pool of varied cpu & motherboard machines, new and old? There are a couple of statiscal tools I would like to throw at the benchmarking problem - if only I had the data.
Typical high raise towers are made with massive concrete core at their center. The WTC was an ingenuous exception to that rule, and very few were aware of it. I would not blame the public for not expecting the towers to fail. It didn`t made sence to me either, until I learned they were made out of steel.
:
...
:
Galileo : Unlike God, humans are not in the center of the universe.
Darwin : Humans are not made to His likeliness.
Freud : The resonable animal is not so reasonable.
Godel : Unlike God, human's sciences must abadon hopes of ever proving everything.
Those are four big slaps in the face to humanity.
The three big slaps to engineering
The Titanic : Marketing should not sell a ship as unsikable, for they might convince the Captain.
The Shuttle : Management should listen to their staff, maybe they mean it when they say it is not going to work.
The Twin Towers :
Well, it is a bit early to talk about the moral of the still-going story, but anyway
The Twin Towers : A contry should not engage in onesided foreing relations policies merly because it thinks it can get away with it.
It sure works for internet cafes.
Well, ok, I actually ment non-copyright-infrigement centric. Today, p2p networks are currently being used for massive civic disobedience againts the sad state of copyright laws. I fear that, if p2p doesn't justify its existance soon, it might be declared illegal before it has a chance to. After all, the ratio of legal to illegal uses today is near zero. It is concivable congress will write a gun control type law for p2p code.
Thanks for the links though. Creating the edk2 links (based of file hashes) is a big step ahead in usability. I need to find out more about the protocol, who developed it and who owns it.
I hope they go for it. It would become the first large scale deployment of a non-mp3 centric p2p network.
That's what sneakemail.com is for.
The "war on drugs" does not have a clearly defined enemy. It's been going on for what, 30 years? And there's no end in sight
Very Orwellian. Scary.
oh men, we realy shouldn't make fun of poor C++'s limping after-thought compile-time computation facilities. Think of its fellings!
:'-)
But when you think the equivalent elisp code is:
(defun fact (n) (if (= n 1) 1 (* n (fact (- n 1)))))
((insert (number-to-string (eval-when-compile (fact 10)))))
I can't help to think : So many code generator could have been avoided if C++ had included something like eval-when-compile. So many it makes me weep.
Well, not really. The lack of higher-order function will eventually force you to use imperativeness. Then, the missing 'const' keyword won't be there to help you mesure the spread of your imperativness. The two togheter makes it rather useless to attempt coding in fn-style in C.
With C++ however, I'll agree you can enjoy some of the befinits of fn-style. In fact, I posted a little piece about it.
Thanks for your two lists. XP is indeed acquiring a number of redeming qualities. I realy was expecting a non-upgrade, ala win98->winMe.
I hear that WinXP can perfectly lock you out of using a certain driver, if Microsoft's central database doesn't like it. It seem natural to expect Microsoft will use this to bully companies around. In comparison, w2k driver signing is both passive and usefully informative, as any Linux flag about non-open source drivers.
WinXP also has a concept of a copyright-safe driver track. Those specialy marked drivers run in a super memory-protected space (whatever that means) and are disallowed access to any digital devices like harddrives and usb ports. Again, w2k has some DRM, but not the most actively monopolistic aspects.
Ok people, can we do a run down of reasons why people would use XP instead of w2k?
.NET (?)
For XP :
- Remote desktop sharing which actually works
- Super fast reboots
For w2k :
- No useless memory-pig alphableading interface
- No monopolistic digital right management
- No monopolistic centralized driver signing
- No monopolistic integration with
Can you add to the list?
http://www.google.com/search?q=AfterLife+download
Seems to be a game
once you've logged in, there's nothing particular to remind you of your Administrator status
Well, unless you change your color scheme.
But again, this won't work with 'Run as administrator' trick. Blah again!
Part of it's because of the relative lack of security on a Windows box; only NT and XP had/have an administrator level where regular users aren't allowed to do things.
95/98 let anyone run just about anything as default. And XP actually does this too... Default accounts are set up as administrator without passwords.
Let me add some items to your list...
- Linux installers are usually very good at teaching newbies the dangers of the root account. They will also make it real easy and natural to setup secured user accounts.
- The community is very good at reminding each other not to run as root, be it in weblogs, readmes, changelog, etc. In fact, they even go on running jokes about it. At the end of the day, it makes a wonderful job at passing the word to new users.
- Since there is already a critical mass of carefull users on linux, programs that use more permissions that they need to can expect to receive flews of angry emails. Under w2k/xp, where most home users run in administrator, those that do not are less likely to complain. The end result is, windows software too often crashes and bugs up unless run as root.
- Under Linux, it is real easy to become root the time of one punctual action (su, sudo, fakeroot), then relinquish the extra permissions. Under w2k, you have to create a shortcut to the executable, right click, check 'run as a different user', click ok, double click, click on the password field, enter the root password. A real pain in the ass. And again, alot of programs that would run otherwise correctly as administrator won't work with this method. In which case you have to save all your work, log out, log in as admin, run that program, log out, log back in, restart all the program you were using. Blah! Easily a ten minutes process.
- Under windows, it is always trivialy easy to runs programs. So much so, that I'm extra careful whenever I'm reading mail under windows, and slow down my perusal to be sure not to stumble and accidentaly run a virus. Under linux, running untrusted program is a two step process: first give it the permission to run (chmod +x virus.exe), then run it (./virus.exe) .
- Finaly, viruses need to pull their infection/clean up ration over the 1.0 bar in order to survive and outbreak. Linux, with it's smaller installed base and it's biodiversity of distributions, makes it hard for a virus to find its next vunerable target. With that in mind, we can expect somewhat more Linux viruses the day it takes over Windows as everyone's operating system.
Which file system tracker did you use? I've been looking for something like that.
Do you have any idea how the burping could not show up on the tracker's log?
Broads providers dug themselves into a smelly hole. They cultured this sneaky pleasure of charging ridiculous prices for transferts over caps made by unsuspecting client. The creativity they deployed to make it nearly impossible to monitor your transferts yourself was delicious. You know, it does not take you many surprise 1000$-scaled montly bills to get the message and switch to an unlimited service.
Because of such innescusable unethical behavior, no client of the industry wants to hear a thing of caps, or of the concept of "paying for what you use" - the most natural thing anywhere else.
sad really.