Re:Concurrent/Distributed tasks
on
Ask Larry Wall
·
· Score: 2
First up, have you seen the thread support in Perl 5.8.0? It's documented here if you want to look at it. Exactly what do you think is wrong with it? It's in the core. It's stable. I'm not goading, I just want to know what you think is missing.
Secondly, what's wrong with SOAP? SOAP::Lite works really well and is darn simple to use. Is it too slow? What's your main critisms of it? Other object Persistance frameworks exist (which are in turn used to do distributed transferal of objects. One I'm currently looking at is Pixie which attempts to semitransparently seralise
data structures and objects to and from memory and a database (i.e. it's an OODB) (it essentailly works the same way Java does - it
does most of it nativly but you can put hooks
in if you want)
Do you really think all of this should be in the core? What is core anyway? Since it's often as simple as "perl -MCPAN -e 'install module::name'", how much do you want to force to be shipped with every single copy of perl?
A regular expression is, and always will be, a way of creating a rule engine/fine-state machine. It's a type three grammer. There are simple maths proofs that can demonstrate this
A finate state machine cannot match XML. XML requires you to have the ability to match the right number of opening and closing brackets (and to do that you need to be able to store the number you've seen somewhere.) This requires a push down automina - a stack machine - a type two grammer.
Perl's "Regular Expressions" have been beond a true regular expression for quite a while now (see backreferences)
Perl 6's rule system - let's dump the term regular expression now - is a further step in this complicated matching.
Matching type two grammers - like Parse::RecDescent can - is a good thing.
The BBC have a history of having "wonderful" graphics to go with their stories.
In this case there's a picture of a Sky Digital (satalite) remote control, which I doubt very much could be used to reprogram a DVD player, and a grinning moron (no offence) with a N64 controller...
Re:What Lessig Doesn't Point Out.
on
Lessig @ OSCON
·
· Score: 2
To be fair I think you missed him making the point. You could argue this is his fault (being the speaker) but he does make it.
Basically he states that now all forms of use (reading it,.sleeping on it...etc) are now copying. This is what he's trying to show when the red circle expands to fill the whole of the white area. "The Internet" now means that all actions are copying, even those that in the real world (lending someone a book) arn't. So suddenly, all actions (including the p2p sharing you mention) come under copyright law.
Remember, as he puts it, it's "law + technology" that give copyright holders control.
It's the same thing with coding - some people are better coders than others, and just showing them the rules and syntax won't help them. They need to learn how to problem solve.
Basically what you're attempting to do is called cognative skills transfer. It's no good transfering the rules of what to cook, you want to transfer the understanding of how you can combine various things, and how to anticipate what effect applying previously unknown combinations of ingredents and techniques work. Again, problem solving.
There's lots of literature on this subject about teaching people this - it's called "Cogantive Transfer". I recommend looking at some of the stuff by Richard E. Mayer - very interesting.
And of course my favorite, you can't beat using the CPAN shell to install new modules.
Actually, I prefer CPANPLUS, read the article about it.
Re:GET A LIFE!
on
Hacker Survey
·
· Score: 3, Insightful
Just because you don't class what someone is doing as "having a life" doesn't mean you should call them sad for doing it. It's nice that you completely overlook the social aspect of working together with other people on a project.
For me, if I had an extra hour in the day I'd probably spend it coding. I've not got a lot of for fun coding done this week (read any..) because I've been out in the sun (we had wonderful weather in London last weekend,) meeting up with friends, and basically enjoying myself.
Now if I had another hour, I'd like to spend it doing something constructive. Anything wrong with that?
I should imagine that they use checksums, otherwise they wouldn't be able to work out when files were the same or not.
When one node gets a virus then the checksum for infected files will change meaning that those files will become "unshared." A properly working hive then should have a version of that file with the orginal checksum still shared across all the uninfected hosts, plus a backup of the infected file for those hosts that have been infected.
If you restore from an infected file then you'll get the virus back. This is the nature of backups.
As an enterprise IT network grows the amount of redundant data stored on PCs increases significantly. Most PCs have the same applications and OS files, HiveCache takes advantage of this fact to decrease the amount of distributed storage needed for the backup network. By not requiring hundreds of redundant copies of the same MS Word executable and Windows DLL files found on each enterprise PC to be stored multiple times, the HiveCache backup mesh requires only a fraction of the data storage space that would be required by an equivalent tape backup solution.
In other words, in a coperate enviroment it only backs up each file once - meaning only different files you have on each machine - i.e. the data files and configuration files - need be backed up after the first machine is backed up.
"Scrapped" isn't exactly true. They've been put off for the summer for further consideration and redrafting - the plans are still there, they're just a lot further away from implementation. Or at least that's what the Seceraty of State told my MP The Right Honrable Chris Smith in the letter he forwarded to me.
Hmm, I need to scan these letters in and put them up on a webpage somewhere.
Of course! I always make that mistake. For some reason my brain always wants to say what it's linking to first (though I understand why it's this way - so that you can link to files in another directory without stating their name again.)
Of course, I should really have used Perl's symlink command;-)
Perl uses run time polymorphasim, and hence doesn't use a Templating system for code. Or maybe you could just run the C++ code inline
Include the fuck() and unfuck() function calls that do exactly that.
Is something that deletes all your source code and still continues to run it close enough?
Did you laugh? Okay, go donate!
Seriously though, these are all silly examples. Perl's used for a lot of sensible stuff. The biggest mistake most people make is mistaking humour like this for a lack of professionalism
The money is also being used to develop parrot, "a virtual machine used to efficiently execute bytecode for interpreted languages".
Essentially this is the new virtual machine Perl 6 will be targeting (what Perl 6 will be compiled into before it is run.) But Perl will not be the only language that will run on this. People are working on making Python, PHP and even Java run on this same machine. It's about working together people.
Oh, I know it's much more fun to say "nah ne nah nah, my language is better than yours". But the Perl people want to work in an interoperable world where we can all code stuff in whatever language we want and it'll all work together. And this is their effort.
Now if you want to slam this down and winge, then it's up to you and I'm sure I'll waste my time reading your comments. However, if you want to actually do something about this kind of thing, you know where the donate button is.
Then, and pardon my flippancy here, they shouldn't be public.:-)
That's hard to do if you're discussing them on a public mailing list for example...
Well I supose I could always check the referer and block anyone coming in from slashdot from the really heavy stuff (of course this only works one click down, or with cookies...it's getting complicated again, isn't it;-)).
Aside: forking to uptime probably a bad idea...I suspect GTop.pm (or whatever your system can) might be a less resource hungry resource checker...
Thank you for answering your own question. Let me postulate.
Ooops, my aplogies if I misinterpreted your response. And feel free to postulate away, this is Slashdot after all..;-) Thanks for the big old post, most useful.
Anyway, okay, you've got me. This is actually a sensible thing to do, and it's what I should have done in the first place. Bad me. (well, actually it's what the person who set up the demo should have done, but anyway...)
However, this is all pretty non trivial stuff to implement. Plenty of race conditions with multiple Apache children trying to update the same file here! Hmm, I suspect there's a Perl (and probably C) module for getting around this very problem however...hmm mod_throttle and mod_bandwidth sound like a good idea. More concrete suggestions gratefully received.
I still stand by my original statement however - it'd be nice if you got some warning before slashdot popped by. I'm more than happy to go to the extent of implementing lock files which monitor what's being consumed. However, I'm a busy person (arn't we all) and half the things I put up on the web (which are intended for a small audience, e.g. a demo of something that we're currntly working on) would never get up there if I had to panic about the whole of slashdot running it.
I've done lots of tests with lots of different servers. IIRC, for a simple webpage without graphics (about 30Kish) I could get 300 so requests a second with thttpd (at which point you do start to max out your 10Mb network card.) This of course is static files. I think this was served on a PIII 600Mhz (it was a wile back.)
As you point out, simultaneous requests is a problem - especially if your users start to run out of bandwidth. However, a well hardened server should be able to cope with a mild slashdotting wihtout too much effort.
Anyway, as I was pointing out above, you really need notice to be able to do this kind of thing. My really interesting content can probably be summerised in a static page (that thttpd can serve efficently) if given notice (though we'll lose some of the niceness, it's an acceptable sacrifice so that we can handle the load of people trying to view it.) But without that notice I'm not going to be able to do that and everyone will lose.
They can't configure their webservr properly from the get-go?
What is this "properly" you talk of? How you set up a webserver depends very much on the expected audience. You can only produce so much dynamic content per second, so how much dynamic content you create (assuming you're creating as much as possible to enrich the visiting user's experience) depends on how much traffic you're expecting.
That's like saying 'Sure, they could wear seatbelts, but only if they're warned that they're about to slam into a concrete wall.'
No. It's more like driving around in a convertable and someone chucking a bucket of water over the car. Sure, this wouldn't really be a problem if you'd had time to put the hood up, but since it was sunny you were trying to enjoy the sunshine.
As I said in my comment, the live demos were cool and more useful than static ones. What do you suggest I do? Always remove useful stuff like this just incase the entire of slashdot pops by uninvited?
And the best solution to the slashdot effect is for the website administrators to configure the webserver properly.
This of course is an option, but only if they are given warning. For example, Slashdot once linked to something running on my server that created dynamic Flash movies with Perl. Now, this is a slow process (it's a slow process in any language - it involves lots of bit packing) and takes up a lot of resources. There simply is no way to speed it up[1].
Now as this was intended for a small audience we had live demos on the site - type some text in and it would be turned into a twirly text that rotates in a Flash movie. Cool! And fine if five or so people try it at the same time. When all of slashdot try it...well, our server went up to a load of 45.
Now had we been given notice I might have yanked the live demo and changed it for something else - for example creating spinning text periodically from the slashdot RSS feed. This way I could have served static files (which we had the bandwidth for) and everyone would have been happy. But, alas, we didn't get the notice.
It would be really nice if Slashdot did give webmasters of small sites who showing non time sensative material a couple of days notice to harden their servers.
[1] well, there are ways to speed it up, but that's a work in progress.
I moved to Ericson after my last two nokias fell to bits on me. The user interface isn't as nice, but at least I don't have to squeeze my phone together in order to get the screen to work anymore (whoever thought mounting the clip-on cover directly to the LCD screen was a good idea has some serious questions to answer)
However, unfortuantly when it comes down to it morally has oft very little to do with actuality where the law is involved.
Interesting points, certainly one worthy of debate (though not by me, having no strong feelings either way.) You could view it in the same way that it is prohibited to build anything you want on your property (you need planning permission) - for example, you can't easly get permissions to build anything that will block visiable light from neighbouring properties.
It's not God's fault there's a limestone bluff in the way - it's the mobile phone providers. Them not having provided enough transmitters to provide service in an area is one thing. Another person taking efforts to deliberatly block mobile phone signals is another.
The main trouble with this as I see it is that it won't only cause a problem for people inside the enclosed room, but for people in the "shadow" of these structures.
Now, I understand that you get reflection and you can normally see more than one antenna, but this could cause whole other problems with people sheilding other areas as a side effect. I mean, what if I live next door to a cinema and they install this? Suddenly I can't receive mobile phone calls in my house because I'm in the shadow of the cinema!
This raises all kinds of interesting issues. Can I force another property to stop blocking my radio waves? Does it devalue my property (probably, in today's modern soceity, yes.) I know whenever I've looked for places to live in the last few years one of the first things I do when I walk in is see if I can get mobile reception.
Yeah, I've got one of these screens. Never use the damn thing - it's not even hooked up.
As you say, the computer's under the desk. Not much use having a screen down there. More importantly though I tend to use my laptop or work remotely most of the time - what's the point in having a bespoke information system that I can only see when I'm phyiscally in the same room.
Secondly, what's wrong with SOAP? SOAP::Lite works really well and is darn simple to use. Is it too slow? What's your main critisms of it? Other object Persistance frameworks exist (which are in turn used to do distributed transferal of objects. One I'm currently looking at is Pixie which attempts to semitransparently seralise data structures and objects to and from memory and a database (i.e. it's an OODB) (it essentailly works the same way Java does - it does most of it nativly but you can put hooks in if you want)
Do you really think all of this should be in the core? What is core anyway? Since it's often as simple as "perl -MCPAN -e 'install module::name'", how much do you want to force to be shipped with every single copy of perl?
At least it's not as bad as some bad examples. (links stolen from ntk
Basically he states that now all forms of use (reading it,.sleeping on it...etc) are now copying. This is what he's trying to show when the red circle expands to fill the whole of the white area. "The Internet" now means that all actions are copying, even those that in the real world (lending someone a book) arn't. So suddenly, all actions (including the p2p sharing you mention) come under copyright law.
Remember, as he puts it, it's "law + technology" that give copyright holders control.
So I didn't do that, and I got a bad edit there where I repeat the term "Cognative [skill] transfer" - d'oh.
And I didn't inlcude a like, like this one to Richard E Mayer's homepage
Basically what you're attempting to do is called cognative skills transfer. It's no good transfering the rules of what to cook, you want to transfer the understanding of how you can combine various things, and how to anticipate what effect applying previously unknown combinations of ingredents and techniques work. Again, problem solving.
There's lots of literature on this subject about teaching people this - it's called "Cogantive Transfer". I recommend looking at some of the stuff by Richard E. Mayer - very interesting.
For me, if I had an extra hour in the day I'd probably spend it coding. I've not got a lot of for fun coding done this week (read any..) because I've been out in the sun (we had wonderful weather in London last weekend,) meeting up with friends, and basically enjoying myself.
Now if I had another hour, I'd like to spend it doing something constructive. Anything wrong with that?
When one node gets a virus then the checksum for infected files will change meaning that those files will become "unshared." A properly working hive then should have a version of that file with the orginal checksum still shared across all the uninfected hosts, plus a backup of the infected file for those hosts that have been infected.
If you restore from an infected file then you'll get the virus back. This is the nature of backups.
Hmm, I need to scan these letters in and put them up on a webpage somewhere.
Of course, I should really have used Perl's symlink command ;-)
See this module
Perl uses run time polymorphasim, and hence doesn't use a Templating system for code. Or maybe you could just run the C++ code inline
Is something that deletes all your source code and still continues to run it close enough?
Did you laugh? Okay, go donate!
Seriously though, these are all silly examples. Perl's used for a lot of sensible stuff. The biggest mistake most people make is mistaking humour like this for a lack of professionalism
Essentially this is the new virtual machine Perl 6 will be targeting (what Perl 6 will be compiled into before it is run.) But Perl will not be the only language that will run on this. People are working on making Python, PHP and even Java run on this same machine. It's about working together people.
Oh, I know it's much more fun to say "nah ne nah nah, my language is better than yours". But the Perl people want to work in an interoperable world where we can all code stuff in whatever language we want and it'll all work together. And this is their effort.
Now if you want to slam this down and winge, then it's up to you and I'm sure I'll waste my time reading your comments. However, if you want to actually do something about this kind of thing, you know where the donate button is.
Well I supose I could always check the referer and block anyone coming in from slashdot from the really heavy stuff (of course this only works one click down, or with cookies...it's getting complicated again, isn't it ;-)).
Aside: forking to uptime probably a bad idea...I suspect GTop.pm (or whatever your system can) might be a less resource hungry resource checker...
Anyway, okay, you've got me. This is actually a sensible thing to do, and it's what I should have done in the first place. Bad me. (well, actually it's what the person who set up the demo should have done, but anyway...)
However, this is all pretty non trivial stuff to implement. Plenty of race conditions with multiple Apache children trying to update the same file here! Hmm, I suspect there's a Perl (and probably C) module for getting around this very problem however...hmm mod_throttle and mod_bandwidth sound like a good idea. More concrete suggestions gratefully received.
I still stand by my original statement however - it'd be nice if you got some warning before slashdot popped by. I'm more than happy to go to the extent of implementing lock files which monitor what's being consumed. However, I'm a busy person (arn't we all) and half the things I put up on the web (which are intended for a small audience, e.g. a demo of something that we're currntly working on) would never get up there if I had to panic about the whole of slashdot running it.
As you point out, simultaneous requests is a problem - especially if your users start to run out of bandwidth. However, a well hardened server should be able to cope with a mild slashdotting wihtout too much effort.
Anyway, as I was pointing out above, you really need notice to be able to do this kind of thing. My really interesting content can probably be summerised in a static page (that thttpd can serve efficently) if given notice (though we'll lose some of the niceness, it's an acceptable sacrifice so that we can handle the load of people trying to view it.) But without that notice I'm not going to be able to do that and everyone will lose.
It's just a thought
As I said in my comment, the live demos were cool and more useful than static ones. What do you suggest I do? Always remove useful stuff like this just incase the entire of slashdot pops by uninvited?
This of course is an option, but only if they are given warning. For example, Slashdot once linked to something running on my server that created dynamic Flash movies with Perl. Now, this is a slow process (it's a slow process in any language - it involves lots of bit packing) and takes up a lot of resources. There simply is no way to speed it up[1].
Now as this was intended for a small audience we had live demos on the site - type some text in and it would be turned into a twirly text that rotates in a Flash movie. Cool! And fine if five or so people try it at the same time. When all of slashdot try it...well, our server went up to a load of 45.
Now had we been given notice I might have yanked the live demo and changed it for something else - for example creating spinning text periodically from the slashdot RSS feed. This way I could have served static files (which we had the bandwidth for) and everyone would have been happy. But, alas, we didn't get the notice.
It would be really nice if Slashdot did give webmasters of small sites who showing non time sensative material a couple of days notice to harden their servers.
[1] well, there are ways to speed it up, but that's a work in progress.
I moved to Ericson after my last two nokias fell to bits on me. The user interface isn't as nice, but at least I don't have to squeeze my phone together in order to get the screen to work anymore (whoever thought mounting the clip-on cover directly to the LCD screen was a good idea has some serious questions to answer)
It's not a long-term logo.
Interesting points, certainly one worthy of debate (though not by me, having no strong feelings either way.) You could view it in the same way that it is prohibited to build anything you want on your property (you need planning permission) - for example, you can't easly get permissions to build anything that will block visiable light from neighbouring properties.
It's not God's fault there's a limestone bluff in the way - it's the mobile phone providers. Them not having provided enough transmitters to provide service in an area is one thing. Another person taking efforts to deliberatly block mobile phone signals is another.
Now, I understand that you get reflection and you can normally see more than one antenna, but this could cause whole other problems with people sheilding other areas as a side effect. I mean, what if I live next door to a cinema and they install this? Suddenly I can't receive mobile phone calls in my house because I'm in the shadow of the cinema!
This raises all kinds of interesting issues. Can I force another property to stop blocking my radio waves? Does it devalue my property (probably, in today's modern soceity, yes.) I know whenever I've looked for places to live in the last few years one of the first things I do when I walk in is see if I can get mobile reception.
As you say, the computer's under the desk. Not much use having a screen down there. More importantly though I tend to use my laptop or work remotely most of the time - what's the point in having a bespoke information system that I can only see when I'm phyiscally in the same room.