A Bunch Of Perl Bits
Couple of Perl Bits fell into the bin worth noting today:
dlc writes, "The results of the Perl Poetry Content are in, and are available." If you're into this sort of thing, you'll dig it. A lot of clever stuff there. Course the sonnet generator is probably my favorite... hack it to generate rock lyrics, and I can start a band and record a debut album. ;) If that's not weird enough for you, check out the PerlOS Project. A PerlWM, a PerlSH, and more. It will strike fear into even the most hardened of Perl Monks.
I buy into the notion that perl programming replaces masturbation with sandpaper as the stupid, masochistic thing geeks like to do to avoid realizing that they need to get a life.
Bourne scripting is unbearable for anything but the most rudimentary scripts
BS. I've written lots of complex sh scripts. (Yes, they worked, too.) I'd rather write any amount of sh than perl. When I need more than what's comfortable to do in sh, I call out to awk or sed, or write a C program. (At this point in the conversation, perl weenies usually point out with pride that in a perl program you don't need to "call out to" awk or sed, missing the point that duplicating their functionality in perl was a waste, since they already existed independently. Also, the merging of csh, awk, and sed in perl was crudely done, resulting in messy syntax that doesn't clearly distinguish between the various sub-languages, requiring excessive back-and-forth between perl's parser and interpreter just to get the code parsed.)
The single thing I probably hate most about perl, though, is that stupid "default variable" (called $_ or something like that... I forget). Some perl bulitins operate only on $_, others do so only if you don't specify otherwise, leading to ugly code that is impossible for anyone not already perl-literate to understand, since every other line of perl is operating on this implicit variable.
And don't even ask me about the six different ways of writing an "if" statement... in a language that doesn't even have a case statement! (Again, perl weenies rebut that the different forms of "if" allow you to be more expressive, but excuse the lack of "case" because you can emulate it with "if...elsif...". The hypocrisy of believing both of those claims at once is so obvious that no one but a self-deluded perl weenie could possibly do it.)
What is the fascination with Perl in the *nix world? I can't fathom it - after all it adds little to what awk and sed have been doing for years. For more complex tasks than a simple CGI script Perl seems unwieldly, and even now technologies such as ASP and JSP are taking over the server-side processing domain.
IMHO Perl has no real domain in which it is better than everything else - so why is it so popular? Can someone please tell me?
You sure your computer isn't posessed or something?
WWJD? JWRTFM!!!
The Perl Filesystem
Matt. Want XML + Apache + Stylesheets? Get AxKit.
(> Catalog
DISK VOLUME 254
B 203 PERL.KERNEL
A 002 HELLO
T 091 DOCUMENTATION
(> Quake3
Invalid command. Type ? for menu
(> Drat!
Invalid command. Type ? for menu
(> Return to regular OS
(by the way, site is definately
--
Never hit your grandmother with a shovel, for it leaves a bad impression on her mind...
Of course you can "call out" to the sed or awk, but you have to use a totally different syntax with each of those.
Shell scripting gives you 3 different regular expression flavors to use. Inconsistent meaning for whitespace. And lots of little sublanguages with different syntaxes. It's great for making code completely umaintainable.
Some perl bulitins operate only on $_,
You're simply incorrect here.
in a language that doesn't even have a case statement!
That's just what's needed, a statement whose common accepted default behavior is exactly wrong about 85% of the time.
-- Beer. It's what's for breakfast.
You seem bitter, my friend ... Maybe you are shocked by the extra punctuation in variable name, or maybe you can't stand the ambiguity of the langage. Anyway, don't take our word for it and listen to the master. You should be enlightned.
:wq
Hrm. A guy with a name versus an overly-critical Anon. Coward. Are you so sure that he is the one making an idiot of himself...?
If you'll look through his User Info, you'll notice that he has a posting history devoid of trolls and First Posts. How do you stack up?
- Jeff A. Campbell
- VelociNews (http://www.velocinews.com)
- Jeff
How do you know I'm Jeff?
Erm, you don't, I guess. I'm sure you aren't losing any sleep over it though.
The point is, an Anonymous Coward can say whatever they want without their name being attached to their Insightful Post/Troll/Flame. My name is unimportant - what is important is that generally if a bunch of posts are made under the same name, that person is taking credit or blame for their content. An AC can do whatever they want without any fear of retribution or history.
- Jeff A. Campbell
- VelociNews (http://www.velocinews.com)
- Jeff
Him having no name says little about him, but you not having one could say volumes about you.
Either way, it's obvious that this is all based on a vendetta you (or whichever AC posted the original reply) have against him. His posts don't seem terribly insightful, and the non-breaking spaces are annoying as hell, but this doesn't mean he's a troll or karma whore (aren't those usually mutually exclusive?).
Whatever. It's not like his original post was inflammatory or anything. I seriously hope you don't follow people in order to toss around witless insults whenever they post anything...
- Jeff A. Campbell
- VelociNews (http://www.velocinews.com)
- Jeff
PerlPERL (a Perl interpreter written in Perl) would actually be a great way to implement a better debugger than the current perl -d. It's not so farfetched. After all, Lisp in Lisp has been around a long time. Perl now has the necessary introspective ability, it's just a lot of work because the interpreter is so complex.
The presence or absence of XS code (i.e. code that can segfault) in a PerlFS filesystem won't affect whether the kernel goes kaboom. The Perl code that executes, and any XS it calls, is in user mode, protected space. PerlFS defines a protocol for the userland fs code to return syscall results. It can't crash the kernel unless PerlFS (the kernel module) is buggy.
Well, I had included a link to the webpages of YAPC, but slashdot decided to filter it out. You'd have to work it out for yourself (and ask the slashdot programmers to write better parsing software).
While on the process of doing so, one might as well suggest a better language in which to write said software.
Information wants to be beer, or something like that.
Shell scripting gives you 3 different regular expression flavors to use. Inconsistent meaning for whitespace. And lots of little sublanguages with different syntaxes. It's great for making code completely umaintainable.
And that differs from Perl how?
That's just what's needed, a statement whose common accepted default behavior is exactly wrong about 85% of the time.
Randomly making up statistics to help your puny defense of a misfeature in your favourite language doesn't improve your argument, sir.
Information wants to be beer, or something like that.
Here's another pearl:
The Perl Rocket - Rapid Knowledge Transfer for Perl programming.
")
To the editors: your English is as bad as your Perl. Please go back to grade school.
Even then, I have lingering glances to others - python, with it's elegance and - the whitespace ! Oh, those sinful temptations. And don't forget PHP - riding on top of that Apache, all the time - they banished you from there, too.
But none of them can spin poetry like you do, and that is - I know it now - the best virtue a programming language can have. And I feel so ashamed that I have ever doubted your beauty. O~ sweet Pearl, I will never leave you.
(Besides, you are pretty too damned handy with regexps.)
http://www.focusresearch.com/gregor/psh/
Gates' Law: Every 18 months, the speed of software halves.
I do the almost the same thing. I ordered an X10 firecracker kit when they were featured on here and freshmeat. I don't know if it still can be ordered, but the link is here. It was only $5.90 and it comes with a serial passthrough that has an RF transmitter in it. All you have to do is send it simple commands and it will turn on and off up to 16 things that are connected to X10 control modules. Works great too.
Last year, at YAPC, Larry Wall, creator of Perl, told in his speech about how he had wired his house with X10. All Perl driven.
-- Abigail
-- Abigail
Your post will almost certainly be modded down as flamebait. Thou shalt not malign the great Camel on the holy slashdot and all....
But the idea of being "expressive" with a computer language has always bugged me. I just don't get it. I want a computer language to be efficient and elegant, but not "expressive".
Expressive is for poets and musicians. Bending notes and changing dynamics is "expressive". Metaphors are expressive.
I don't want programmers to be expressive, I want them to be efficient and accurate. I don't want air traffic controllers to be expressive, either ("Turn away from the harsh yellow globe and climb higher than the billowy cotton vapor, for there is another much like yourself directly ahead.")
So can someone please explain to a simpleminded guy what "expressive" programming is -- maybe with an example?
Save the whales. Feed the hungry. Free the mallocs.
After reading about the JavaOS project and now the PerlOS project, I've decided to start my own OS project.
DonkPunch hereby officially announces: THE C OS PROJECT.
That's right, folks -- an entire operating system written in C! Utilities and shells all written in C! It will be the most C-friendly OS the world has ever seen!
It's a revolutionary idea, I know. In fact, I'm kind of surprised nobody has tried it yet....
Save the whales. Feed the hungry. Free the mallocs.
Very interesting question indeed.
;)
I'm quite ignorant in OS design (still wading trough Tannenbaums "Operating Systems" at Uni), so take it with a grain of salt, but:
1. The language needs a compiler* to create directly executable machine code.
2. The language must provide features to manipulate/manage memory (as in pointers).
3. The language has to provide direct access/control to/of the peripherals (device drivers)
...Other than that, I think anything would do.
* Note that the difference betweeen an interpreted and a compiled language is not fixed and hasn't anything to do with the language itself. Altough Perl is usually (semi-)interpreted, one could create a compiler for it (or is there one already? I don't know Perl very well).
Feel free to correct/flame me at will
I strongly believe that trying to be clever is detrimental to your health. -- Linus Torvalds
What?!! PerlOS, PerlWM and PerlSH... no PerlPERL? You gotta be kidding!
There seems to be the usual "Perl Is Ugly" threads going on here, so let me sum it up for all of you. People use Perl for the same reason people use Linix. Perl is superior to (most) other languages in the same way that Linux. If you want complete control over the language you use, there are few beside Perl for you. If you want hand-holding and coddling, write in VB.
So far, almost every complaint about Perl attached to this story has been uninformed whining or out and out untruths. People complain that Perl is a read-only language. That absolute bullshit. There is no such thing as a read only language -- there are programmers who write read only code. Yeah, some of the worst code I have ever seen was written in Perl, but some of the best has been written in Perl. I feel sorry for all of you people who are afraid to express yourselves in your code -- Perl is probably very scary for you, and rightfully so. "It is a poor craftsman who blames his tools" -- bad code is written by bad programmers, and is language independant.
To sum it up, and bastardize anoher great quote, "With most languages, you are limited by the language itself. With Perl, you are limited by your own imagination."
Cthulhu for President!
(darren)
I'm the original author of one of the many Perl shells out there. Recent versions are getting quite usable. Info is available via:
4 .html (appindex) / id/G/GR/GREGOR/
* http://www.focusresearch.com/gregor/psh/
* http://sourceforge.net/project/?group_id=475
* http://www.freshmeat.net (generally)
* http://freshmeat.net/appindex/1999/08/02/93362566
* http://www.perl.com/CPAN-local/modules/by-authors
I'd be interested to know of any other Perl shells besides the ones mentioned in the POD documentation.
perl -e 'srand(-2091643526); print chr rand 90 for (0..4)'
Six months? Yeah, it might have loaded by then...
--
This is not my sandwich.
This reminds me of the old joke about creating a /vmunix.el, waiting six months, and then finding all of the people where using it, and killing them.
Cheers, KM
Cheers,
KM
Did you read that it should be a file named 'waiting'?
Once upon a time we had a bunch of good languages and a good OS. But you couldn't write the OS in those languages, though many tried, so C was invented.
Flash forward a quarter century.....
We have a bunch of good languages, and a good OS. But you couldn't write the OS in those languages, though many tried, so we all went back to C.
.sig: Now legally binding!
I am sorry, but every time there is mere mention of Perl someone has to post "Hey, what about Python". Are Python advocates so Perl envy that they cannot contain themselves. Several days ago there was a Python post (under the camel icon, mind you) and you did not see every third post saying "Perl can do that" or "Perl is has bla bla bla".
Python is a fine language and I hope it has a long life and gains market share, but a topic on Perl is not a negative on Python.
If your troll I bit.
Roman_Mir, you are one weird fucker.
When I'm singing a ballad and a pair of underwear lands on my head, I hate that. It really kills the mood.
-Tom Jones
Yes, Bourne Scripting has not the same possibilities as perl has. And if you dislike Bourne scripting, use !#/usr/bin/perl.
who has stolen my .signature file?
Is it possible to implement an Operating System with very language? And if not in any, what requirements must a programming language meet to write an operating system with it?
who has stolen my .signature file?
Maybe?
Is it necessary to promote the PerlMonks site every time perl gets mentioned? I know it's a slashdot site. but still.
--
Some people have a way with words, and some people, um, thingy.
It seems like the Slashdot Effect has swallowed the OS Link....
Does anyone know if it plans to use the Perl from the Topaz Project, or if the OS will be easily updatable each time a new distribution is released?
Was I the only one who found the entries extremely boring? Perl is such a forgiving language that it doesn't take a great deal of work to get something that will run, so you're left with attempting to make it look neat, which most of the entiries didn't do, or make it clever and amusing, which most of them didn't do. The exception was Damon Harper's entry, which at least required some work and ingenuity, except that it doesn't run as it claims to on my system.
* mild mannered physics grad student by day *
* mild mannered physics grad student by day *
* daring code hacker by night *
http://www.silent-tristero.com
Another thing: What twit thinks Perl is an ideal language for their propsed "BioOS"? Their supposed justification is that it needs to be a high level language, therefore, Perl is the best choice. That doesn't sound very well thought out to me. I'd have chosen Lisp, personally, for all the reasons that John Koza uses Lisp in Genetic Programming.
* mild mannered physics grad student by day *
* mild mannered physics grad student by day *
* daring code hacker by night *
http://www.silent-tristero.com
Is it me or is the PerlOS website one of the
most hacked, unconsoildated piles of broken
links and lack of content in existance? I mean
the project sounded cool. I even would have a lot
to contribute to the PerlGUI stuff and I like the
idea of PerlSH. But unless they get their act together
and present a good project page, I'm not touching it.
Someone had to do it.
you need to rename the file containing the program to "waiting". Then run it.
Phear my l33t homepage.
I think the "Obfuscated one" should have wone.
When you 'translate' it into clearer english, its the best poem.
Plus, the code is more directly readable as a poem, if you skip the punctuation.
PLUS: it actually outputs something, which intrinsically is bound to the meaning of the poem!
I think that makes it the most "poetic" of all.
Whereas the "winning" poem was most just a translation job of a poem,that works in english, but doesnt seem particularly 'elegant' in perl to me.
www.davinci.ca
Why do you need my employer?!
You can't handle the truth.
It's a poem, art, Artists don't get appreciated during their life time. On the other hand, what do you know!
You can't handle the truth.
/*
// initialize song
// initialization completed
//Object objDream = new Object();
//Object objReality = objDream;
// until NoMoreProblem thread wakes this up
//if (Suddenly != ) //implement later //{ // System.out.println(dayBeforeNow); //}
Yesterday (Lennon/McCartney)
Yesterday, all my troubles seemed so far away
Now it looks as though they're here to stay
Oh, I believe in yesterday.
Suddenly, I'm not half the man I used to be,
There's a shadow hanging over me.
Oh, yesterday came suddenly.
Why she had to go I don't know she woldn't say.
I said something wrong, now I long for yesterday.
Yesterday, love was such an easy game to play.
Now I need a place to hide away.
Oh, I believe in yesterday.
Mm mm mm mm mm.
*/
import java.lang.*;
import java.util.*;
import java.awt.*;
public class Yesterday extends Lyrics implements Beetles
{
private String wrong = (String)new Object();
public static void main(String[] args)
{
Yesterday Y = new Yesterday();
Y.run();
}
public String saySomething()
{
return wrong;
}
public void run()
{
Object Me = (Object)new Random();
Love love = new Love();
int Suddenly=0;
Calendar currentDate = Calendar.getInstance();
Calendar dayBeforeNow = Calendar.getInstance();
dayBeforeNow.set(
dayBeforeNow.get(Calendar.YEAR),
dayBeforeNow.get(Calendar.MONTH),
dayBeforeNow.get(Calendar.DATE) - 1,
dayBeforeNow.get(Calendar.HOUR),
dayBeforeNow.get(Calendar.MINUTE),
dayBeforeNow.get(Calendar.SECOND)
);
if ((Calendar.getInstance()).get(Calendar.DATE) == dayBeforeNow.get(Calendar.DATE))
{
try{
while(Integer.MAX_VALUE > 1)
{
if (dayBeforeNow.get(Calendar.DATE) {
Exception troubles = new Exception();
throw troubles;
}
}
}
catch(Exception e)
{
System.out.println("Troubles");
Object objHere = new Object();
synchronized(objHere)
{
try
{
Suddenly = (new Random()).nextInt();
wait(Suddenly);
}
catch(Exception ie)
{}
}
}
}
int Man = ((Random)Me).nextInt();
while(Man / 2 - 1 == Man )
{
System.out.println("I am the man!");
}
Object Shadow = (Object)(Object)Me;
String ISay = this.saySomething();
if (ISay == wrong)
{
She she = new She();
String Explanation = she.go();
if (Explanation == null)
{
System.out.println("Reason Unknown.");
}
try
{
currentDate = dayBeforeNow;
throw new Exception();
}
catch(Exception e)
{
currentDate = Calendar.getInstance();
}
}
if ((Calendar.getInstance()).get(Calendar.DATE) == dayBeforeNow.get(Calendar.DATE))
{
love.isEasy(true);
love.play();
}
this.hide();
((Yesterday)Me).believes();
for(int i = 0; i System.out.print("mm ");
}
private void hide()
{}
private void believes()
{}
}
class She
{
public String go()
{
return null;
}
}
abstract class Game
{
abstract public void play();
}
interface Easy
{}
class Love extends Game implements Easy
{
public void isEasy(boolean easy)
{}
public void play(){}
}
class Lyrics
{}
interface Beetles
{}
You can't handle the truth.
I am gonna fuck you in the ass
// garbage collection
// at least it rhymes
(new PipedReader()).connect();
Without making giant mess
System.gc();
Then I'll be fucking you so much
String str = "";
BufferedReader BR = new BufferedReader();
while((str = BR.readLine()) != null){}
Can you believe it? I am Dutch!
Object Dutch = (Dutch)(new Object());
try
{
if (this == Dutch) return true;
}
catch(Exception e)
{
return false;
}
You can't handle the truth.
The site is slashdotted, so I will make this stuff up for here on in...
Correct me if I am wrong, but when Perl has to do something lowlevel it calls the native system calls for that OS right? So if Perl is the OS, how can it call it's self to something lowlevel when the low level system calls have never been defined (since it defines it, depending on what OS it is running). It seems like a chicken-egg problem...
My guess is that they would have to hack up a kernel with hacked up Perl built directly into it. Then do everything else like memory management/ drivers/ etc though Perl code after the system gets up and going... Hell I don't know. Doing an OS in Perl is cool and all, just seems weird.
Then again having Perl in kernel space would scream...
Obfused Perl Kernel Drive contest.
"Uh, Hrmmm so this is a Video Driver right?"
"Nope"
"Uh, sound card, see here is an IRQ entry"
"Nope, that IRQ entry is run though a regexp 1000 lines down and it turns it into a DMA entry"
"Uh right, hard drive driver?"
"Nope, the file system information is imported, so that we can grep it for packed binary data, if any exists"
"SCSI card?"
"Nope"
"`Ford, you're turning into a penguin. Stop it.'" -THHGTTG
seek topost (thatflamebait);
Firstpost (the thread, fast);
while ($natalie) {
petrifies $to($stone);
not grits;
}
accept the, moderation;
seek the, $-1Troll, $-1offtopic'
and wait;
stat thekarma;
unlink and listen (for, $theflames);
for (a, karmawhore our /.) {
system ("is trollheaven");
.
Take all good things in moderation, including moderation.
I am not a Perl-person, and so I do not understand this stuff in deep. But this Obfuscated Poem looked so astonishing that I just had to get a copy and test it (reminds me of how I got Linux :-). Problem is: it doesn't work as expected.
:-)
$ perl perlfun.pl
waiting
-------
^C
$
Like that. It just waits. If anyone got it to work, I'd like to know. I have copied and pasted from the HTML source so I had to rewrite some >'s etc. and though I tried I didn't find differences between my proggie and the displayed one on the page.
OK, so this is a bullshit post. I just want to try out that proggie
It's... It's...
"We can confirm that Debian does *not* ship the version with the trojan horse. Our version predates it." [CA-2002-28]
thank you
I can't get into the page for some reason.
EOT
You have to name the file "waiting"; if you look at the first line you'll see that it opens its source to a filehandle called "_and". I think that what it then does is read itself, then print the alphabetic/whitespace characters (and a bit of the punctuation); the last command is to sleep() indefinitely.
If you'd tried the link you'd see it was broken. Perhaps it was initially due to slashdottedness, but the point is that access to the link is cut off. And try to avoid belittling everyone especially for firing off "rapid posts" after all you found the post important enough to reply to didn't you? Your post seems like flamebait to me...
Um, are you currently employed as a programmer?
If so, then how can I contact your employer?
Monkey sense
Just that you're code is so bad I probably have no problems getting a job :-P
Monkey sense
I tried the perl shell out in one of its very earliest releases and found it promising but very rudimentary ... with later releases however it has shown itself to improve immensely in useability. It makes it unnecessary to write the small scripts that we do on a day-to-day basis for system admin work.
I strongly suggest others to check this shell out before dismissing it out of hand.
Rob
$man{"from"}=qw(Nantucket);
...
-L
I've written lots of complex sh scripts. (Yes, they worked, too.) I'd rather write any amount of sh than perl I did also, but now I do everything in perl because I can use the same scripts in many unix flavours, and even in Windows ! This is a very good reason to use perl. It can be used in many OSes, including VMS, Macs, windows, unix !
This coming from someone who says that they have written complex sh scripts, and, wait... get this... they work. Priceless.
I'd rather write any amount of sh than perl. When I need more than what's comfortable to do in sh, I call out to awk or sed, or write a C program.
If you knew how to use perl effectively, you wouldn't need to 'call out' to awk or sed. And writing a C program for something that you'd use sh for in the first place is pounding in a tack with a sledgehammer.
The single thing I probably hate most about perl, though, is that stupid "default variable" (called $_ or something like that... I forget).
Then quit your bitching and don't use it. Perl doesn't require you to use it. In fact, I didn't use it at all when I first started learning. Then a light bulb went on, and everything got much easier and made much more sense. Don't say something's 'stupid' because you lack the power to understand it.
Some perl bulitins operate only on $_
I'd like a few examples here.
others do so only if you don't specify otherwise
leading to ugly code that is impossible for anyone not already perl-literate to understand
You have a point there. I forgot how you can't understand a language you don't understand. Don't you get it? Was sh easy for you to understand before you learned it? Was C?
And don't even ask me about the six different ways of writing an "if" statement...
You're free to use only the ones that your simple mind can comprehend.
If you don't like Perl, don't use it. No one's twisting your arm. Take your sandpaper, go back to your desk, and write some shell scripts. Those of us who take the time to learn Perl will accomplish the task at hand much faster.
I find the perl shell indispensible, even in its current form.
This could actually be quite useful - Bourne scripting is unbearable for anything but the most rudimentary scripts.
Perl's an amazing language. Follow the links and you see that you can be either a liberal arts major (poetry) or a CS major (PerlOS). Scarry stuff. I've got perl turning my lights on and off in my house, wonder what's next.
The RF power switch is available from Radio Shack for about $20 per kit. It comes in three frequencies A,B, and C. If you want to turn on multiple lights at once, be sure to get all of the same requency. There is NO way to turn on both an A and a B at the same time without wiring both controllers to your PC.
Check our your link. Still good and offer still valid. I have one on the way in the mail. It'll be fun to play with it (has to be better than the mess of wires hanging off my mother board with duckt tape).
I purchased two RF switchable power sockets. The kit comes with what looks like a clapper and a key-chain controller (like that for your car). Cracked the case of the controller and ran it into a serial controller card, but you could probably accomplish the same feat if you can program serial ports. Then I just used perl to launch my shell script that, for all intents and purposes, pushed the on or off button on the controller and turned on the lights. To answer your next question in advance, NO I WILL NOT GIVE YOU THE URL (The /. effect on my household lights would land me a spot on the couch tonight).
I am no troll. I was just wondering if anybody ever thought about it or if Perl always over shadowed it. I guess I got my answer.